hc
2023-12-11 6778948f9de86c3cfaf36725a7c87dcff9ba247f
kernel/drivers/media/i2c/imx317.c
....@@ -845,9 +845,7 @@
845845 struct imx317 *imx317 = to_imx317(sd);
846846 const struct imx317_mode *mode = imx317->cur_mode;
847847
848
- mutex_lock(&imx317->mutex);
849848 fi->interval = mode->max_fps;
850
- mutex_unlock(&imx317->mutex);
851849
852850 return 0;
853851 }
....@@ -1178,16 +1176,14 @@
11781176 if (fie->index >= imx317->cfg_num)
11791177 return -EINVAL;
11801178
1181
- if (fie->code != IMX317_MEDIA_BUS_FMT)
1182
- return -EINVAL;
1183
-
1179
+ fie->code = IMX317_MEDIA_BUS_FMT;
11841180 fie->width = supported_modes[fie->index].width;
11851181 fie->height = supported_modes[fie->index].height;
11861182 fie->interval = supported_modes[fie->index].max_fps;
11871183 return 0;
11881184 }
11891185
1190
-static int imx317_g_mbus_config(struct v4l2_subdev *sd,
1186
+static int imx317_g_mbus_config(struct v4l2_subdev *sd, unsigned int pad_id,
11911187 struct v4l2_mbus_config *config)
11921188 {
11931189 u32 val = 0;
....@@ -1196,7 +1192,7 @@
11961192 val = 1 << (imx317->lane_num - 1) |
11971193 V4L2_MBUS_CSI2_CHANNEL_0 |
11981194 V4L2_MBUS_CSI2_CONTINUOUS_CLOCK;
1199
- config->type = V4L2_MBUS_CSI2;
1195
+ config->type = V4L2_MBUS_CSI2_DPHY;
12001196 config->flags = val;
12011197
12021198 return 0;
....@@ -1224,7 +1220,6 @@
12241220 static const struct v4l2_subdev_video_ops imx317_video_ops = {
12251221 .s_stream = imx317_s_stream,
12261222 .g_frame_interval = imx317_g_frame_interval,
1227
- .g_mbus_config = imx317_g_mbus_config,
12281223 };
12291224
12301225 static const struct v4l2_subdev_pad_ops imx317_pad_ops = {
....@@ -1233,6 +1228,7 @@
12331228 .enum_frame_interval = imx317_enum_frame_interval,
12341229 .get_fmt = imx317_get_fmt,
12351230 .set_fmt = imx317_set_fmt,
1231
+ .get_mbus_config = imx317_g_mbus_config,
12361232 };
12371233
12381234 static const struct v4l2_subdev_ops imx317_subdev_ops = {