diff --git a/drivers/media/video/soc_camera.c b/drivers/media/video/soc_camera.c index aa6614b60d6f4ed4485c9d7075f3bf7b523d1b70..44a94dc934f8c371b32c08a5aa78aeb9dda0a10d 100644 --- a/drivers/media/video/soc_camera.c +++ b/drivers/media/video/soc_camera.c @@ -152,12 +152,9 @@ static int soc_camera_s_std(struct file *file, void *priv, v4l2_std_id *a) { struct soc_camera_file *icf = file->private_data; struct soc_camera_device *icd = icf->icd; - int ret = 0; - - if (icd->ops->set_std) - ret = icd->ops->set_std(icd, a); + struct soc_camera_host *ici = to_soc_camera_host(icd->dev.parent); - return ret; + return v4l2_device_call_until_err(&ici->v4l2_dev, (__u32)icd, core, s_std, *a); } static int soc_camera_reqbufs(struct file *file, void *priv, diff --git a/include/media/soc_camera.h b/include/media/soc_camera.h index 2b7a8c663605457c3bdaf068dcc7b6a096cb05c0..7c44d4016561795cc82358ab0f6080bfd00d4b38 100644 --- a/include/media/soc_camera.h +++ b/include/media/soc_camera.h @@ -190,7 +190,6 @@ struct soc_camera_ops { int (*set_bus_param)(struct soc_camera_device *, unsigned long); int (*get_chip_id)(struct soc_camera_device *, struct v4l2_dbg_chip_ident *); - int (*set_std)(struct soc_camera_device *, v4l2_std_id *); int (*enum_input)(struct soc_camera_device *, struct v4l2_input *); const struct v4l2_queryctrl *controls; int num_controls;