[PATCH] drm: Convert drm_atomic_helper_suspend/resume()

Laurent Pinchart laurent.pinchart at ideasonboard.com
Mon Aug 13 19:58:01 UTC 2018


Hi Souptick,

On Monday, 13 August 2018 21:51:31 EEST Souptick Joarder wrote:
> On Mon, Aug 13, 2018 at 10:46 PM, Liviu Dudau <liviu.dudau at arm.com> wrote:
> > On Thu, Aug 02, 2018 at 03:25:24PM +0530, Souptick Joarder wrote:
> >> On Wed, Aug 1, 2018 at 12:11 AM, Souptick Joarder wrote:
> >>> On Tue, Jul 31, 2018 at 4:04 PM, Liviu Dudau wrote:
> >>>> On Tue, Jul 31, 2018 at 12:31:37AM +0530, Souptick Joarder wrote:
> >>>>> convert drm_atomic_helper_suspend/resume() to use
> >>>>> drm_mode_config_helper_suspend/resume().
> >>>>> 
> >>>>> With this conversion, drm_fbdev_cma_set_suspend_unlocked()
> >>>>> will left with no consumer. So this function can be removed.
> >>>>> 
> >>>>> Signed-off-by: Souptick Joarder <jrdr.linux at gmail.com>
> >>>>> Signed-off-by: Ajit Negi <ajitn.linux at gmail.com>
> >>>>> ---
> >>>>> 
> >>>>>  drivers/gpu/drm/arm/hdlcd_drv.c       | 26 ++------------------------
> >>>>>  drivers/gpu/drm/drm_fb_cma_helper.c   | 18 ------------------
> >>>>>  drivers/gpu/drm/rcar-du/rcar_du_drv.c | 21 ++-------------------
> >>>>>  include/drm/drm_fb_cma_helper.h       |  2 --
> >>>>>  4 files changed, 4 insertions(+), 63 deletions(-)
> >>>>> 
> >>>>> diff --git a/drivers/gpu/drm/arm/hdlcd_drv.c
> >>>>> b/drivers/gpu/drm/arm/hdlcd_drv.c index feaa8bc..4e617e0 100644
> >>>>> --- a/drivers/gpu/drm/arm/hdlcd_drv.c
> >>>>> +++ b/drivers/gpu/drm/arm/hdlcd_drv.c
> >>>>> @@ -427,37 +427,15 @@ static int hdlcd_remove(struct platform_device
> >>>>> *pdev)
> >>>>>  static int __maybe_unused hdlcd_pm_suspend(struct device *dev)
> >>>>>  {
> >>>>>       struct drm_device *drm = dev_get_drvdata(dev);
> >>>>> -     struct hdlcd_drm_private *hdlcd = drm ? drm->dev_private :
> >>>>> NULL;
> >>>>> 
> >>>>> -     if (!hdlcd)
> >>>>> -             return 0;
> >>>>> -
> >>>>> -     drm_kms_helper_poll_disable(drm);
> >>>>> -     drm_fbdev_cma_set_suspend_unlocked(hdlcd->fbdev, 1);
> >>>>> -
> >>>>> -     hdlcd->state = drm_atomic_helper_suspend(drm);
> >>>>> -     if (IS_ERR(hdlcd->state)) {
> >>>>> -             drm_fbdev_cma_set_suspend_unlocked(hdlcd->fbdev, 0);
> >>>>> -             drm_kms_helper_poll_enable(drm);
> >>>>> -             return PTR_ERR(hdlcd->state);
> >>>>> -     }
> >>>>> -
> >>>>> -     return 0;
> >>>>> +     return drm_mode_config_helper_suspend(drm);
> >>>>>  }
> >>>>>  
> >>>>>  static int __maybe_unused hdlcd_pm_resume(struct device *dev)
> >>>>>  {
> >>>>>       struct drm_device *drm = dev_get_drvdata(dev);
> >>>>> -     struct hdlcd_drm_private *hdlcd = drm ? drm->dev_private :
> >>>>> NULL;
> >>>>> -
> >>>>> -     if (!hdlcd)
> >>>>> -             return 0;
> >>>>> 
> >>>>> -     drm_atomic_helper_resume(drm, hdlcd->state);
> >>>>> -     drm_fbdev_cma_set_suspend_unlocked(hdlcd->fbdev, 0);
> >>>>> -     drm_kms_helper_poll_enable(drm);
> >>>>> -
> >>>>> -     return 0;
> >>>>> +     return drm_mode_config_helper_resume(drm);
> >>>>>  }
> >>>> 
> >>>> This patch is similar to the one Noralf Trønnes submitted, and his is
> >>>> also cleaning up the state variable in hdlcd_drm_private. The patch
> >>>> has been queued as commit f69d9686e5d9 in git://linux-arm.org/
> >>>> linux-ld.git for-upstream/hdlcd and I will send a pull request today
> >>>> for it.
> >>> 
> >>> unable to clone this repository.
> >>> can you please post the patchwork link ?
> > 
> > Sorry, I was on holiday until today.
> > 
> >> Liviu, is commit f69d9686e5d9 in
> >> git://linux-arm.org/linux-ld.gitfor-upstream/hdlcd
> >> contains only changes in drivers/gpu/drm/arm/hdlcd_drv.c driver ??
> > 
> > That's right, that tree only deals with HDLCD changes. The rest of the
> > patch is up to you to upstream into drm-misc.
> 
> As Liviu mentioned, drivers/gpu/drm/arm/hdlcd_drv.c is only changed,
> so we left with drivers/gpu/drm/rcar-du/rcar_du_drv.c and remove
> drm_fbdev_cma_set_suspend_unlocked().
> 
> Would you like to see both rcar_du driver change and removing
> drm_fbdev_cma_set_suspend_unlocked() in a single commit ??
> or 2 different commit ?

I have a slight preference for two patches, but I'm fine with either. If you 
decide to go for two patches, please make sure they get upstreamed at the same 
time.

Thanks for handling this.

[snip]

-- 
Regards,

Laurent Pinchart





More information about the dri-devel mailing list