[media] v4l2: make vidioc_s_crop const

Write-only ioctls should have a const argument in the ioctl op.
Do this conversion for vidioc_s_crop.
Adding const for write-only ioctls was decided during the 2012 Media Workshop.

Signed-off-by: Hans Verkuil <hans.verkuil@cisco.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
This commit is contained in:
Hans Verkuil 2012-09-05 05:10:48 -03:00 committed by Mauro Carvalho Chehab
parent 3f70e1f598
commit 4f996594ce
30 changed files with 78 additions and 78 deletions

View File

@ -171,7 +171,7 @@ static int mt9m001_s_stream(struct v4l2_subdev *sd, int enable)
return 0; return 0;
} }
static int mt9m001_s_crop(struct v4l2_subdev *sd, struct v4l2_crop *a) static int mt9m001_s_crop(struct v4l2_subdev *sd, const struct v4l2_crop *a)
{ {
struct i2c_client *client = v4l2_get_subdevdata(sd); struct i2c_client *client = v4l2_get_subdevdata(sd);
struct mt9m001 *mt9m001 = to_mt9m001(client); struct mt9m001 *mt9m001 = to_mt9m001(client);

View File

@ -383,7 +383,7 @@ static int mt9m111_reset(struct mt9m111 *mt9m111)
return ret; return ret;
} }
static int mt9m111_s_crop(struct v4l2_subdev *sd, struct v4l2_crop *a) static int mt9m111_s_crop(struct v4l2_subdev *sd, const struct v4l2_crop *a)
{ {
struct v4l2_rect rect = a->c; struct v4l2_rect rect = a->c;
struct mt9m111 *mt9m111 = container_of(sd, struct mt9m111, subdev); struct mt9m111 *mt9m111 = container_of(sd, struct mt9m111, subdev);

View File

@ -294,7 +294,7 @@ static int mt9t031_set_params(struct i2c_client *client,
return ret < 0 ? ret : 0; return ret < 0 ? ret : 0;
} }
static int mt9t031_s_crop(struct v4l2_subdev *sd, struct v4l2_crop *a) static int mt9t031_s_crop(struct v4l2_subdev *sd, const struct v4l2_crop *a)
{ {
struct v4l2_rect rect = a->c; struct v4l2_rect rect = a->c;
struct i2c_client *client = v4l2_get_subdevdata(sd); struct i2c_client *client = v4l2_get_subdevdata(sd);

View File

@ -907,11 +907,11 @@ static int mt9t112_g_crop(struct v4l2_subdev *sd, struct v4l2_crop *a)
return 0; return 0;
} }
static int mt9t112_s_crop(struct v4l2_subdev *sd, struct v4l2_crop *a) static int mt9t112_s_crop(struct v4l2_subdev *sd, const struct v4l2_crop *a)
{ {
struct i2c_client *client = v4l2_get_subdevdata(sd); struct i2c_client *client = v4l2_get_subdevdata(sd);
struct mt9t112_priv *priv = to_mt9t112(client); struct mt9t112_priv *priv = to_mt9t112(client);
struct v4l2_rect *rect = &a->c; const struct v4l2_rect *rect = &a->c;
return mt9t112_set_params(priv, rect, priv->format->code); return mt9t112_set_params(priv, rect, priv->format->code);
} }

View File

@ -237,7 +237,7 @@ static int mt9v022_s_stream(struct v4l2_subdev *sd, int enable)
return 0; return 0;
} }
static int mt9v022_s_crop(struct v4l2_subdev *sd, struct v4l2_crop *a) static int mt9v022_s_crop(struct v4l2_subdev *sd, const struct v4l2_crop *a)
{ {
struct i2c_client *client = v4l2_get_subdevdata(sd); struct i2c_client *client = v4l2_get_subdevdata(sd);
struct mt9v022 *mt9v022 = to_mt9v022(client); struct mt9v022 *mt9v022 = to_mt9v022(client);

View File

@ -865,24 +865,24 @@ static int ov5642_g_chip_ident(struct v4l2_subdev *sd,
return 0; return 0;
} }
static int ov5642_s_crop(struct v4l2_subdev *sd, struct v4l2_crop *a) static int ov5642_s_crop(struct v4l2_subdev *sd, const struct v4l2_crop *a)
{ {
struct i2c_client *client = v4l2_get_subdevdata(sd); struct i2c_client *client = v4l2_get_subdevdata(sd);
struct ov5642 *priv = to_ov5642(client); struct ov5642 *priv = to_ov5642(client);
struct v4l2_rect *rect = &a->c; struct v4l2_rect rect = a->c;
int ret; int ret;
v4l_bound_align_image(&rect->width, 48, OV5642_MAX_WIDTH, 1, v4l_bound_align_image(&rect.width, 48, OV5642_MAX_WIDTH, 1,
&rect->height, 32, OV5642_MAX_HEIGHT, 1, 0); &rect.height, 32, OV5642_MAX_HEIGHT, 1, 0);
priv->crop_rect.width = rect->width; priv->crop_rect.width = rect.width;
priv->crop_rect.height = rect->height; priv->crop_rect.height = rect.height;
priv->total_width = rect->width + BLANKING_EXTRA_WIDTH; priv->total_width = rect.width + BLANKING_EXTRA_WIDTH;
priv->total_height = max_t(int, rect->height + priv->total_height = max_t(int, rect.height +
BLANKING_EXTRA_HEIGHT, BLANKING_EXTRA_HEIGHT,
BLANKING_MIN_HEIGHT); BLANKING_MIN_HEIGHT);
priv->crop_rect.width = rect->width; priv->crop_rect.width = rect.width;
priv->crop_rect.height = rect->height; priv->crop_rect.height = rect.height;
ret = ov5642_write_array(client, ov5642_default_regs_init); ret = ov5642_write_array(client, ov5642_default_regs_init);
if (!ret) if (!ret)

View File

@ -451,42 +451,42 @@ static int ov6650_g_crop(struct v4l2_subdev *sd, struct v4l2_crop *a)
return 0; return 0;
} }
static int ov6650_s_crop(struct v4l2_subdev *sd, struct v4l2_crop *a) static int ov6650_s_crop(struct v4l2_subdev *sd, const struct v4l2_crop *a)
{ {
struct i2c_client *client = v4l2_get_subdevdata(sd); struct i2c_client *client = v4l2_get_subdevdata(sd);
struct ov6650 *priv = to_ov6650(client); struct ov6650 *priv = to_ov6650(client);
struct v4l2_rect *rect = &a->c; struct v4l2_rect rect = a->c;
int ret; int ret;
if (a->type != V4L2_BUF_TYPE_VIDEO_CAPTURE) if (a->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
return -EINVAL; return -EINVAL;
rect->left = ALIGN(rect->left, 2); rect.left = ALIGN(rect.left, 2);
rect->width = ALIGN(rect->width, 2); rect.width = ALIGN(rect.width, 2);
rect->top = ALIGN(rect->top, 2); rect.top = ALIGN(rect.top, 2);
rect->height = ALIGN(rect->height, 2); rect.height = ALIGN(rect.height, 2);
soc_camera_limit_side(&rect->left, &rect->width, soc_camera_limit_side(&rect.left, &rect.width,
DEF_HSTRT << 1, 2, W_CIF); DEF_HSTRT << 1, 2, W_CIF);
soc_camera_limit_side(&rect->top, &rect->height, soc_camera_limit_side(&rect.top, &rect.height,
DEF_VSTRT << 1, 2, H_CIF); DEF_VSTRT << 1, 2, H_CIF);
ret = ov6650_reg_write(client, REG_HSTRT, rect->left >> 1); ret = ov6650_reg_write(client, REG_HSTRT, rect.left >> 1);
if (!ret) { if (!ret) {
priv->rect.left = rect->left; priv->rect.left = rect.left;
ret = ov6650_reg_write(client, REG_HSTOP, ret = ov6650_reg_write(client, REG_HSTOP,
(rect->left + rect->width) >> 1); (rect.left + rect.width) >> 1);
} }
if (!ret) { if (!ret) {
priv->rect.width = rect->width; priv->rect.width = rect.width;
ret = ov6650_reg_write(client, REG_VSTRT, rect->top >> 1); ret = ov6650_reg_write(client, REG_VSTRT, rect.top >> 1);
} }
if (!ret) { if (!ret) {
priv->rect.top = rect->top; priv->rect.top = rect.top;
ret = ov6650_reg_write(client, REG_VSTOP, ret = ov6650_reg_write(client, REG_VSTOP,
(rect->top + rect->height) >> 1); (rect.top + rect.height) >> 1);
} }
if (!ret) if (!ret)
priv->rect.height = rect->height; priv->rect.height = rect.height;
return ret; return ret;
} }

View File

@ -536,11 +536,11 @@ static int rj54n1_commit(struct i2c_client *client)
static int rj54n1_sensor_scale(struct v4l2_subdev *sd, s32 *in_w, s32 *in_h, static int rj54n1_sensor_scale(struct v4l2_subdev *sd, s32 *in_w, s32 *in_h,
s32 *out_w, s32 *out_h); s32 *out_w, s32 *out_h);
static int rj54n1_s_crop(struct v4l2_subdev *sd, struct v4l2_crop *a) static int rj54n1_s_crop(struct v4l2_subdev *sd, const struct v4l2_crop *a)
{ {
struct i2c_client *client = v4l2_get_subdevdata(sd); struct i2c_client *client = v4l2_get_subdevdata(sd);
struct rj54n1 *rj54n1 = to_rj54n1(client); struct rj54n1 *rj54n1 = to_rj54n1(client);
struct v4l2_rect *rect = &a->c; const struct v4l2_rect *rect = &a->c;
int dummy = 0, output_w, output_h, int dummy = 0, output_w, output_h,
input_w = rect->width, input_h = rect->height; input_w = rect->width, input_h = rect->height;
int ret; int ret;

View File

@ -865,7 +865,7 @@ static int tvp5150_mbus_fmt(struct v4l2_subdev *sd,
return 0; return 0;
} }
static int tvp5150_s_crop(struct v4l2_subdev *sd, struct v4l2_crop *a) static int tvp5150_s_crop(struct v4l2_subdev *sd, const struct v4l2_crop *a)
{ {
struct v4l2_rect rect = a->c; struct v4l2_rect rect = a->c;
struct tvp5150 *decoder = to_tvp5150(sd); struct tvp5150 *decoder = to_tvp5150(sd);

View File

@ -2986,7 +2986,7 @@ static int bttv_g_crop(struct file *file, void *f, struct v4l2_crop *crop)
return 0; return 0;
} }
static int bttv_s_crop(struct file *file, void *f, struct v4l2_crop *crop) static int bttv_s_crop(struct file *file, void *f, const struct v4l2_crop *crop)
{ {
struct bttv_fh *fh = f; struct bttv_fh *fh = f;
struct bttv *btv = fh->btv; struct bttv *btv = fh->btv;
@ -3028,17 +3028,17 @@ static int bttv_s_crop(struct file *file, void *f, struct v4l2_crop *crop)
} }
/* Min. scaled size 48 x 32. */ /* Min. scaled size 48 x 32. */
c.rect.left = clamp(crop->c.left, b_left, b_right - 48); c.rect.left = clamp_t(s32, crop->c.left, b_left, b_right - 48);
c.rect.left = min(c.rect.left, (__s32) MAX_HDELAY); c.rect.left = min(c.rect.left, (__s32) MAX_HDELAY);
c.rect.width = clamp(crop->c.width, c.rect.width = clamp_t(s32, crop->c.width,
48, b_right - c.rect.left); 48, b_right - c.rect.left);
c.rect.top = clamp(crop->c.top, b_top, b_bottom - 32); c.rect.top = clamp_t(s32, crop->c.top, b_top, b_bottom - 32);
/* Top and height must be a multiple of two. */ /* Top and height must be a multiple of two. */
c.rect.top = (c.rect.top + 1) & ~1; c.rect.top = (c.rect.top + 1) & ~1;
c.rect.height = clamp(crop->c.height, c.rect.height = clamp_t(s32, crop->c.height,
32, b_bottom - c.rect.top); 32, b_bottom - c.rect.top);
c.rect.height = (c.rect.height + 1) & ~1; c.rect.height = (c.rect.height + 1) & ~1;

View File

@ -527,7 +527,7 @@ static int cx18_cropcap(struct file *file, void *fh,
return 0; return 0;
} }
static int cx18_s_crop(struct file *file, void *fh, struct v4l2_crop *crop) static int cx18_s_crop(struct file *file, void *fh, const struct v4l2_crop *crop)
{ {
struct cx18_open_id *id = fh2id(fh); struct cx18_open_id *id = fh2id(fh);
struct cx18 *cx = id->cx; struct cx18 *cx = id->cx;

View File

@ -1610,7 +1610,7 @@ int cx25821_vidioc_cropcap(struct file *file, void *priv,
return 0; return 0;
} }
int cx25821_vidioc_s_crop(struct file *file, void *priv, struct v4l2_crop *crop) int cx25821_vidioc_s_crop(struct file *file, void *priv, const struct v4l2_crop *crop)
{ {
struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev; struct cx25821_dev *dev = ((struct cx25821_fh *)priv)->dev;
struct cx25821_fh *fh = priv; struct cx25821_fh *fh = priv;

View File

@ -177,7 +177,7 @@ extern int cx25821_set_control(struct cx25821_dev *dev,
extern int cx25821_vidioc_cropcap(struct file *file, void *fh, extern int cx25821_vidioc_cropcap(struct file *file, void *fh,
struct v4l2_cropcap *cropcap); struct v4l2_cropcap *cropcap);
extern int cx25821_vidioc_s_crop(struct file *file, void *priv, extern int cx25821_vidioc_s_crop(struct file *file, void *priv,
struct v4l2_crop *crop); const struct v4l2_crop *crop);
extern int cx25821_vidioc_g_crop(struct file *file, void *priv, extern int cx25821_vidioc_g_crop(struct file *file, void *priv,
struct v4l2_crop *crop); struct v4l2_crop *crop);

View File

@ -874,7 +874,7 @@ static int ivtv_cropcap(struct file *file, void *fh, struct v4l2_cropcap *cropca
return 0; return 0;
} }
static int ivtv_s_crop(struct file *file, void *fh, struct v4l2_crop *crop) static int ivtv_s_crop(struct file *file, void *fh, const struct v4l2_crop *crop)
{ {
struct ivtv_open_id *id = fh2id(fh); struct ivtv_open_id *id = fh2id(fh);
struct ivtv *itv = id->itv; struct ivtv *itv = id->itv;

View File

@ -1953,11 +1953,12 @@ static int saa7134_g_crop(struct file *file, void *f, struct v4l2_crop *crop)
return 0; return 0;
} }
static int saa7134_s_crop(struct file *file, void *f, struct v4l2_crop *crop) static int saa7134_s_crop(struct file *file, void *f, const struct v4l2_crop *crop)
{ {
struct saa7134_fh *fh = f; struct saa7134_fh *fh = f;
struct saa7134_dev *dev = fh->dev; struct saa7134_dev *dev = fh->dev;
struct v4l2_rect *b = &dev->crop_bounds; struct v4l2_rect *b = &dev->crop_bounds;
struct v4l2_rect *c = &dev->crop_current;
if (crop->type != V4L2_BUF_TYPE_VIDEO_CAPTURE && if (crop->type != V4L2_BUF_TYPE_VIDEO_CAPTURE &&
crop->type != V4L2_BUF_TYPE_VIDEO_OVERLAY) crop->type != V4L2_BUF_TYPE_VIDEO_OVERLAY)
@ -1972,21 +1973,20 @@ static int saa7134_s_crop(struct file *file, void *f, struct v4l2_crop *crop)
if (res_locked(fh->dev, RESOURCE_VIDEO)) if (res_locked(fh->dev, RESOURCE_VIDEO))
return -EBUSY; return -EBUSY;
if (crop->c.top < b->top) *c = crop->c;
crop->c.top = b->top; if (c->top < b->top)
if (crop->c.top > b->top + b->height) c->top = b->top;
crop->c.top = b->top + b->height; if (c->top > b->top + b->height)
if (crop->c.height > b->top - crop->c.top + b->height) c->top = b->top + b->height;
crop->c.height = b->top - crop->c.top + b->height; if (c->height > b->top - c->top + b->height)
c->height = b->top - c->top + b->height;
if (crop->c.left < b->left) if (c->left < b->left)
crop->c.left = b->left; c->left = b->left;
if (crop->c.left > b->left + b->width) if (c->left > b->left + b->width)
crop->c.left = b->left + b->width; c->left = b->left + b->width;
if (crop->c.width > b->left - crop->c.left + b->width) if (c->width > b->left - c->left + b->width)
crop->c.width = b->left - crop->c.left + b->width; c->width = b->left - c->left + b->width;
dev->crop_current = crop->c;
return 0; return 0;
} }

View File

@ -2598,7 +2598,7 @@ static int zoran_g_crop(struct file *file, void *__fh, struct v4l2_crop *crop)
return res; return res;
} }
static int zoran_s_crop(struct file *file, void *__fh, struct v4l2_crop *crop) static int zoran_s_crop(struct file *file, void *__fh, const struct v4l2_crop *crop)
{ {
struct zoran_fh *fh = __fh; struct zoran_fh *fh = __fh;
struct zoran *zr = fh->zr; struct zoran *zr = fh->zr;

View File

@ -629,7 +629,7 @@ static int vpbe_display_querycap(struct file *file, void *priv,
} }
static int vpbe_display_s_crop(struct file *file, void *priv, static int vpbe_display_s_crop(struct file *file, void *priv,
struct v4l2_crop *crop) const struct v4l2_crop *crop)
{ {
struct vpbe_fh *fh = file->private_data; struct vpbe_fh *fh = file->private_data;
struct vpbe_layer *layer = fh->layer; struct vpbe_layer *layer = fh->layer;

View File

@ -1666,7 +1666,7 @@ static int vpfe_g_crop(struct file *file, void *priv,
} }
static int vpfe_s_crop(struct file *file, void *priv, static int vpfe_s_crop(struct file *file, void *priv,
struct v4l2_crop *crop) const struct v4l2_crop *crop)
{ {
struct vpfe_device *vpfe_dev = video_drvdata(file); struct vpfe_device *vpfe_dev = video_drvdata(file);
int ret = 0; int ret = 0;

View File

@ -1291,7 +1291,7 @@ static int vidioc_g_crop(struct file *file, void *fh, struct v4l2_crop *crop)
return 0; return 0;
} }
static int vidioc_s_crop(struct file *file, void *fh, struct v4l2_crop *crop) static int vidioc_s_crop(struct file *file, void *fh, const struct v4l2_crop *crop)
{ {
int ret = -EINVAL; int ret = -EINVAL;
struct omap_vout_device *vout = fh; struct omap_vout_device *vout = fh;

View File

@ -551,7 +551,7 @@ static int fimc_m2m_try_crop(struct fimc_ctx *ctx, struct v4l2_crop *cr)
return 0; return 0;
} }
static int fimc_m2m_s_crop(struct file *file, void *fh, struct v4l2_crop *cr) static int fimc_m2m_s_crop(struct file *file, void *fh, const struct v4l2_crop *cr)
{ {
struct fimc_ctx *ctx = fh_to_ctx(fh); struct fimc_ctx *ctx = fh_to_ctx(fh);
struct fimc_dev *fimc = ctx->fimc_dev; struct fimc_dev *fimc = ctx->fimc_dev;

View File

@ -526,7 +526,7 @@ static int vidioc_try_crop(struct file *file, void *prv, struct v4l2_crop *cr)
return 0; return 0;
} }
static int vidioc_s_crop(struct file *file, void *prv, struct v4l2_crop *cr) static int vidioc_s_crop(struct file *file, void *prv, const struct v4l2_crop *cr)
{ {
struct g2d_ctx *ctx = prv; struct g2d_ctx *ctx = prv;
struct g2d_frame *f; struct g2d_frame *f;

View File

@ -933,7 +933,7 @@ static int sh_vou_g_crop(struct file *file, void *fh, struct v4l2_crop *a)
} }
/* Assume a dull encoder, do all the work ourselves. */ /* Assume a dull encoder, do all the work ourselves. */
static int sh_vou_s_crop(struct file *file, void *fh, struct v4l2_crop *a) static int sh_vou_s_crop(struct file *file, void *fh, const struct v4l2_crop *a)
{ {
struct video_device *vdev = video_devdata(file); struct video_device *vdev = video_devdata(file);
struct sh_vou_device *vou_dev = video_get_drvdata(vdev); struct sh_vou_device *vou_dev = video_get_drvdata(vdev);

View File

@ -1263,7 +1263,7 @@ static void update_subrect(struct sh_mobile_ceu_cam *cam)
* 3. if (2) failed, try to request the maximum image * 3. if (2) failed, try to request the maximum image
*/ */
static int client_s_crop(struct soc_camera_device *icd, struct v4l2_crop *crop, static int client_s_crop(struct soc_camera_device *icd, struct v4l2_crop *crop,
struct v4l2_crop *cam_crop) const struct v4l2_crop *cam_crop)
{ {
struct v4l2_subdev *sd = soc_camera_to_subdev(icd); struct v4l2_subdev *sd = soc_camera_to_subdev(icd);
struct v4l2_rect *rect = &crop->c, *cam_rect = &cam_crop->c; struct v4l2_rect *rect = &crop->c, *cam_rect = &cam_crop->c;
@ -1517,7 +1517,7 @@ static int client_scale(struct soc_camera_device *icd,
* scaling and cropping algorithms and for the meaning of referenced here steps. * scaling and cropping algorithms and for the meaning of referenced here steps.
*/ */
static int sh_mobile_ceu_set_crop(struct soc_camera_device *icd, static int sh_mobile_ceu_set_crop(struct soc_camera_device *icd,
struct v4l2_crop *a) const struct v4l2_crop *a)
{ {
struct v4l2_rect *rect = &a->c; struct v4l2_rect *rect = &a->c;
struct device *dev = icd->parent; struct device *dev = icd->parent;

View File

@ -888,11 +888,11 @@ static int soc_camera_g_crop(struct file *file, void *fh,
* retrieve it. * retrieve it.
*/ */
static int soc_camera_s_crop(struct file *file, void *fh, static int soc_camera_s_crop(struct file *file, void *fh,
struct v4l2_crop *a) const struct v4l2_crop *a)
{ {
struct soc_camera_device *icd = file->private_data; struct soc_camera_device *icd = file->private_data;
struct soc_camera_host *ici = to_soc_camera_host(icd->parent); struct soc_camera_host *ici = to_soc_camera_host(icd->parent);
struct v4l2_rect *rect = &a->c; const struct v4l2_rect *rect = &a->c;
struct v4l2_crop current_crop; struct v4l2_crop current_crop;
int ret; int ret;
@ -1289,7 +1289,7 @@ static int default_g_crop(struct soc_camera_device *icd, struct v4l2_crop *a)
return v4l2_subdev_call(sd, video, g_crop, a); return v4l2_subdev_call(sd, video, g_crop, a);
} }
static int default_s_crop(struct soc_camera_device *icd, struct v4l2_crop *a) static int default_s_crop(struct soc_camera_device *icd, const struct v4l2_crop *a)
{ {
struct v4l2_subdev *sd = soc_camera_to_subdev(icd); struct v4l2_subdev *sd = soc_camera_to_subdev(icd);
return v4l2_subdev_call(sd, video, s_crop, a); return v4l2_subdev_call(sd, video, s_crop, a);

View File

@ -3284,7 +3284,7 @@ static int vino_g_crop(struct file *file, void *__fh,
} }
static int vino_s_crop(struct file *file, void *__fh, static int vino_s_crop(struct file *file, void *__fh,
struct v4l2_crop *c) const struct v4l2_crop *c)
{ {
struct vino_channel_settings *vcs = video_drvdata(file); struct vino_channel_settings *vcs = video_drvdata(file);
unsigned long flags; unsigned long flags;

View File

@ -760,7 +760,7 @@ static int pvr2_g_crop(struct file *file, void *priv, struct v4l2_crop *crop)
return 0; return 0;
} }
static int pvr2_s_crop(struct file *file, void *priv, struct v4l2_crop *crop) static int pvr2_s_crop(struct file *file, void *priv, const struct v4l2_crop *crop)
{ {
struct pvr2_v4l2_fh *fh = file->private_data; struct pvr2_v4l2_fh *fh = file->private_data;
struct pvr2_hdw *hdw = fh->channel.mc_head->hdw; struct pvr2_hdw *hdw = fh->channel.mc_head->hdw;

View File

@ -1372,7 +1372,7 @@ static int vidioc_g_crop(struct file *file, void *priv, struct v4l2_crop *crop)
/* FIXME: vidioc_s_crop is not really implemented!!! /* FIXME: vidioc_s_crop is not really implemented!!!
*/ */
static int vidioc_s_crop(struct file *file, void *priv, struct v4l2_crop *crop) static int vidioc_s_crop(struct file *file, void *priv, const struct v4l2_crop *crop)
{ {
if (crop->type != V4L2_BUF_TYPE_VIDEO_CAPTURE) if (crop->type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
return -EINVAL; return -EINVAL;

View File

@ -85,14 +85,14 @@ struct soc_camera_host_ops {
void (*put_formats)(struct soc_camera_device *); void (*put_formats)(struct soc_camera_device *);
int (*cropcap)(struct soc_camera_device *, struct v4l2_cropcap *); int (*cropcap)(struct soc_camera_device *, struct v4l2_cropcap *);
int (*get_crop)(struct soc_camera_device *, struct v4l2_crop *); int (*get_crop)(struct soc_camera_device *, struct v4l2_crop *);
int (*set_crop)(struct soc_camera_device *, struct v4l2_crop *); int (*set_crop)(struct soc_camera_device *, const struct v4l2_crop *);
int (*get_selection)(struct soc_camera_device *, struct v4l2_selection *); int (*get_selection)(struct soc_camera_device *, struct v4l2_selection *);
int (*set_selection)(struct soc_camera_device *, struct v4l2_selection *); int (*set_selection)(struct soc_camera_device *, struct v4l2_selection *);
/* /*
* The difference to .set_crop() is, that .set_livecrop is not allowed * The difference to .set_crop() is, that .set_livecrop is not allowed
* to change the output sizes * to change the output sizes
*/ */
int (*set_livecrop)(struct soc_camera_device *, struct v4l2_crop *); int (*set_livecrop)(struct soc_camera_device *, const struct v4l2_crop *);
int (*set_fmt)(struct soc_camera_device *, struct v4l2_format *); int (*set_fmt)(struct soc_camera_device *, struct v4l2_format *);
int (*try_fmt)(struct soc_camera_device *, struct v4l2_format *); int (*try_fmt)(struct soc_camera_device *, struct v4l2_format *);
void (*init_videobuf)(struct videobuf_queue *, void (*init_videobuf)(struct videobuf_queue *,

View File

@ -186,7 +186,7 @@ struct v4l2_ioctl_ops {
int (*vidioc_g_crop) (struct file *file, void *fh, int (*vidioc_g_crop) (struct file *file, void *fh,
struct v4l2_crop *a); struct v4l2_crop *a);
int (*vidioc_s_crop) (struct file *file, void *fh, int (*vidioc_s_crop) (struct file *file, void *fh,
struct v4l2_crop *a); const struct v4l2_crop *a);
int (*vidioc_g_selection) (struct file *file, void *fh, int (*vidioc_g_selection) (struct file *file, void *fh,
struct v4l2_selection *s); struct v4l2_selection *s);
int (*vidioc_s_selection) (struct file *file, void *fh, int (*vidioc_s_selection) (struct file *file, void *fh,

View File

@ -286,7 +286,7 @@ struct v4l2_subdev_video_ops {
int (*s_stream)(struct v4l2_subdev *sd, int enable); int (*s_stream)(struct v4l2_subdev *sd, int enable);
int (*cropcap)(struct v4l2_subdev *sd, struct v4l2_cropcap *cc); int (*cropcap)(struct v4l2_subdev *sd, struct v4l2_cropcap *cc);
int (*g_crop)(struct v4l2_subdev *sd, struct v4l2_crop *crop); int (*g_crop)(struct v4l2_subdev *sd, struct v4l2_crop *crop);
int (*s_crop)(struct v4l2_subdev *sd, struct v4l2_crop *crop); int (*s_crop)(struct v4l2_subdev *sd, const struct v4l2_crop *crop);
int (*g_parm)(struct v4l2_subdev *sd, struct v4l2_streamparm *param); int (*g_parm)(struct v4l2_subdev *sd, struct v4l2_streamparm *param);
int (*s_parm)(struct v4l2_subdev *sd, struct v4l2_streamparm *param); int (*s_parm)(struct v4l2_subdev *sd, struct v4l2_streamparm *param);
int (*g_frame_interval)(struct v4l2_subdev *sd, int (*g_frame_interval)(struct v4l2_subdev *sd,