Re: [PATCH v8 34/38] media: ov2740: Track streaming state

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Sakari,

Thank you for the patch.

On Wed, Mar 13, 2024 at 09:25:12AM +0200, Sakari Ailus wrote:
> With enable_streams and disable_streams, the driver for a device where
> streams are not independently started and stopped needs to maintain state
> information on streams that have been requested to be started. Do that
> now.
> 
> In the future, a helper function in the framework is a desirable way to do
> this instead.
> 
> Signed-off-by: Sakari Ailus <sakari.ailus@xxxxxxxxxxxxxxx>

Reviewed-by: Laurent Pinchart <laurent.pinchart+renesas@xxxxxxxxxxxxxxxx>

> ---
>  drivers/media/i2c/ov2740.c | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
> 
> diff --git a/drivers/media/i2c/ov2740.c b/drivers/media/i2c/ov2740.c
> index 44c6724a102c..df57f0096e98 100644
> --- a/drivers/media/i2c/ov2740.c
> +++ b/drivers/media/i2c/ov2740.c
> @@ -539,6 +539,9 @@ struct ov2740 {
>  
>  	/* True if the device has been identified */
>  	bool identified;
> +
> +	/* Track streaming state */
> +	u8 streaming;
>  };
>  
>  static inline struct ov2740 *to_ov2740(struct v4l2_subdev *subdev)
> @@ -929,6 +932,11 @@ static int ov2740_enable_streams(struct v4l2_subdev *sd,
>  	int link_freq_index;
>  	int ret;
>  
> +	if (ov2740->streaming) {
> +		ov2740->streaming |= streams_mask;
> +		return 0;
> +	}
> +
>  	ret = pm_runtime_resume_and_get(&client->dev);
>  	if (ret < 0)
>  		return ret;
> @@ -975,6 +983,8 @@ static int ov2740_enable_streams(struct v4l2_subdev *sd,
>  		goto out_pm_put;
>  	}
>  
> +	ov2740->streaming |= streams_mask;
> +
>  	return 0;
>  
>  out_pm_put:
> @@ -991,6 +1001,10 @@ static int ov2740_disable_streams(struct v4l2_subdev *sd,
>  	struct ov2740 *ov2740 = to_ov2740(sd);
>  	int ret;
>  
> +	ov2740->streaming &= ~streams_mask;
> +	if (ov2740->streaming)
> +		return 0;
> +
>  	ret = ov2740_write_reg(ov2740, OV2740_REG_MODE_SELECT, 1,
>  			       OV2740_MODE_STANDBY);
>  

-- 
Regards,

Laurent Pinchart




[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux