Re: [PATCH v3 1/2] media: imagination: e5010: Move e5010_init_device to Runtime Resume Hook

Kendall Willis <[email protected]>
Newsgroups org.kernel.vger.linux-media,org.kernel.vger.linux-kernel,org.kernel.vger.stable
Message-ID <20260810164812.jvmixkoazqzqelhl@uda0506412>
On 10:54-20260810, Brandon Brnich wrote:
> The PM framework skips the runtime resume hook if the device was never on
> in the first place. This results in a crash in the system resume hook when
> a call to e5010_init_device attempts a write to a powered down device.
> 
> Move e5010_init_device to the resume hook to ensure register write only
> occurs when device is properly powered on.
> 
> Fixes: a1e294045885 ("media: imagination: Add E5010 JPEG Encoder driver")
> Cc: [email protected]
> Signed-off-by: Brandon Brnich <[email protected]>
> Reviewed-by: Jai Luthra <[email protected]>

Reviewed-by: Kendall Willis <[email protected]>

> ---
>  drivers/media/platform/imagination/e5010-jpeg-enc.c | 13 +++++++------
>  1 file changed, 7 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/media/platform/imagination/e5010-jpeg-enc.c b/drivers/media/platform/imagination/e5010-jpeg-enc.c
> index 42ad9ee3993b4..2b98d230429d1 100644
> --- a/drivers/media/platform/imagination/e5010-jpeg-enc.c
> +++ b/drivers/media/platform/imagination/e5010-jpeg-enc.c
> @@ -1501,6 +1501,13 @@ static int e5010_runtime_resume(struct device *dev)
>  		return ret;
>  	}
>  
> +	ret = e5010_init_device(e5010);
> +	if (ret) {
> +		dev_err(dev, "Failed to re-enable e5010 device\n");
> +		clk_disable_unprepare(e5010->clk);
> +		return ret;
> +	}
> +
>  	return 0;
>  }
>  
> @@ -1533,12 +1540,6 @@ static int e5010_resume(struct device *dev)
>  	if (ret < 0)
>  		return ret;
>  
> -	ret = e5010_init_device(e5010);
> -	if (ret) {
> -		dev_err(dev, "Failed to re-enable e5010 device\n");
> -		return ret;
> -	}
> -
>  	v4l2_m2m_resume(e5010->m2m_dev);
>  
>  	return ret;
> -- 
> 2.43.0
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.