From: Hugues Fruchet <hugues.fruchet@st.com> To: Alexandre Torgue <alexandre.torgue@st.com>, Mauro Carvalho Chehab <mchehab@kernel.org>, Hans Verkuil <hverkuil@xs4all.nl>, Sakari Ailus <sakari.ailus@linux.intel.com> Cc: <linux-media@vger.kernel.org>, <linux-arm-kernel@lists.infradead.org>, <linux-kernel@vger.kernel.org>, <linux-stm32@st-md-mailman.stormreply.com>, Benjamin Gaignard <benjamin.gaignard@linaro.org>, Yannick Fertre <yannick.fertre@st.com>, Philippe CORNU <philippe.cornu@st.com>, "Hugues Fruchet" <hugues.fruchet@st.com>, Mickael GUENE <mickael.guene@st.com> Subject: [PATCH v2 1/3] media: stm32-dcmi: improve sensor subdev naming Date: Tue, 11 Jun 2019 10:48:30 +0200 [thread overview] Message-ID: <1560242912-17138-2-git-send-email-hugues.fruchet@st.com> (raw) In-Reply-To: <1560242912-17138-1-git-send-email-hugues.fruchet@st.com> Add a new "sensor" field to dcmi struct instead of reusing entity->subdev to address sensor subdev. Signed-off-by: Hugues Fruchet <hugues.fruchet@st.com> --- drivers/media/platform/stm32/stm32-dcmi.c | 37 ++++++++++++++++--------------- 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/drivers/media/platform/stm32/stm32-dcmi.c b/drivers/media/platform/stm32/stm32-dcmi.c index b9dad0a..7a4d559 100644 --- a/drivers/media/platform/stm32/stm32-dcmi.c +++ b/drivers/media/platform/stm32/stm32-dcmi.c @@ -151,6 +151,7 @@ struct stm32_dcmi { unsigned int num_of_sd_framesizes; struct dcmi_framesize sd_framesize; struct v4l2_rect sd_bounds; + struct v4l2_subdev *sensor; /* Protect this data structure */ struct mutex lock; @@ -595,7 +596,7 @@ static int dcmi_start_streaming(struct vb2_queue *vq, unsigned int count) } /* Enable stream on the sub device */ - ret = v4l2_subdev_call(dcmi->entity.subdev, video, s_stream, 1); + ret = v4l2_subdev_call(dcmi->sensor, video, s_stream, 1); if (ret && ret != -ENOIOCTLCMD) { dev_err(dcmi->dev, "%s: Failed to start streaming, subdev streamon error", __func__); @@ -685,7 +686,7 @@ static int dcmi_start_streaming(struct vb2_queue *vq, unsigned int count) return 0; err_subdev_streamoff: - v4l2_subdev_call(dcmi->entity.subdev, video, s_stream, 0); + v4l2_subdev_call(dcmi->sensor, video, s_stream, 0); err_pm_put: pm_runtime_put(dcmi->dev); @@ -713,7 +714,7 @@ static void dcmi_stop_streaming(struct vb2_queue *vq) int ret; /* Disable stream on the sub device */ - ret = v4l2_subdev_call(dcmi->entity.subdev, video, s_stream, 0); + ret = v4l2_subdev_call(dcmi->sensor, video, s_stream, 0); if (ret && ret != -ENOIOCTLCMD) dev_err(dcmi->dev, "%s: Failed to stop streaming, subdev streamoff error (%d)\n", __func__, ret); @@ -857,7 +858,7 @@ static int dcmi_try_fmt(struct stm32_dcmi *dcmi, struct v4l2_format *f, } v4l2_fill_mbus_format(&format.format, pix, sd_fmt->mbus_code); - ret = v4l2_subdev_call(dcmi->entity.subdev, pad, set_fmt, + ret = v4l2_subdev_call(dcmi->sensor, pad, set_fmt, &pad_cfg, &format); if (ret < 0) return ret; @@ -934,7 +935,7 @@ static int dcmi_set_fmt(struct stm32_dcmi *dcmi, struct v4l2_format *f) mf->width = sd_framesize.width; mf->height = sd_framesize.height; - ret = v4l2_subdev_call(dcmi->entity.subdev, pad, + ret = v4l2_subdev_call(dcmi->sensor, pad, set_fmt, NULL, &format); if (ret < 0) return ret; @@ -991,7 +992,7 @@ static int dcmi_get_sensor_format(struct stm32_dcmi *dcmi, }; int ret; - ret = v4l2_subdev_call(dcmi->entity.subdev, pad, get_fmt, NULL, &fmt); + ret = v4l2_subdev_call(dcmi->sensor, pad, get_fmt, NULL, &fmt); if (ret) return ret; @@ -1020,7 +1021,7 @@ static int dcmi_set_sensor_format(struct stm32_dcmi *dcmi, } v4l2_fill_mbus_format(&format.format, pix, sd_fmt->mbus_code); - ret = v4l2_subdev_call(dcmi->entity.subdev, pad, set_fmt, + ret = v4l2_subdev_call(dcmi->sensor, pad, set_fmt, &pad_cfg, &format); if (ret < 0) return ret; @@ -1043,7 +1044,7 @@ static int dcmi_get_sensor_bounds(struct stm32_dcmi *dcmi, /* * Get sensor bounds first */ - ret = v4l2_subdev_call(dcmi->entity.subdev, pad, get_selection, + ret = v4l2_subdev_call(dcmi->sensor, pad, get_selection, NULL, &bounds); if (!ret) *r = bounds.r; @@ -1224,7 +1225,7 @@ static int dcmi_enum_framesizes(struct file *file, void *fh, fse.code = sd_fmt->mbus_code; - ret = v4l2_subdev_call(dcmi->entity.subdev, pad, enum_frame_size, + ret = v4l2_subdev_call(dcmi->sensor, pad, enum_frame_size, NULL, &fse); if (ret) return ret; @@ -1241,7 +1242,7 @@ static int dcmi_g_parm(struct file *file, void *priv, { struct stm32_dcmi *dcmi = video_drvdata(file); - return v4l2_g_parm_cap(video_devdata(file), dcmi->entity.subdev, p); + return v4l2_g_parm_cap(video_devdata(file), dcmi->sensor, p); } static int dcmi_s_parm(struct file *file, void *priv, @@ -1249,7 +1250,7 @@ static int dcmi_s_parm(struct file *file, void *priv, { struct stm32_dcmi *dcmi = video_drvdata(file); - return v4l2_s_parm_cap(video_devdata(file), dcmi->entity.subdev, p); + return v4l2_s_parm_cap(video_devdata(file), dcmi->sensor, p); } static int dcmi_enum_frameintervals(struct file *file, void *fh, @@ -1271,7 +1272,7 @@ static int dcmi_enum_frameintervals(struct file *file, void *fh, fie.code = sd_fmt->mbus_code; - ret = v4l2_subdev_call(dcmi->entity.subdev, pad, + ret = v4l2_subdev_call(dcmi->sensor, pad, enum_frame_interval, NULL, &fie); if (ret) return ret; @@ -1291,7 +1292,7 @@ MODULE_DEVICE_TABLE(of, stm32_dcmi_of_match); static int dcmi_open(struct file *file) { struct stm32_dcmi *dcmi = video_drvdata(file); - struct v4l2_subdev *sd = dcmi->entity.subdev; + struct v4l2_subdev *sd = dcmi->sensor; int ret; if (mutex_lock_interruptible(&dcmi->lock)) @@ -1322,7 +1323,7 @@ static int dcmi_open(struct file *file) static int dcmi_release(struct file *file) { struct stm32_dcmi *dcmi = video_drvdata(file); - struct v4l2_subdev *sd = dcmi->entity.subdev; + struct v4l2_subdev *sd = dcmi->sensor; bool fh_singular; int ret; @@ -1433,7 +1434,7 @@ static int dcmi_formats_init(struct stm32_dcmi *dcmi) { const struct dcmi_format *sd_fmts[ARRAY_SIZE(dcmi_formats)]; unsigned int num_fmts = 0, i, j; - struct v4l2_subdev *subdev = dcmi->entity.subdev; + struct v4l2_subdev *subdev = dcmi->sensor; struct v4l2_subdev_mbus_code_enum mbus_code = { .which = V4L2_SUBDEV_FORMAT_ACTIVE, }; @@ -1479,7 +1480,7 @@ static int dcmi_formats_init(struct stm32_dcmi *dcmi) static int dcmi_framesizes_init(struct stm32_dcmi *dcmi) { unsigned int num_fsize = 0; - struct v4l2_subdev *subdev = dcmi->entity.subdev; + struct v4l2_subdev *subdev = dcmi->sensor; struct v4l2_subdev_frame_size_enum fse = { .which = V4L2_SUBDEV_FORMAT_ACTIVE, .code = dcmi->sd_format->mbus_code, @@ -1526,7 +1527,7 @@ static int dcmi_graph_notify_complete(struct v4l2_async_notifier *notifier) struct stm32_dcmi *dcmi = notifier_to_dcmi(notifier); int ret; - dcmi->vdev->ctrl_handler = dcmi->entity.subdev->ctrl_handler; + dcmi->vdev->ctrl_handler = dcmi->sensor->ctrl_handler; ret = dcmi_formats_init(dcmi); if (ret) { dev_err(dcmi->dev, "No supported mediabus format found\n"); @@ -1582,7 +1583,7 @@ static int dcmi_graph_notify_bound(struct v4l2_async_notifier *notifier, dev_dbg(dcmi->dev, "Subdev %s bound\n", subdev->name); - dcmi->entity.subdev = subdev; + dcmi->sensor = subdev; return 0; } -- 2.7.4
WARNING: multiple messages have this Message-ID (diff)
From: Hugues Fruchet <hugues.fruchet@st.com> To: Alexandre Torgue <alexandre.torgue@st.com>, Mauro Carvalho Chehab <mchehab@kernel.org>, Hans Verkuil <hverkuil@xs4all.nl>, Sakari Ailus <sakari.ailus@linux.intel.com> Cc: Mickael GUENE <mickael.guene@st.com>, linux-kernel@vger.kernel.org, Philippe CORNU <philippe.cornu@st.com>, Yannick Fertre <yannick.fertre@st.com>, Benjamin Gaignard <benjamin.gaignard@linaro.org>, Hugues Fruchet <hugues.fruchet@st.com>, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org, linux-media@vger.kernel.org Subject: [PATCH v2 1/3] media: stm32-dcmi: improve sensor subdev naming Date: Tue, 11 Jun 2019 10:48:30 +0200 [thread overview] Message-ID: <1560242912-17138-2-git-send-email-hugues.fruchet@st.com> (raw) In-Reply-To: <1560242912-17138-1-git-send-email-hugues.fruchet@st.com> Add a new "sensor" field to dcmi struct instead of reusing entity->subdev to address sensor subdev. Signed-off-by: Hugues Fruchet <hugues.fruchet@st.com> --- drivers/media/platform/stm32/stm32-dcmi.c | 37 ++++++++++++++++--------------- 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/drivers/media/platform/stm32/stm32-dcmi.c b/drivers/media/platform/stm32/stm32-dcmi.c index b9dad0a..7a4d559 100644 --- a/drivers/media/platform/stm32/stm32-dcmi.c +++ b/drivers/media/platform/stm32/stm32-dcmi.c @@ -151,6 +151,7 @@ struct stm32_dcmi { unsigned int num_of_sd_framesizes; struct dcmi_framesize sd_framesize; struct v4l2_rect sd_bounds; + struct v4l2_subdev *sensor; /* Protect this data structure */ struct mutex lock; @@ -595,7 +596,7 @@ static int dcmi_start_streaming(struct vb2_queue *vq, unsigned int count) } /* Enable stream on the sub device */ - ret = v4l2_subdev_call(dcmi->entity.subdev, video, s_stream, 1); + ret = v4l2_subdev_call(dcmi->sensor, video, s_stream, 1); if (ret && ret != -ENOIOCTLCMD) { dev_err(dcmi->dev, "%s: Failed to start streaming, subdev streamon error", __func__); @@ -685,7 +686,7 @@ static int dcmi_start_streaming(struct vb2_queue *vq, unsigned int count) return 0; err_subdev_streamoff: - v4l2_subdev_call(dcmi->entity.subdev, video, s_stream, 0); + v4l2_subdev_call(dcmi->sensor, video, s_stream, 0); err_pm_put: pm_runtime_put(dcmi->dev); @@ -713,7 +714,7 @@ static void dcmi_stop_streaming(struct vb2_queue *vq) int ret; /* Disable stream on the sub device */ - ret = v4l2_subdev_call(dcmi->entity.subdev, video, s_stream, 0); + ret = v4l2_subdev_call(dcmi->sensor, video, s_stream, 0); if (ret && ret != -ENOIOCTLCMD) dev_err(dcmi->dev, "%s: Failed to stop streaming, subdev streamoff error (%d)\n", __func__, ret); @@ -857,7 +858,7 @@ static int dcmi_try_fmt(struct stm32_dcmi *dcmi, struct v4l2_format *f, } v4l2_fill_mbus_format(&format.format, pix, sd_fmt->mbus_code); - ret = v4l2_subdev_call(dcmi->entity.subdev, pad, set_fmt, + ret = v4l2_subdev_call(dcmi->sensor, pad, set_fmt, &pad_cfg, &format); if (ret < 0) return ret; @@ -934,7 +935,7 @@ static int dcmi_set_fmt(struct stm32_dcmi *dcmi, struct v4l2_format *f) mf->width = sd_framesize.width; mf->height = sd_framesize.height; - ret = v4l2_subdev_call(dcmi->entity.subdev, pad, + ret = v4l2_subdev_call(dcmi->sensor, pad, set_fmt, NULL, &format); if (ret < 0) return ret; @@ -991,7 +992,7 @@ static int dcmi_get_sensor_format(struct stm32_dcmi *dcmi, }; int ret; - ret = v4l2_subdev_call(dcmi->entity.subdev, pad, get_fmt, NULL, &fmt); + ret = v4l2_subdev_call(dcmi->sensor, pad, get_fmt, NULL, &fmt); if (ret) return ret; @@ -1020,7 +1021,7 @@ static int dcmi_set_sensor_format(struct stm32_dcmi *dcmi, } v4l2_fill_mbus_format(&format.format, pix, sd_fmt->mbus_code); - ret = v4l2_subdev_call(dcmi->entity.subdev, pad, set_fmt, + ret = v4l2_subdev_call(dcmi->sensor, pad, set_fmt, &pad_cfg, &format); if (ret < 0) return ret; @@ -1043,7 +1044,7 @@ static int dcmi_get_sensor_bounds(struct stm32_dcmi *dcmi, /* * Get sensor bounds first */ - ret = v4l2_subdev_call(dcmi->entity.subdev, pad, get_selection, + ret = v4l2_subdev_call(dcmi->sensor, pad, get_selection, NULL, &bounds); if (!ret) *r = bounds.r; @@ -1224,7 +1225,7 @@ static int dcmi_enum_framesizes(struct file *file, void *fh, fse.code = sd_fmt->mbus_code; - ret = v4l2_subdev_call(dcmi->entity.subdev, pad, enum_frame_size, + ret = v4l2_subdev_call(dcmi->sensor, pad, enum_frame_size, NULL, &fse); if (ret) return ret; @@ -1241,7 +1242,7 @@ static int dcmi_g_parm(struct file *file, void *priv, { struct stm32_dcmi *dcmi = video_drvdata(file); - return v4l2_g_parm_cap(video_devdata(file), dcmi->entity.subdev, p); + return v4l2_g_parm_cap(video_devdata(file), dcmi->sensor, p); } static int dcmi_s_parm(struct file *file, void *priv, @@ -1249,7 +1250,7 @@ static int dcmi_s_parm(struct file *file, void *priv, { struct stm32_dcmi *dcmi = video_drvdata(file); - return v4l2_s_parm_cap(video_devdata(file), dcmi->entity.subdev, p); + return v4l2_s_parm_cap(video_devdata(file), dcmi->sensor, p); } static int dcmi_enum_frameintervals(struct file *file, void *fh, @@ -1271,7 +1272,7 @@ static int dcmi_enum_frameintervals(struct file *file, void *fh, fie.code = sd_fmt->mbus_code; - ret = v4l2_subdev_call(dcmi->entity.subdev, pad, + ret = v4l2_subdev_call(dcmi->sensor, pad, enum_frame_interval, NULL, &fie); if (ret) return ret; @@ -1291,7 +1292,7 @@ MODULE_DEVICE_TABLE(of, stm32_dcmi_of_match); static int dcmi_open(struct file *file) { struct stm32_dcmi *dcmi = video_drvdata(file); - struct v4l2_subdev *sd = dcmi->entity.subdev; + struct v4l2_subdev *sd = dcmi->sensor; int ret; if (mutex_lock_interruptible(&dcmi->lock)) @@ -1322,7 +1323,7 @@ static int dcmi_open(struct file *file) static int dcmi_release(struct file *file) { struct stm32_dcmi *dcmi = video_drvdata(file); - struct v4l2_subdev *sd = dcmi->entity.subdev; + struct v4l2_subdev *sd = dcmi->sensor; bool fh_singular; int ret; @@ -1433,7 +1434,7 @@ static int dcmi_formats_init(struct stm32_dcmi *dcmi) { const struct dcmi_format *sd_fmts[ARRAY_SIZE(dcmi_formats)]; unsigned int num_fmts = 0, i, j; - struct v4l2_subdev *subdev = dcmi->entity.subdev; + struct v4l2_subdev *subdev = dcmi->sensor; struct v4l2_subdev_mbus_code_enum mbus_code = { .which = V4L2_SUBDEV_FORMAT_ACTIVE, }; @@ -1479,7 +1480,7 @@ static int dcmi_formats_init(struct stm32_dcmi *dcmi) static int dcmi_framesizes_init(struct stm32_dcmi *dcmi) { unsigned int num_fsize = 0; - struct v4l2_subdev *subdev = dcmi->entity.subdev; + struct v4l2_subdev *subdev = dcmi->sensor; struct v4l2_subdev_frame_size_enum fse = { .which = V4L2_SUBDEV_FORMAT_ACTIVE, .code = dcmi->sd_format->mbus_code, @@ -1526,7 +1527,7 @@ static int dcmi_graph_notify_complete(struct v4l2_async_notifier *notifier) struct stm32_dcmi *dcmi = notifier_to_dcmi(notifier); int ret; - dcmi->vdev->ctrl_handler = dcmi->entity.subdev->ctrl_handler; + dcmi->vdev->ctrl_handler = dcmi->sensor->ctrl_handler; ret = dcmi_formats_init(dcmi); if (ret) { dev_err(dcmi->dev, "No supported mediabus format found\n"); @@ -1582,7 +1583,7 @@ static int dcmi_graph_notify_bound(struct v4l2_async_notifier *notifier, dev_dbg(dcmi->dev, "Subdev %s bound\n", subdev->name); - dcmi->entity.subdev = subdev; + dcmi->sensor = subdev; return 0; } -- 2.7.4 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2019-06-11 8:49 UTC|newest] Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-06-11 8:48 [PATCH v2 0/3] DCMI bridge support Hugues Fruchet 2019-06-11 8:48 ` Hugues Fruchet 2019-06-11 8:48 ` Hugues Fruchet [this message] 2019-06-11 8:48 ` [PATCH v2 1/3] media: stm32-dcmi: improve sensor subdev naming Hugues Fruchet 2019-06-20 15:26 ` Sakari Ailus 2019-06-20 15:26 ` Sakari Ailus 2019-07-02 15:21 ` Hugues FRUCHET 2019-07-02 15:21 ` Hugues FRUCHET 2019-06-11 8:48 ` [PATCH v2 2/3] media: stm32-dcmi: add media controller support Hugues Fruchet 2019-06-11 8:48 ` Hugues Fruchet 2019-06-20 12:01 ` Hans Verkuil 2019-06-20 12:01 ` Hans Verkuil 2019-07-02 15:18 ` Hugues FRUCHET 2019-07-02 15:18 ` Hugues FRUCHET 2019-06-20 16:13 ` Sakari Ailus 2019-06-20 16:13 ` Sakari Ailus 2019-07-02 15:29 ` Hugues FRUCHET 2019-07-02 15:29 ` Hugues FRUCHET 2019-06-11 8:48 ` [PATCH v2 3/3] media: stm32-dcmi: add support of several sub-devices Hugues Fruchet 2019-06-11 8:48 ` Hugues Fruchet 2019-06-20 15:54 ` Sakari Ailus 2019-06-20 15:54 ` Sakari Ailus 2019-07-02 15:26 ` Hugues FRUCHET 2019-07-02 15:26 ` Hugues FRUCHET 2019-06-20 16:17 ` [PATCH v2 0/3] DCMI bridge support Sakari Ailus 2019-06-20 16:17 ` Sakari Ailus 2019-06-24 10:10 ` Hugues FRUCHET 2019-06-24 10:10 ` Hugues FRUCHET 2019-06-26 17:25 ` Laurent Pinchart 2019-06-26 17:25 ` Laurent Pinchart 2019-06-27 12:38 ` Hugues FRUCHET 2019-06-27 12:38 ` Hugues FRUCHET 2019-06-27 13:38 ` Laurent Pinchart 2019-06-27 13:38 ` Laurent Pinchart 2019-07-05 7:55 ` Sakari Ailus 2019-07-05 7:55 ` Sakari Ailus 2019-07-05 8:04 ` Laurent Pinchart 2019-07-05 8:04 ` Laurent Pinchart 2019-07-05 9:16 ` Sakari Ailus 2019-07-05 9:16 ` Sakari Ailus
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1560242912-17138-2-git-send-email-hugues.fruchet@st.com \ --to=hugues.fruchet@st.com \ --cc=alexandre.torgue@st.com \ --cc=benjamin.gaignard@linaro.org \ --cc=hverkuil@xs4all.nl \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-media@vger.kernel.org \ --cc=linux-stm32@st-md-mailman.stormreply.com \ --cc=mchehab@kernel.org \ --cc=mickael.guene@st.com \ --cc=philippe.cornu@st.com \ --cc=sakari.ailus@linux.intel.com \ --cc=yannick.fertre@st.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.