* [PATCH] media: i2c: cvs: Pass link frequency explicitly to csi_set_link_cfg()
@ 2026-07-20 7:36 Laurent Pinchart
2026-07-29 12:35 ` Antti Laakso
2026-08-05 13:34 ` Mehdi Djait
0 siblings, 2 replies; 3+ messages in thread
From: Laurent Pinchart @ 2026-07-20 7:36 UTC (permalink / raw)
To: linux-media; +Cc: Miguel Vadillo, Sakari Ailus
The link frequency, retrieved in cvs_csi_enable_streams(), is stored in
the icvs structure to then be used right after in csi_set_link_cfg(),
called only from the same function. Pass it as a function parameter
instead to improve readability.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
This is a drive-by improvement, compile-tested only.
---
drivers/media/i2c/cvs/icvs.h | 2 --
drivers/media/i2c/cvs/v4l2.c | 17 ++++++++---------
2 files changed, 8 insertions(+), 11 deletions(-)
diff --git a/drivers/media/i2c/cvs/icvs.h b/drivers/media/i2c/cvs/icvs.h
index cfa8ef5d975c..17beb0920dd2 100644
--- a/drivers/media/i2c/cvs/icvs.h
+++ b/drivers/media/i2c/cvs/icvs.h
@@ -432,7 +432,6 @@ enum icvs_state {
* @freq_ctrl: (future) frequency control pointer
* @pads: Local media pads (sink/source)
* @nr_of_lanes: Active CSI-2 lane count
- * @link_freq: Current link frequency (Hz)
* @ipu_link: PM runtime device link (IPU consumer, CVS supplier)
* @res: Resource capability (light/full)
* @caps: Reported device protocol capabilities
@@ -458,7 +457,6 @@ struct icvs {
struct v4l2_ctrl *freq_ctrl;
struct media_pad pads[ICVS_CSI_NUM_PADS];
u32 nr_of_lanes;
- u64 link_freq;
struct device_link *ipu_link;
enum icvs_resources res;
struct icvs_dev_capabilities caps;
diff --git a/drivers/media/i2c/cvs/v4l2.c b/drivers/media/i2c/cvs/v4l2.c
index 3a1ec0059ef7..9fadca7a3bee 100644
--- a/drivers/media/i2c/cvs/v4l2.c
+++ b/drivers/media/i2c/cvs/v4l2.c
@@ -46,6 +46,7 @@ static const struct v4l2_mbus_framefmt cvs_csi_format_mbus_default = {
/**
* csi_set_link_cfg - Program default CSI-2 link parameters
* @ctx: CVS device context
+ * @link_freq: Link frequency (Hz)
*
* Populates a HOST_SET_MIPI_CONFIG command using current lane count and
* link frequency, then submits it to the device.
@@ -53,12 +54,12 @@ static const struct v4l2_mbus_framefmt cvs_csi_format_mbus_default = {
*
* Return: 0 on success or negative errno.
*/
-static int csi_set_link_cfg(struct icvs *ctx)
+static int csi_set_link_cfg(struct icvs *ctx, u64 link_freq)
{
struct icvs_cmd cmd = {
.cmd_id = cpu_to_be16(ICVS_HOST_SET_MIPI_CONFIG),
.param.conf.nr_of_lanes = ctx->nr_of_lanes,
- .param.conf.link_freq = ctx->link_freq,
+ .param.conf.link_freq = link_freq,
};
size_t cmd_size = sizeof(cmd.cmd_id) + sizeof(cmd.param.conf);
@@ -91,7 +92,7 @@ static int cvs_csi_enable_streams(struct v4l2_subdev *sd,
struct v4l2_subdev *remote_sd =
media_entity_to_v4l2_subdev(ctx->remote->entity);
struct device *dev = cvs_dev(ctx);
- s64 freq;
+ s64 link_freq;
int ret;
/* cvs_set_link_owner(ICVS_CSI_LINK_HOST) */
@@ -99,15 +100,14 @@ static int cvs_csi_enable_streams(struct v4l2_subdev *sd,
if (ret < 0)
return ret;
- freq = v4l2_get_link_freq(ctx->remote, 0, 0);
- if (freq < 0) {
- ret = freq;
+ link_freq = v4l2_get_link_freq(ctx->remote, 0, 0);
+ if (link_freq < 0) {
+ ret = link_freq;
goto err_rpm_put;
}
- ctx->link_freq = freq;
if (ctx->i2c_client) {
- ret = csi_set_link_cfg(ctx);
+ ret = csi_set_link_cfg(ctx, link_freq);
if (ret < 0)
goto err_rpm_put_sync;
}
@@ -345,7 +345,6 @@ static int cvs_csi_get_mbus_config(struct v4l2_subdev *sd, unsigned int pad,
if (freq < 0)
return -EINVAL;
- ctx->link_freq = freq;
cfg->link_freq = freq;
return 0;
base-commit: a52e6f7923c17a672135b485ffd96fbd72f46267
--
Regards,
Laurent Pinchart
^ permalink raw reply related [flat|nested] 3+ messages in thread* Re: [PATCH] media: i2c: cvs: Pass link frequency explicitly to csi_set_link_cfg()
2026-07-20 7:36 [PATCH] media: i2c: cvs: Pass link frequency explicitly to csi_set_link_cfg() Laurent Pinchart
@ 2026-07-29 12:35 ` Antti Laakso
2026-08-05 13:34 ` Mehdi Djait
1 sibling, 0 replies; 3+ messages in thread
From: Antti Laakso @ 2026-07-29 12:35 UTC (permalink / raw)
To: Laurent Pinchart; +Cc: linux-media, Miguel Vadillo, Sakari Ailus
Hi Laurent,
On Mon, Jul 20, 2026 at 10:36:42AM +0300, Laurent Pinchart wrote:
> The link frequency, retrieved in cvs_csi_enable_streams(), is stored in
> the icvs structure to then be used right after in csi_set_link_cfg(),
> called only from the same function. Pass it as a function parameter
> instead to improve readability.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> ---
> This is a drive-by improvement, compile-tested only.
> ---
> drivers/media/i2c/cvs/icvs.h | 2 --
> drivers/media/i2c/cvs/v4l2.c | 17 ++++++++---------
> 2 files changed, 8 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/media/i2c/cvs/icvs.h b/drivers/media/i2c/cvs/icvs.h
> index cfa8ef5d975c..17beb0920dd2 100644
> --- a/drivers/media/i2c/cvs/icvs.h
> +++ b/drivers/media/i2c/cvs/icvs.h
> @@ -432,7 +432,6 @@ enum icvs_state {
> * @freq_ctrl: (future) frequency control pointer
> * @pads: Local media pads (sink/source)
> * @nr_of_lanes: Active CSI-2 lane count
> - * @link_freq: Current link frequency (Hz)
> * @ipu_link: PM runtime device link (IPU consumer, CVS supplier)
> * @res: Resource capability (light/full)
> * @caps: Reported device protocol capabilities
> @@ -458,7 +457,6 @@ struct icvs {
> struct v4l2_ctrl *freq_ctrl;
> struct media_pad pads[ICVS_CSI_NUM_PADS];
> u32 nr_of_lanes;
> - u64 link_freq;
> struct device_link *ipu_link;
> enum icvs_resources res;
> struct icvs_dev_capabilities caps;
> diff --git a/drivers/media/i2c/cvs/v4l2.c b/drivers/media/i2c/cvs/v4l2.c
> index 3a1ec0059ef7..9fadca7a3bee 100644
> --- a/drivers/media/i2c/cvs/v4l2.c
> +++ b/drivers/media/i2c/cvs/v4l2.c
> @@ -46,6 +46,7 @@ static const struct v4l2_mbus_framefmt cvs_csi_format_mbus_default = {
> /**
> * csi_set_link_cfg - Program default CSI-2 link parameters
> * @ctx: CVS device context
> + * @link_freq: Link frequency (Hz)
> *
> * Populates a HOST_SET_MIPI_CONFIG command using current lane count and
> * link frequency, then submits it to the device.
> @@ -53,12 +54,12 @@ static const struct v4l2_mbus_framefmt cvs_csi_format_mbus_default = {
> *
> * Return: 0 on success or negative errno.
> */
> -static int csi_set_link_cfg(struct icvs *ctx)
> +static int csi_set_link_cfg(struct icvs *ctx, u64 link_freq)
> {
> struct icvs_cmd cmd = {
> .cmd_id = cpu_to_be16(ICVS_HOST_SET_MIPI_CONFIG),
> .param.conf.nr_of_lanes = ctx->nr_of_lanes,
> - .param.conf.link_freq = ctx->link_freq,
> + .param.conf.link_freq = link_freq,
> };
> size_t cmd_size = sizeof(cmd.cmd_id) + sizeof(cmd.param.conf);
>
> @@ -91,7 +92,7 @@ static int cvs_csi_enable_streams(struct v4l2_subdev *sd,
> struct v4l2_subdev *remote_sd =
> media_entity_to_v4l2_subdev(ctx->remote->entity);
> struct device *dev = cvs_dev(ctx);
> - s64 freq;
> + s64 link_freq;
> int ret;
>
> /* cvs_set_link_owner(ICVS_CSI_LINK_HOST) */
> @@ -99,15 +100,14 @@ static int cvs_csi_enable_streams(struct v4l2_subdev *sd,
> if (ret < 0)
> return ret;
>
> - freq = v4l2_get_link_freq(ctx->remote, 0, 0);
> - if (freq < 0) {
> - ret = freq;
> + link_freq = v4l2_get_link_freq(ctx->remote, 0, 0);
> + if (link_freq < 0) {
> + ret = link_freq;
> goto err_rpm_put;
> }
> - ctx->link_freq = freq;
>
> if (ctx->i2c_client) {
> - ret = csi_set_link_cfg(ctx);
> + ret = csi_set_link_cfg(ctx, link_freq);
> if (ret < 0)
> goto err_rpm_put_sync;
> }
> @@ -345,7 +345,6 @@ static int cvs_csi_get_mbus_config(struct v4l2_subdev *sd, unsigned int pad,
> if (freq < 0)
> return -EINVAL;
>
> - ctx->link_freq = freq;
> cfg->link_freq = freq;
>
> return 0;
>
> base-commit: a52e6f7923c17a672135b485ffd96fbd72f46267
> --
> Regards,
>
> Laurent Pinchart
>
>
Tested-by: Antti Laakso <antti.laakso@linux.intel.com>
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] media: i2c: cvs: Pass link frequency explicitly to csi_set_link_cfg()
2026-07-20 7:36 [PATCH] media: i2c: cvs: Pass link frequency explicitly to csi_set_link_cfg() Laurent Pinchart
2026-07-29 12:35 ` Antti Laakso
@ 2026-08-05 13:34 ` Mehdi Djait
1 sibling, 0 replies; 3+ messages in thread
From: Mehdi Djait @ 2026-08-05 13:34 UTC (permalink / raw)
To: Laurent Pinchart; +Cc: linux-media, Miguel Vadillo, Sakari Ailus
Hello Laurent,
Thank you for the patch!
On Mon, Jul 20, 2026 at 10:36:42AM +0300, Laurent Pinchart wrote:
> The link frequency, retrieved in cvs_csi_enable_streams(), is stored in
> the icvs structure to then be used right after in csi_set_link_cfg(),
> called only from the same function. Pass it as a function parameter
> instead to improve readability.
Tested-by: Mehdi Djait <mehdi.djait@linux.intel.com> # Dell XPS 13 9350
Reviewed-by: Mehdi Djait <mehdi.djait@linux.intel.com>
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
--
Kind Regards
Mehdi Djait
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2026-08-05 13:35 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-20 7:36 [PATCH] media: i2c: cvs: Pass link frequency explicitly to csi_set_link_cfg() Laurent Pinchart
2026-07-29 12:35 ` Antti Laakso
2026-08-05 13:34 ` Mehdi Djait
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox