[PATCH 1/3] drm/stm: drv: fix suspend/resume

Philippe CORNU philippe.cornu at st.com
Tue Jun 18 09:57:26 UTC 2019


Hi Yannick,

Thank you for your patch.

Acked-by: Philippe Cornu <philippe.cornu at st.com>

Philippe :-)

On 6/17/19 9:18 AM, Yannick Fertré wrote:
> Without this fix, the system can not go in "suspend" mode
> due to an error in drv_suspend function.
> 
> Fixes: 35ab6cf ("drm/stm: support runtime power management")
> 
> Signed-off-by: Yannick Fertré <yannick.fertre at st.com>
> ---
>   drivers/gpu/drm/stm/drv.c | 15 ++++++++-------
>   1 file changed, 8 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/gpu/drm/stm/drv.c b/drivers/gpu/drm/stm/drv.c
> index 5659572..9dee4e4 100644
> --- a/drivers/gpu/drm/stm/drv.c
> +++ b/drivers/gpu/drm/stm/drv.c
> @@ -136,8 +136,7 @@ static __maybe_unused int drv_suspend(struct device *dev)
>   	struct ltdc_device *ldev = ddev->dev_private;
>   	struct drm_atomic_state *state;
>   
> -	if (WARN_ON(!ldev->suspend_state))
> -		return -ENOENT;
> +	WARN_ON(ldev->suspend_state);
>   
>   	state = drm_atomic_helper_suspend(ddev);
>   	if (IS_ERR(state))
> @@ -155,15 +154,17 @@ static __maybe_unused int drv_resume(struct device *dev)
>   	struct ltdc_device *ldev = ddev->dev_private;
>   	int ret;
>   
> +	if (WARN_ON(!ldev->suspend_state))
> +		return -ENOENT;
> +
>   	pm_runtime_force_resume(dev);
>   	ret = drm_atomic_helper_resume(ddev, ldev->suspend_state);
> -	if (ret) {
> +	if (ret)
>   		pm_runtime_force_suspend(dev);
> -		ldev->suspend_state = NULL;
> -		return ret;
> -	}
>   
> -	return 0;
> +	ldev->suspend_state = NULL;
> +
> +	return ret;
>   }
>   
>   static __maybe_unused int drv_runtime_suspend(struct device *dev)
> 


More information about the dri-devel mailing list