projects
/
cascardo
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
V4L/DVB (12529): soc-camera: switch to s_crop v4l2-subdev video operation
[cascardo/linux.git]
/
drivers
/
media
/
video
/
mt9v022.c
diff --git
a/drivers/media/video/mt9v022.c
b/drivers/media/video/mt9v022.c
index
d2b0981
..
e609ff5
100644
(file)
--- a/
drivers/media/video/mt9v022.c
+++ b/
drivers/media/video/mt9v022.c
@@
-248,10
+248,11
@@
static unsigned long mt9v022_query_bus_param(struct soc_camera_device *icd)
width_flag;
}
width_flag;
}
-static int mt9v022_set_crop(struct soc_camera_device *icd,
- struct v4l2_rect *rect)
+static int mt9v022_s_crop(struct v4l2_subdev *sd, struct v4l2_crop *a)
{
{
- struct i2c_client *client = to_i2c_client(to_soc_camera_control(icd));
+ struct v4l2_rect *rect = &a->c;
+ struct i2c_client *client = sd->priv;
+ struct soc_camera_device *icd = client->dev.platform_data;
int ret;
/* Like in example app. Contradicts the datasheet though */
int ret;
/* Like in example app. Contradicts the datasheet though */
@@
-297,11
+298,13
@@
static int mt9v022_s_fmt(struct v4l2_subdev *sd, struct v4l2_format *f)
struct mt9v022 *mt9v022 = to_mt9v022(client);
struct soc_camera_device *icd = client->dev.platform_data;
struct v4l2_pix_format *pix = &f->fmt.pix;
struct mt9v022 *mt9v022 = to_mt9v022(client);
struct soc_camera_device *icd = client->dev.platform_data;
struct v4l2_pix_format *pix = &f->fmt.pix;
- struct v4l2_rect rect = {
- .left = icd->rect_current.left,
- .top = icd->rect_current.top,
- .width = pix->width,
- .height = pix->height,
+ struct v4l2_crop a = {
+ .c = {
+ .left = icd->rect_current.left,
+ .top = icd->rect_current.top,
+ .width = pix->width,
+ .height = pix->height,
+ },
};
/* The caller provides a supported format, as verified per call to
};
/* The caller provides a supported format, as verified per call to
@@
-325,7
+328,7
@@
static int mt9v022_s_fmt(struct v4l2_subdev *sd, struct v4l2_format *f)
}
/* No support for scaling on this camera, just crop. */
}
/* No support for scaling on this camera, just crop. */
- return mt9v022_s
et_crop(icd, &rect
);
+ return mt9v022_s
_crop(sd, &a
);
}
static int mt9v022_try_fmt(struct v4l2_subdev *sd, struct v4l2_format *f)
}
static int mt9v022_try_fmt(struct v4l2_subdev *sd, struct v4l2_format *f)
@@
-454,7
+457,6
@@
static const struct v4l2_queryctrl mt9v022_controls[] = {
static struct soc_camera_ops mt9v022_ops = {
.init = mt9v022_init,
static struct soc_camera_ops mt9v022_ops = {
.init = mt9v022_init,
- .set_crop = mt9v022_set_crop,
.set_bus_param = mt9v022_set_bus_param,
.query_bus_param = mt9v022_query_bus_param,
.controls = mt9v022_controls,
.set_bus_param = mt9v022_set_bus_param,
.query_bus_param = mt9v022_query_bus_param,
.controls = mt9v022_controls,
@@
-700,6
+702,7
@@
static struct v4l2_subdev_video_ops mt9v022_subdev_video_ops = {
.s_stream = mt9v022_s_stream,
.s_fmt = mt9v022_s_fmt,
.try_fmt = mt9v022_try_fmt,
.s_stream = mt9v022_s_stream,
.s_fmt = mt9v022_s_fmt,
.try_fmt = mt9v022_try_fmt,
+ .s_crop = mt9v022_s_crop,
};
static struct v4l2_subdev_ops mt9v022_subdev_ops = {
};
static struct v4l2_subdev_ops mt9v022_subdev_ops = {