Connect ov5645_{g,s}_parm to mtk_mipicsi
- Subdevs no longer support g_parm or s_parm, so manually call into our
driver from the mipicsi device.
Change-Id: Iee7568dcb3fcbd4fceed957526d479652d7c1592
diff --git a/drivers/media/platform/mtk-mipicsi/mtk_mipicsi.c b/drivers/media/platform/mtk-mipicsi/mtk_mipicsi.c
index 683c775..0a13059 100644
--- a/drivers/media/platform/mtk-mipicsi/mtk_mipicsi.c
+++ b/drivers/media/platform/mtk-mipicsi/mtk_mipicsi.c
@@ -1004,6 +1004,20 @@
return 0;
}
+extern int ov5645_s_parm(struct v4l2_subdev *sd, struct v4l2_streamparm *parm);
+static int mtk_s_parm(struct file *file, void *fh, struct v4l2_streamparm *parm) {
+ struct mtk_mipicsi_dev *mipicsi = video_drvdata(file);
+ struct v4l2_subdev *sd = mipicsi->mipicsi_sd.subdev;
+ return ov5645_s_parm(sd, parm);
+}
+
+extern int ov5645_g_parm(struct v4l2_subdev *sd, struct v4l2_streamparm *parm);
+static int mtk_g_parm(struct file *file, void *fh, struct v4l2_streamparm *parm) {
+ struct mtk_mipicsi_dev *mipicsi = video_drvdata(file);
+ struct v4l2_subdev *sd = mipicsi->mipicsi_sd.subdev;
+ return ov5645_g_parm(sd, parm);
+}
+
static const struct v4l2_ioctl_ops mtk_mipicsi_ioctl_ops = {
.vidioc_querycap = mtk_mipicsi_querycap,
@@ -1015,6 +1029,8 @@
.vidioc_enum_input = mtk_enum_input,
.vidioc_g_input = mtk_g_input,
.vidioc_s_input = mtk_s_input,
+ .vidioc_g_parm = mtk_g_parm,
+ .vidioc_s_parm = mtk_s_parm,
.vidioc_reqbufs = vb2_ioctl_reqbufs,
.vidioc_create_bufs = vb2_ioctl_create_bufs,
diff --git a/drivers/media/platform/mxc/capture/ov5645_mipi_v2.c b/drivers/media/platform/mxc/capture/ov5645_mipi_v2.c
index 1e5fc05..a843cbf 100644
--- a/drivers/media/platform/mxc/capture/ov5645_mipi_v2.c
+++ b/drivers/media/platform/mxc/capture/ov5645_mipi_v2.c
@@ -3055,7 +3055,7 @@
*
* Returns the sensor's video CAPTURE parameters.
*/
-static int ov5645_g_parm(struct v4l2_subdev *sd, struct v4l2_streamparm *a)
+int ov5645_g_parm(struct v4l2_subdev *sd, struct v4l2_streamparm *a)
{
struct i2c_client *client = v4l2_get_subdevdata(sd);
struct ov5645 *sensor = to_ov5645(client);
@@ -3101,7 +3101,7 @@
* not possible, reverts to the old parameters and returns the
* appropriate error code.
*/
-static int ov5645_s_parm(struct v4l2_subdev *sd, struct v4l2_streamparm *a)
+int ov5645_s_parm(struct v4l2_subdev *sd, struct v4l2_streamparm *a)
{
struct i2c_client *client = v4l2_get_subdevdata(sd);
struct ov5645 *sensor = to_ov5645(client);