[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <7e6a87b6-e442-20cb-0d4e-68eb40c56042@st.com>
Date: Tue, 18 Jun 2019 09:57:26 +0000
From: Philippe CORNU <philippe.cornu@...com>
To: Yannick FERTRE <yannick.fertre@...com>,
Benjamin GAIGNARD <benjamin.gaignard@...com>,
Vincent ABRIOU <vincent.abriou@...com>,
"David Airlie" <airlied@...ux.ie>, Daniel Vetter <daniel@...ll.ch>,
Maxime Coquelin <mcoquelin.stm32@...il.com>,
Alexandre TORGUE <alexandre.torgue@...com>,
"dri-devel@...ts.freedesktop.org" <dri-devel@...ts.freedesktop.org>,
"linux-stm32@...md-mailman.stormreply.com"
<linux-stm32@...md-mailman.stormreply.com>,
"linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 1/3] drm/stm: drv: fix suspend/resume
Hi Yannick,
Thank you for your patch.
Acked-by: Philippe Cornu <philippe.cornu@...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@...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)
>
Powered by blists - more mailing lists