Code Review
/
kvmfornfv.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git]
/
kernel
/
drivers
/
media
/
platform
/
soc_camera
/
soc_scale_crop.c
diff --git
a/kernel/drivers/media/platform/soc_camera/soc_scale_crop.c
b/kernel/drivers/media/platform/soc_camera/soc_scale_crop.c
index
8e74fb7
..
bda29bc
100644
(file)
--- a/
kernel/drivers/media/platform/soc_camera/soc_scale_crop.c
+++ b/
kernel/drivers/media/platform/soc_camera/soc_scale_crop.c
@@
-211,22
+211,23
@@
int soc_camera_client_s_crop(struct v4l2_subdev *sd,
}
EXPORT_SYMBOL(soc_camera_client_s_crop);
}
EXPORT_SYMBOL(soc_camera_client_s_crop);
-/* Iterative s
_mbus
_fmt, also updates cached client crop on success */
-static int client_s_fmt(struct soc_camera_device *icd,
+/* Iterative s
et
_fmt, also updates cached client crop on success */
+static int client_s
et
_fmt(struct soc_camera_device *icd,
struct v4l2_rect *rect, struct v4l2_rect *subrect,
unsigned int max_width, unsigned int max_height,
struct v4l2_rect *rect, struct v4l2_rect *subrect,
unsigned int max_width, unsigned int max_height,
- struct v4l2_
mbus_framefmt *mf
, bool host_can_scale)
+ struct v4l2_
subdev_format *format
, bool host_can_scale)
{
struct v4l2_subdev *sd = soc_camera_to_subdev(icd);
struct device *dev = icd->parent;
{
struct v4l2_subdev *sd = soc_camera_to_subdev(icd);
struct device *dev = icd->parent;
+ struct v4l2_mbus_framefmt *mf = &format->format;
unsigned int width = mf->width, height = mf->height, tmp_w, tmp_h;
struct v4l2_cropcap cap;
bool host_1to1;
int ret;
ret = v4l2_device_call_until_err(sd->v4l2_dev,
unsigned int width = mf->width, height = mf->height, tmp_w, tmp_h;
struct v4l2_cropcap cap;
bool host_1to1;
int ret;
ret = v4l2_device_call_until_err(sd->v4l2_dev,
- soc_camera_grp_id(icd),
video
,
- s
_mbus_fmt, mf
);
+ soc_camera_grp_id(icd),
pad
,
+ s
et_fmt, NULL, format
);
if (ret < 0)
return ret;
if (ret < 0)
return ret;
@@
-265,8
+266,8
@@
static int client_s_fmt(struct soc_camera_device *icd,
mf->width = tmp_w;
mf->height = tmp_h;
ret = v4l2_device_call_until_err(sd->v4l2_dev,
mf->width = tmp_w;
mf->height = tmp_h;
ret = v4l2_device_call_until_err(sd->v4l2_dev,
- soc_camera_grp_id(icd),
video
,
- s
_mbus_fmt, mf
);
+ soc_camera_grp_id(icd),
pad
,
+ s
et_fmt, NULL, format
);
dev_geo(dev, "Camera scaled to %ux%u\n",
mf->width, mf->height);
if (ret < 0) {
dev_geo(dev, "Camera scaled to %ux%u\n",
mf->width, mf->height);
if (ret < 0) {
@@
-309,7
+310,11
@@
int soc_camera_client_scale(struct soc_camera_device *icd,
bool host_can_scale, unsigned int shift)
{
struct device *dev = icd->parent;
bool host_can_scale, unsigned int shift)
{
struct device *dev = icd->parent;
- struct v4l2_mbus_framefmt mf_tmp = *mf;
+ struct v4l2_subdev_format fmt_tmp = {
+ .which = V4L2_SUBDEV_FORMAT_ACTIVE,
+ .format = *mf,
+ };
+ struct v4l2_mbus_framefmt *mf_tmp = &fmt_tmp.format;
unsigned int scale_h, scale_v;
int ret;
unsigned int scale_h, scale_v;
int ret;
@@
-317,25
+322,25
@@
int soc_camera_client_scale(struct soc_camera_device *icd,
* 5. Apply iterative camera S_FMT for camera user window (also updates
* client crop cache and the imaginary sub-rectangle).
*/
* 5. Apply iterative camera S_FMT for camera user window (also updates
* client crop cache and the imaginary sub-rectangle).
*/
- ret = client_s_fmt(icd, rect, subrect, *width, *height,
- &
mf
_tmp, host_can_scale);
+ ret = client_s
et
_fmt(icd, rect, subrect, *width, *height,
+ &
fmt
_tmp, host_can_scale);
if (ret < 0)
return ret;
dev_geo(dev, "5: camera scaled to %ux%u\n",
if (ret < 0)
return ret;
dev_geo(dev, "5: camera scaled to %ux%u\n",
- mf_tmp
.width, mf_tmp.
height);
+ mf_tmp
->width, mf_tmp->
height);
/* 6. Retrieve camera output window (g_fmt) */
/* unneeded - it is already in "mf_tmp" */
/* 7. Calculate new client scales. */
/* 6. Retrieve camera output window (g_fmt) */
/* unneeded - it is already in "mf_tmp" */
/* 7. Calculate new client scales. */
- scale_h = soc_camera_calc_scale(rect->width, shift, mf_tmp
.
width);
- scale_v = soc_camera_calc_scale(rect->height, shift, mf_tmp
.
height);
+ scale_h = soc_camera_calc_scale(rect->width, shift, mf_tmp
->
width);
+ scale_v = soc_camera_calc_scale(rect->height, shift, mf_tmp
->
height);
- mf->width = mf_tmp
.
width;
- mf->height = mf_tmp
.
height;
- mf->colorspace = mf_tmp
.
colorspace;
+ mf->width = mf_tmp
->
width;
+ mf->height = mf_tmp
->
height;
+ mf->colorspace = mf_tmp
->
colorspace;
/*
* 8. Calculate new host crop - apply camera scales to previously
/*
* 8. Calculate new host crop - apply camera scales to previously