All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] drm: Convert drm_atomic_helper_suspend/resume()
@ 2018-07-30 19:01 Souptick Joarder
  2018-07-30 22:14   ` Laurent Pinchart
  2018-07-31 10:34   ` Liviu Dudau
  0 siblings, 2 replies; 12+ messages in thread
From: Souptick Joarder @ 2018-07-30 19:01 UTC (permalink / raw)
  To: liviu.dudau, brian.starkey, malidp, airlied, gustavo,
	maarten.lankhorst, seanpaul, laurent.pinchart, ajitn.linux
  Cc: dri-devel, linux-kernel, linux-renesas-soc

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@gmail.com>
Signed-off-by: Ajit Negi <ajitn.linux@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);
 }
 
 static SIMPLE_DEV_PM_OPS(hdlcd_pm_ops, hdlcd_pm_suspend, hdlcd_pm_resume);
diff --git a/drivers/gpu/drm/drm_fb_cma_helper.c b/drivers/gpu/drm/drm_fb_cma_helper.c
index 186d00a..f604a84 100644
--- a/drivers/gpu/drm/drm_fb_cma_helper.c
+++ b/drivers/gpu/drm/drm_fb_cma_helper.c
@@ -529,21 +529,3 @@ void drm_fbdev_cma_set_suspend(struct drm_fbdev_cma *fbdev_cma, bool state)
 		drm_fb_helper_set_suspend(&fbdev_cma->fb_helper, state);
 }
 EXPORT_SYMBOL(drm_fbdev_cma_set_suspend);
-
-/**
- * drm_fbdev_cma_set_suspend_unlocked - wrapper around
- *                                      drm_fb_helper_set_suspend_unlocked
- * @fbdev_cma: The drm_fbdev_cma struct, may be NULL
- * @state: desired state, zero to resume, non-zero to suspend
- *
- * Calls drm_fb_helper_set_suspend, which is a wrapper around
- * fb_set_suspend implemented by fbdev core.
- */
-void drm_fbdev_cma_set_suspend_unlocked(struct drm_fbdev_cma *fbdev_cma,
-					bool state)
-{
-	if (fbdev_cma)
-		drm_fb_helper_set_suspend_unlocked(&fbdev_cma->fb_helper,
-						   state);
-}
-EXPORT_SYMBOL(drm_fbdev_cma_set_suspend_unlocked);
diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
index 02aee6c..288220f 100644
--- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c
+++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
@@ -357,32 +357,15 @@ static void rcar_du_lastclose(struct drm_device *dev)
 static int rcar_du_pm_suspend(struct device *dev)
 {
 	struct rcar_du_device *rcdu = dev_get_drvdata(dev);
-	struct drm_atomic_state *state;
 
-	drm_kms_helper_poll_disable(rcdu->ddev);
-	drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, true);
-
-	state = drm_atomic_helper_suspend(rcdu->ddev);
-	if (IS_ERR(state)) {
-		drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, false);
-		drm_kms_helper_poll_enable(rcdu->ddev);
-		return PTR_ERR(state);
-	}
-
-	rcdu->suspend_state = state;
-
-	return 0;
+	return drm_mode_config_helper_suspend(rcdu->ddev);
 }
 
 static int rcar_du_pm_resume(struct device *dev)
 {
 	struct rcar_du_device *rcdu = dev_get_drvdata(dev);
 
-	drm_atomic_helper_resume(rcdu->ddev, rcdu->suspend_state);
-	drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, false);
-	drm_kms_helper_poll_enable(rcdu->ddev);
-
-	return 0;
+	return drm_mode_config_helper_resume(rcdu->ddev);
 }
 #endif
 
diff --git a/include/drm/drm_fb_cma_helper.h b/include/drm/drm_fb_cma_helper.h
index d532f88a..15c4569 100644
--- a/include/drm/drm_fb_cma_helper.h
+++ b/include/drm/drm_fb_cma_helper.h
@@ -33,8 +33,6 @@ struct drm_fbdev_cma *drm_fbdev_cma_init(struct drm_device *dev,
 void drm_fbdev_cma_restore_mode(struct drm_fbdev_cma *fbdev_cma);
 void drm_fbdev_cma_hotplug_event(struct drm_fbdev_cma *fbdev_cma);
 void drm_fbdev_cma_set_suspend(struct drm_fbdev_cma *fbdev_cma, bool state);
-void drm_fbdev_cma_set_suspend_unlocked(struct drm_fbdev_cma *fbdev_cma,
-					bool state);
 
 struct drm_gem_cma_object *drm_fb_cma_get_gem_obj(struct drm_framebuffer *fb,
 	unsigned int plane);
-- 
1.9.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH] drm: Convert drm_atomic_helper_suspend/resume()
  2018-07-30 19:01 [PATCH] drm: Convert drm_atomic_helper_suspend/resume() Souptick Joarder
@ 2018-07-30 22:14   ` Laurent Pinchart
  2018-07-31 10:34   ` Liviu Dudau
  1 sibling, 0 replies; 12+ messages in thread
From: Laurent Pinchart @ 2018-07-30 22:14 UTC (permalink / raw)
  To: Souptick Joarder
  Cc: liviu.dudau, brian.starkey, malidp, airlied, gustavo,
	maarten.lankhorst, seanpaul, ajitn.linux, dri-devel,
	linux-kernel, linux-renesas-soc

Hi Souptick,

Thank you for the patch.

On Monday, 30 July 2018 22:01:37 EEST 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@gmail.com>
> Signed-off-by: Ajit Negi <ajitn.linux@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);
>  }
> 
>  static SIMPLE_DEV_PM_OPS(hdlcd_pm_ops, hdlcd_pm_suspend, hdlcd_pm_resume);
> diff --git a/drivers/gpu/drm/drm_fb_cma_helper.c
> b/drivers/gpu/drm/drm_fb_cma_helper.c index 186d00a..f604a84 100644
> --- a/drivers/gpu/drm/drm_fb_cma_helper.c
> +++ b/drivers/gpu/drm/drm_fb_cma_helper.c
> @@ -529,21 +529,3 @@ void drm_fbdev_cma_set_suspend(struct drm_fbdev_cma
> *fbdev_cma, bool state) drm_fb_helper_set_suspend(&fbdev_cma->fb_helper,
> state);
>  }
>  EXPORT_SYMBOL(drm_fbdev_cma_set_suspend);
> -
> -/**
> - * drm_fbdev_cma_set_suspend_unlocked - wrapper around
> - *                                      drm_fb_helper_set_suspend_unlocked
> - * @fbdev_cma: The drm_fbdev_cma struct, may be NULL
> - * @state: desired state, zero to resume, non-zero to suspend
> - *
> - * Calls drm_fb_helper_set_suspend, which is a wrapper around
> - * fb_set_suspend implemented by fbdev core.
> - */
> -void drm_fbdev_cma_set_suspend_unlocked(struct drm_fbdev_cma *fbdev_cma,
> -					bool state)
> -{
> -	if (fbdev_cma)
> -		drm_fb_helper_set_suspend_unlocked(&fbdev_cma->fb_helper,
> -						   state);
> -}
> -EXPORT_SYMBOL(drm_fbdev_cma_set_suspend_unlocked);
> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> b/drivers/gpu/drm/rcar-du/rcar_du_drv.c index 02aee6c..288220f 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> @@ -357,32 +357,15 @@ static void rcar_du_lastclose(struct drm_device *dev)
>  static int rcar_du_pm_suspend(struct device *dev)
>  {
>  	struct rcar_du_device *rcdu = dev_get_drvdata(dev);
> -	struct drm_atomic_state *state;
> 
> -	drm_kms_helper_poll_disable(rcdu->ddev);
> -	drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, true);
> -
> -	state = drm_atomic_helper_suspend(rcdu->ddev);
> -	if (IS_ERR(state)) {
> -		drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, false);
> -		drm_kms_helper_poll_enable(rcdu->ddev);
> -		return PTR_ERR(state);
> -	}
> -
> -	rcdu->suspend_state = state;

If you further remove the suspend_state field from the rcar_du_device 
structure, you'll get my

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> -
> -	return 0;
> +	return drm_mode_config_helper_suspend(rcdu->ddev);
>  }
> 
>  static int rcar_du_pm_resume(struct device *dev)
>  {
>  	struct rcar_du_device *rcdu = dev_get_drvdata(dev);
> 
> -	drm_atomic_helper_resume(rcdu->ddev, rcdu->suspend_state);
> -	drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, false);
> -	drm_kms_helper_poll_enable(rcdu->ddev);
> -
> -	return 0;
> +	return drm_mode_config_helper_resume(rcdu->ddev);
>  }
>  #endif
> 
> diff --git a/include/drm/drm_fb_cma_helper.h
> b/include/drm/drm_fb_cma_helper.h index d532f88a..15c4569 100644
> --- a/include/drm/drm_fb_cma_helper.h
> +++ b/include/drm/drm_fb_cma_helper.h
> @@ -33,8 +33,6 @@ struct drm_fbdev_cma *drm_fbdev_cma_init(struct drm_device
> *dev, void drm_fbdev_cma_restore_mode(struct drm_fbdev_cma *fbdev_cma);
> void drm_fbdev_cma_hotplug_event(struct drm_fbdev_cma *fbdev_cma); void
> drm_fbdev_cma_set_suspend(struct drm_fbdev_cma *fbdev_cma, bool state);
> -void drm_fbdev_cma_set_suspend_unlocked(struct drm_fbdev_cma *fbdev_cma,
> -					bool state);
> 
>  struct drm_gem_cma_object *drm_fb_cma_get_gem_obj(struct drm_framebuffer
> *fb, unsigned int plane);

-- 
Regards,

Laurent Pinchart




^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] drm: Convert drm_atomic_helper_suspend/resume()
@ 2018-07-30 22:14   ` Laurent Pinchart
  0 siblings, 0 replies; 12+ messages in thread
From: Laurent Pinchart @ 2018-07-30 22:14 UTC (permalink / raw)
  To: Souptick Joarder
  Cc: ajitn.linux, airlied, liviu.dudau, linux-kernel, dri-devel,
	linux-renesas-soc, malidp

Hi Souptick,

Thank you for the patch.

On Monday, 30 July 2018 22:01:37 EEST 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@gmail.com>
> Signed-off-by: Ajit Negi <ajitn.linux@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);
>  }
> 
>  static SIMPLE_DEV_PM_OPS(hdlcd_pm_ops, hdlcd_pm_suspend, hdlcd_pm_resume);
> diff --git a/drivers/gpu/drm/drm_fb_cma_helper.c
> b/drivers/gpu/drm/drm_fb_cma_helper.c index 186d00a..f604a84 100644
> --- a/drivers/gpu/drm/drm_fb_cma_helper.c
> +++ b/drivers/gpu/drm/drm_fb_cma_helper.c
> @@ -529,21 +529,3 @@ void drm_fbdev_cma_set_suspend(struct drm_fbdev_cma
> *fbdev_cma, bool state) drm_fb_helper_set_suspend(&fbdev_cma->fb_helper,
> state);
>  }
>  EXPORT_SYMBOL(drm_fbdev_cma_set_suspend);
> -
> -/**
> - * drm_fbdev_cma_set_suspend_unlocked - wrapper around
> - *                                      drm_fb_helper_set_suspend_unlocked
> - * @fbdev_cma: The drm_fbdev_cma struct, may be NULL
> - * @state: desired state, zero to resume, non-zero to suspend
> - *
> - * Calls drm_fb_helper_set_suspend, which is a wrapper around
> - * fb_set_suspend implemented by fbdev core.
> - */
> -void drm_fbdev_cma_set_suspend_unlocked(struct drm_fbdev_cma *fbdev_cma,
> -					bool state)
> -{
> -	if (fbdev_cma)
> -		drm_fb_helper_set_suspend_unlocked(&fbdev_cma->fb_helper,
> -						   state);
> -}
> -EXPORT_SYMBOL(drm_fbdev_cma_set_suspend_unlocked);
> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> b/drivers/gpu/drm/rcar-du/rcar_du_drv.c index 02aee6c..288220f 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> @@ -357,32 +357,15 @@ static void rcar_du_lastclose(struct drm_device *dev)
>  static int rcar_du_pm_suspend(struct device *dev)
>  {
>  	struct rcar_du_device *rcdu = dev_get_drvdata(dev);
> -	struct drm_atomic_state *state;
> 
> -	drm_kms_helper_poll_disable(rcdu->ddev);
> -	drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, true);
> -
> -	state = drm_atomic_helper_suspend(rcdu->ddev);
> -	if (IS_ERR(state)) {
> -		drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, false);
> -		drm_kms_helper_poll_enable(rcdu->ddev);
> -		return PTR_ERR(state);
> -	}
> -
> -	rcdu->suspend_state = state;

If you further remove the suspend_state field from the rcar_du_device 
structure, you'll get my

Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>

> -
> -	return 0;
> +	return drm_mode_config_helper_suspend(rcdu->ddev);
>  }
> 
>  static int rcar_du_pm_resume(struct device *dev)
>  {
>  	struct rcar_du_device *rcdu = dev_get_drvdata(dev);
> 
> -	drm_atomic_helper_resume(rcdu->ddev, rcdu->suspend_state);
> -	drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, false);
> -	drm_kms_helper_poll_enable(rcdu->ddev);
> -
> -	return 0;
> +	return drm_mode_config_helper_resume(rcdu->ddev);
>  }
>  #endif
> 
> diff --git a/include/drm/drm_fb_cma_helper.h
> b/include/drm/drm_fb_cma_helper.h index d532f88a..15c4569 100644
> --- a/include/drm/drm_fb_cma_helper.h
> +++ b/include/drm/drm_fb_cma_helper.h
> @@ -33,8 +33,6 @@ struct drm_fbdev_cma *drm_fbdev_cma_init(struct drm_device
> *dev, void drm_fbdev_cma_restore_mode(struct drm_fbdev_cma *fbdev_cma);
> void drm_fbdev_cma_hotplug_event(struct drm_fbdev_cma *fbdev_cma); void
> drm_fbdev_cma_set_suspend(struct drm_fbdev_cma *fbdev_cma, bool state);
> -void drm_fbdev_cma_set_suspend_unlocked(struct drm_fbdev_cma *fbdev_cma,
> -					bool state);
> 
>  struct drm_gem_cma_object *drm_fb_cma_get_gem_obj(struct drm_framebuffer
> *fb, unsigned int plane);

-- 
Regards,

Laurent Pinchart



_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] drm: Convert drm_atomic_helper_suspend/resume()
  2018-07-30 22:14   ` Laurent Pinchart
  (?)
@ 2018-07-31  5:55   ` Souptick Joarder
  -1 siblings, 0 replies; 12+ messages in thread
From: Souptick Joarder @ 2018-07-31  5:55 UTC (permalink / raw)
  To: Laurent Pinchart
  Cc: liviu.dudau, Brian Starkey, malidp, airlied, Gustavo Padovan,
	Maarten Lankhorst, Sean Paul, Ajit Linux, dri-devel,
	linux-kernel, linux-renesas-soc

> If you further remove the suspend_state field from the rcar_du_device
> structure, you'll get my
>
> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
>

Sorry, missed it.

>> -
>> -     return 0;
>> +     return drm_mode_config_helper_suspend(rcdu->ddev);
>>  }
>>
>>  static int rcar_du_pm_resume(struct device *dev)
>>  {
>>       struct rcar_du_device *rcdu = dev_get_drvdata(dev);
>>
>> -     drm_atomic_helper_resume(rcdu->ddev, rcdu->suspend_state);
>> -     drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, false);
>> -     drm_kms_helper_poll_enable(rcdu->ddev);
>> -
>> -     return 0;
>> +     return drm_mode_config_helper_resume(rcdu->ddev);
>>  }
>>  #endif
>>
>> diff --git a/include/drm/drm_fb_cma_helper.h
>> b/include/drm/drm_fb_cma_helper.h index d532f88a..15c4569 100644
>> --- a/include/drm/drm_fb_cma_helper.h
>> +++ b/include/drm/drm_fb_cma_helper.h
>> @@ -33,8 +33,6 @@ struct drm_fbdev_cma *drm_fbdev_cma_init(struct drm_device
>> *dev, void drm_fbdev_cma_restore_mode(struct drm_fbdev_cma *fbdev_cma);
>> void drm_fbdev_cma_hotplug_event(struct drm_fbdev_cma *fbdev_cma); void
>> drm_fbdev_cma_set_suspend(struct drm_fbdev_cma *fbdev_cma, bool state);
>> -void drm_fbdev_cma_set_suspend_unlocked(struct drm_fbdev_cma *fbdev_cma,
>> -                                     bool state);
>>
>>  struct drm_gem_cma_object *drm_fb_cma_get_gem_obj(struct drm_framebuffer
>> *fb, unsigned int plane);
>
> --
> Regards,
>
> Laurent Pinchart
>
>
>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] drm: Convert drm_atomic_helper_suspend/resume()
  2018-07-30 19:01 [PATCH] drm: Convert drm_atomic_helper_suspend/resume() Souptick Joarder
@ 2018-07-31 10:34   ` Liviu Dudau
  2018-07-31 10:34   ` Liviu Dudau
  1 sibling, 0 replies; 12+ messages in thread
From: Liviu Dudau @ 2018-07-31 10:34 UTC (permalink / raw)
  To: Souptick Joarder
  Cc: brian.starkey, malidp, airlied, gustavo, maarten.lankhorst,
	seanpaul, laurent.pinchart, ajitn.linux, dri-devel, linux-kernel,
	linux-renesas-soc

Hi Souptick,

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@gmail.com>
> Signed-off-by: Ajit Negi <ajitn.linux@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.

Best regards,
Liviu

>  
>  static SIMPLE_DEV_PM_OPS(hdlcd_pm_ops, hdlcd_pm_suspend, hdlcd_pm_resume);
> diff --git a/drivers/gpu/drm/drm_fb_cma_helper.c b/drivers/gpu/drm/drm_fb_cma_helper.c
> index 186d00a..f604a84 100644
> --- a/drivers/gpu/drm/drm_fb_cma_helper.c
> +++ b/drivers/gpu/drm/drm_fb_cma_helper.c
> @@ -529,21 +529,3 @@ void drm_fbdev_cma_set_suspend(struct drm_fbdev_cma *fbdev_cma, bool state)
>  		drm_fb_helper_set_suspend(&fbdev_cma->fb_helper, state);
>  }
>  EXPORT_SYMBOL(drm_fbdev_cma_set_suspend);
> -
> -/**
> - * drm_fbdev_cma_set_suspend_unlocked - wrapper around
> - *                                      drm_fb_helper_set_suspend_unlocked
> - * @fbdev_cma: The drm_fbdev_cma struct, may be NULL
> - * @state: desired state, zero to resume, non-zero to suspend
> - *
> - * Calls drm_fb_helper_set_suspend, which is a wrapper around
> - * fb_set_suspend implemented by fbdev core.
> - */
> -void drm_fbdev_cma_set_suspend_unlocked(struct drm_fbdev_cma *fbdev_cma,
> -					bool state)
> -{
> -	if (fbdev_cma)
> -		drm_fb_helper_set_suspend_unlocked(&fbdev_cma->fb_helper,
> -						   state);
> -}
> -EXPORT_SYMBOL(drm_fbdev_cma_set_suspend_unlocked);
> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> index 02aee6c..288220f 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> @@ -357,32 +357,15 @@ static void rcar_du_lastclose(struct drm_device *dev)
>  static int rcar_du_pm_suspend(struct device *dev)
>  {
>  	struct rcar_du_device *rcdu = dev_get_drvdata(dev);
> -	struct drm_atomic_state *state;
>  
> -	drm_kms_helper_poll_disable(rcdu->ddev);
> -	drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, true);
> -
> -	state = drm_atomic_helper_suspend(rcdu->ddev);
> -	if (IS_ERR(state)) {
> -		drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, false);
> -		drm_kms_helper_poll_enable(rcdu->ddev);
> -		return PTR_ERR(state);
> -	}
> -
> -	rcdu->suspend_state = state;
> -
> -	return 0;
> +	return drm_mode_config_helper_suspend(rcdu->ddev);
>  }
>  
>  static int rcar_du_pm_resume(struct device *dev)
>  {
>  	struct rcar_du_device *rcdu = dev_get_drvdata(dev);
>  
> -	drm_atomic_helper_resume(rcdu->ddev, rcdu->suspend_state);
> -	drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, false);
> -	drm_kms_helper_poll_enable(rcdu->ddev);
> -
> -	return 0;
> +	return drm_mode_config_helper_resume(rcdu->ddev);
>  }
>  #endif
>  
> diff --git a/include/drm/drm_fb_cma_helper.h b/include/drm/drm_fb_cma_helper.h
> index d532f88a..15c4569 100644
> --- a/include/drm/drm_fb_cma_helper.h
> +++ b/include/drm/drm_fb_cma_helper.h
> @@ -33,8 +33,6 @@ struct drm_fbdev_cma *drm_fbdev_cma_init(struct drm_device *dev,
>  void drm_fbdev_cma_restore_mode(struct drm_fbdev_cma *fbdev_cma);
>  void drm_fbdev_cma_hotplug_event(struct drm_fbdev_cma *fbdev_cma);
>  void drm_fbdev_cma_set_suspend(struct drm_fbdev_cma *fbdev_cma, bool state);
> -void drm_fbdev_cma_set_suspend_unlocked(struct drm_fbdev_cma *fbdev_cma,
> -					bool state);
>  
>  struct drm_gem_cma_object *drm_fb_cma_get_gem_obj(struct drm_framebuffer *fb,
>  	unsigned int plane);
> -- 
> 1.9.1
> 

-- 
====================
| I would like to |
| fix the world,  |
| but they're not |
| giving me the   |
 \ source code!  /
  ---------------
    ¯\_(ツ)_/¯

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] drm: Convert drm_atomic_helper_suspend/resume()
@ 2018-07-31 10:34   ` Liviu Dudau
  0 siblings, 0 replies; 12+ messages in thread
From: Liviu Dudau @ 2018-07-31 10:34 UTC (permalink / raw)
  To: Souptick Joarder
  Cc: ajitn.linux, airlied, linux-kernel, dri-devel, linux-renesas-soc,
	malidp, laurent.pinchart

Hi Souptick,

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@gmail.com>
> Signed-off-by: Ajit Negi <ajitn.linux@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.

Best regards,
Liviu

>  
>  static SIMPLE_DEV_PM_OPS(hdlcd_pm_ops, hdlcd_pm_suspend, hdlcd_pm_resume);
> diff --git a/drivers/gpu/drm/drm_fb_cma_helper.c b/drivers/gpu/drm/drm_fb_cma_helper.c
> index 186d00a..f604a84 100644
> --- a/drivers/gpu/drm/drm_fb_cma_helper.c
> +++ b/drivers/gpu/drm/drm_fb_cma_helper.c
> @@ -529,21 +529,3 @@ void drm_fbdev_cma_set_suspend(struct drm_fbdev_cma *fbdev_cma, bool state)
>  		drm_fb_helper_set_suspend(&fbdev_cma->fb_helper, state);
>  }
>  EXPORT_SYMBOL(drm_fbdev_cma_set_suspend);
> -
> -/**
> - * drm_fbdev_cma_set_suspend_unlocked - wrapper around
> - *                                      drm_fb_helper_set_suspend_unlocked
> - * @fbdev_cma: The drm_fbdev_cma struct, may be NULL
> - * @state: desired state, zero to resume, non-zero to suspend
> - *
> - * Calls drm_fb_helper_set_suspend, which is a wrapper around
> - * fb_set_suspend implemented by fbdev core.
> - */
> -void drm_fbdev_cma_set_suspend_unlocked(struct drm_fbdev_cma *fbdev_cma,
> -					bool state)
> -{
> -	if (fbdev_cma)
> -		drm_fb_helper_set_suspend_unlocked(&fbdev_cma->fb_helper,
> -						   state);
> -}
> -EXPORT_SYMBOL(drm_fbdev_cma_set_suspend_unlocked);
> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> index 02aee6c..288220f 100644
> --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> @@ -357,32 +357,15 @@ static void rcar_du_lastclose(struct drm_device *dev)
>  static int rcar_du_pm_suspend(struct device *dev)
>  {
>  	struct rcar_du_device *rcdu = dev_get_drvdata(dev);
> -	struct drm_atomic_state *state;
>  
> -	drm_kms_helper_poll_disable(rcdu->ddev);
> -	drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, true);
> -
> -	state = drm_atomic_helper_suspend(rcdu->ddev);
> -	if (IS_ERR(state)) {
> -		drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, false);
> -		drm_kms_helper_poll_enable(rcdu->ddev);
> -		return PTR_ERR(state);
> -	}
> -
> -	rcdu->suspend_state = state;
> -
> -	return 0;
> +	return drm_mode_config_helper_suspend(rcdu->ddev);
>  }
>  
>  static int rcar_du_pm_resume(struct device *dev)
>  {
>  	struct rcar_du_device *rcdu = dev_get_drvdata(dev);
>  
> -	drm_atomic_helper_resume(rcdu->ddev, rcdu->suspend_state);
> -	drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, false);
> -	drm_kms_helper_poll_enable(rcdu->ddev);
> -
> -	return 0;
> +	return drm_mode_config_helper_resume(rcdu->ddev);
>  }
>  #endif
>  
> diff --git a/include/drm/drm_fb_cma_helper.h b/include/drm/drm_fb_cma_helper.h
> index d532f88a..15c4569 100644
> --- a/include/drm/drm_fb_cma_helper.h
> +++ b/include/drm/drm_fb_cma_helper.h
> @@ -33,8 +33,6 @@ struct drm_fbdev_cma *drm_fbdev_cma_init(struct drm_device *dev,
>  void drm_fbdev_cma_restore_mode(struct drm_fbdev_cma *fbdev_cma);
>  void drm_fbdev_cma_hotplug_event(struct drm_fbdev_cma *fbdev_cma);
>  void drm_fbdev_cma_set_suspend(struct drm_fbdev_cma *fbdev_cma, bool state);
> -void drm_fbdev_cma_set_suspend_unlocked(struct drm_fbdev_cma *fbdev_cma,
> -					bool state);
>  
>  struct drm_gem_cma_object *drm_fb_cma_get_gem_obj(struct drm_framebuffer *fb,
>  	unsigned int plane);
> -- 
> 1.9.1
> 

-- 
====================
| I would like to |
| fix the world,  |
| but they're not |
| giving me the   |
 \ source code!  /
  ---------------
    ¯\_(ツ)_/¯
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] drm: Convert drm_atomic_helper_suspend/resume()
  2018-07-31 10:34   ` Liviu Dudau
  (?)
@ 2018-07-31 18:41   ` Souptick Joarder
  2018-08-02  9:55     ` Souptick Joarder
  -1 siblings, 1 reply; 12+ messages in thread
From: Souptick Joarder @ 2018-07-31 18:41 UTC (permalink / raw)
  To: Liviu Dudau
  Cc: Brian Starkey, malidp, airlied, Gustavo Padovan,
	Maarten Lankhorst, Sean Paul, Laurent Pinchart, Ajit Linux,
	dri-devel, linux-kernel, linux-renesas-soc

On Tue, Jul 31, 2018 at 4:04 PM, Liviu Dudau <liviu.dudau@arm.com> wrote:
> Hi Souptick,
>
> 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@gmail.com>
>> Signed-off-by: Ajit Negi <ajitn.linux@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.
>
> Best regards,
> Liviu

unable to clone this repository.
can you please post the patchwork link ?

>
>>
>>  static SIMPLE_DEV_PM_OPS(hdlcd_pm_ops, hdlcd_pm_suspend, hdlcd_pm_resume);
>> diff --git a/drivers/gpu/drm/drm_fb_cma_helper.c b/drivers/gpu/drm/drm_fb_cma_helper.c
>> index 186d00a..f604a84 100644
>> --- a/drivers/gpu/drm/drm_fb_cma_helper.c
>> +++ b/drivers/gpu/drm/drm_fb_cma_helper.c
>> @@ -529,21 +529,3 @@ void drm_fbdev_cma_set_suspend(struct drm_fbdev_cma *fbdev_cma, bool state)
>>               drm_fb_helper_set_suspend(&fbdev_cma->fb_helper, state);
>>  }
>>  EXPORT_SYMBOL(drm_fbdev_cma_set_suspend);
>> -
>> -/**
>> - * drm_fbdev_cma_set_suspend_unlocked - wrapper around
>> - *                                      drm_fb_helper_set_suspend_unlocked
>> - * @fbdev_cma: The drm_fbdev_cma struct, may be NULL
>> - * @state: desired state, zero to resume, non-zero to suspend
>> - *
>> - * Calls drm_fb_helper_set_suspend, which is a wrapper around
>> - * fb_set_suspend implemented by fbdev core.
>> - */
>> -void drm_fbdev_cma_set_suspend_unlocked(struct drm_fbdev_cma *fbdev_cma,
>> -                                     bool state)
>> -{
>> -     if (fbdev_cma)
>> -             drm_fb_helper_set_suspend_unlocked(&fbdev_cma->fb_helper,
>> -                                                state);
>> -}
>> -EXPORT_SYMBOL(drm_fbdev_cma_set_suspend_unlocked);
>> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
>> index 02aee6c..288220f 100644
>> --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c
>> +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
>> @@ -357,32 +357,15 @@ static void rcar_du_lastclose(struct drm_device *dev)
>>  static int rcar_du_pm_suspend(struct device *dev)
>>  {
>>       struct rcar_du_device *rcdu = dev_get_drvdata(dev);
>> -     struct drm_atomic_state *state;
>>
>> -     drm_kms_helper_poll_disable(rcdu->ddev);
>> -     drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, true);
>> -
>> -     state = drm_atomic_helper_suspend(rcdu->ddev);
>> -     if (IS_ERR(state)) {
>> -             drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, false);
>> -             drm_kms_helper_poll_enable(rcdu->ddev);
>> -             return PTR_ERR(state);
>> -     }
>> -
>> -     rcdu->suspend_state = state;
>> -
>> -     return 0;
>> +     return drm_mode_config_helper_suspend(rcdu->ddev);
>>  }
>>
>>  static int rcar_du_pm_resume(struct device *dev)
>>  {
>>       struct rcar_du_device *rcdu = dev_get_drvdata(dev);
>>
>> -     drm_atomic_helper_resume(rcdu->ddev, rcdu->suspend_state);
>> -     drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, false);
>> -     drm_kms_helper_poll_enable(rcdu->ddev);
>> -
>> -     return 0;
>> +     return drm_mode_config_helper_resume(rcdu->ddev);
>>  }
>>  #endif
>>
>> diff --git a/include/drm/drm_fb_cma_helper.h b/include/drm/drm_fb_cma_helper.h
>> index d532f88a..15c4569 100644
>> --- a/include/drm/drm_fb_cma_helper.h
>> +++ b/include/drm/drm_fb_cma_helper.h
>> @@ -33,8 +33,6 @@ struct drm_fbdev_cma *drm_fbdev_cma_init(struct drm_device *dev,
>>  void drm_fbdev_cma_restore_mode(struct drm_fbdev_cma *fbdev_cma);
>>  void drm_fbdev_cma_hotplug_event(struct drm_fbdev_cma *fbdev_cma);
>>  void drm_fbdev_cma_set_suspend(struct drm_fbdev_cma *fbdev_cma, bool state);
>> -void drm_fbdev_cma_set_suspend_unlocked(struct drm_fbdev_cma *fbdev_cma,
>> -                                     bool state);
>>
>>  struct drm_gem_cma_object *drm_fb_cma_get_gem_obj(struct drm_framebuffer *fb,
>>       unsigned int plane);
>> --
>> 1.9.1
>>
>
> --
> ====================
> | I would like to |
> | fix the world,  |
> | but they're not |
> | giving me the   |
>  \ source code!  /
>   ---------------
>     ¯\_(ツ)_/¯

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] drm: Convert drm_atomic_helper_suspend/resume()
  2018-07-31 18:41   ` Souptick Joarder
@ 2018-08-02  9:55     ` Souptick Joarder
  2018-08-13 17:16         ` Liviu Dudau
  0 siblings, 1 reply; 12+ messages in thread
From: Souptick Joarder @ 2018-08-02  9:55 UTC (permalink / raw)
  To: Liviu Dudau
  Cc: Brian Starkey, malidp, airlied, Gustavo Padovan,
	Maarten Lankhorst, Sean Paul, Laurent Pinchart, Ajit Linux,
	dri-devel, linux-kernel, linux-renesas-soc

On Wed, Aug 1, 2018 at 12:11 AM, Souptick Joarder <jrdr.linux@gmail.com> wrote:
> On Tue, Jul 31, 2018 at 4:04 PM, Liviu Dudau <liviu.dudau@arm.com> wrote:
>> Hi Souptick,
>>
>> 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@gmail.com>
>>> Signed-off-by: Ajit Negi <ajitn.linux@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.
>>
>> Best regards,
>> Liviu
>
> unable to clone this repository.
> can you please post the patchwork link ?

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 ??

>
>>
>>>
>>>  static SIMPLE_DEV_PM_OPS(hdlcd_pm_ops, hdlcd_pm_suspend, hdlcd_pm_resume);
>>> diff --git a/drivers/gpu/drm/drm_fb_cma_helper.c b/drivers/gpu/drm/drm_fb_cma_helper.c
>>> index 186d00a..f604a84 100644
>>> --- a/drivers/gpu/drm/drm_fb_cma_helper.c
>>> +++ b/drivers/gpu/drm/drm_fb_cma_helper.c
>>> @@ -529,21 +529,3 @@ void drm_fbdev_cma_set_suspend(struct drm_fbdev_cma *fbdev_cma, bool state)
>>>               drm_fb_helper_set_suspend(&fbdev_cma->fb_helper, state);
>>>  }
>>>  EXPORT_SYMBOL(drm_fbdev_cma_set_suspend);
>>> -
>>> -/**
>>> - * drm_fbdev_cma_set_suspend_unlocked - wrapper around
>>> - *                                      drm_fb_helper_set_suspend_unlocked
>>> - * @fbdev_cma: The drm_fbdev_cma struct, may be NULL
>>> - * @state: desired state, zero to resume, non-zero to suspend
>>> - *
>>> - * Calls drm_fb_helper_set_suspend, which is a wrapper around
>>> - * fb_set_suspend implemented by fbdev core.
>>> - */
>>> -void drm_fbdev_cma_set_suspend_unlocked(struct drm_fbdev_cma *fbdev_cma,
>>> -                                     bool state)
>>> -{
>>> -     if (fbdev_cma)
>>> -             drm_fb_helper_set_suspend_unlocked(&fbdev_cma->fb_helper,
>>> -                                                state);
>>> -}
>>> -EXPORT_SYMBOL(drm_fbdev_cma_set_suspend_unlocked);
>>> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
>>> index 02aee6c..288220f 100644
>>> --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c
>>> +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
>>> @@ -357,32 +357,15 @@ static void rcar_du_lastclose(struct drm_device *dev)
>>>  static int rcar_du_pm_suspend(struct device *dev)
>>>  {
>>>       struct rcar_du_device *rcdu = dev_get_drvdata(dev);
>>> -     struct drm_atomic_state *state;
>>>
>>> -     drm_kms_helper_poll_disable(rcdu->ddev);
>>> -     drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, true);
>>> -
>>> -     state = drm_atomic_helper_suspend(rcdu->ddev);
>>> -     if (IS_ERR(state)) {
>>> -             drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, false);
>>> -             drm_kms_helper_poll_enable(rcdu->ddev);
>>> -             return PTR_ERR(state);
>>> -     }
>>> -
>>> -     rcdu->suspend_state = state;
>>> -
>>> -     return 0;
>>> +     return drm_mode_config_helper_suspend(rcdu->ddev);
>>>  }
>>>
>>>  static int rcar_du_pm_resume(struct device *dev)
>>>  {
>>>       struct rcar_du_device *rcdu = dev_get_drvdata(dev);
>>>
>>> -     drm_atomic_helper_resume(rcdu->ddev, rcdu->suspend_state);
>>> -     drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, false);
>>> -     drm_kms_helper_poll_enable(rcdu->ddev);
>>> -
>>> -     return 0;
>>> +     return drm_mode_config_helper_resume(rcdu->ddev);
>>>  }
>>>  #endif
>>>
>>> diff --git a/include/drm/drm_fb_cma_helper.h b/include/drm/drm_fb_cma_helper.h
>>> index d532f88a..15c4569 100644
>>> --- a/include/drm/drm_fb_cma_helper.h
>>> +++ b/include/drm/drm_fb_cma_helper.h
>>> @@ -33,8 +33,6 @@ struct drm_fbdev_cma *drm_fbdev_cma_init(struct drm_device *dev,
>>>  void drm_fbdev_cma_restore_mode(struct drm_fbdev_cma *fbdev_cma);
>>>  void drm_fbdev_cma_hotplug_event(struct drm_fbdev_cma *fbdev_cma);
>>>  void drm_fbdev_cma_set_suspend(struct drm_fbdev_cma *fbdev_cma, bool state);
>>> -void drm_fbdev_cma_set_suspend_unlocked(struct drm_fbdev_cma *fbdev_cma,
>>> -                                     bool state);
>>>
>>>  struct drm_gem_cma_object *drm_fb_cma_get_gem_obj(struct drm_framebuffer *fb,
>>>       unsigned int plane);
>>> --
>>> 1.9.1
>>>
>>
>> --
>> ====================
>> | I would like to |
>> | fix the world,  |
>> | but they're not |
>> | giving me the   |
>>  \ source code!  /
>>   ---------------
>>     ¯\_(ツ)_/¯

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] drm: Convert drm_atomic_helper_suspend/resume()
  2018-08-02  9:55     ` Souptick Joarder
@ 2018-08-13 17:16         ` Liviu Dudau
  0 siblings, 0 replies; 12+ messages in thread
From: Liviu Dudau @ 2018-08-13 17:16 UTC (permalink / raw)
  To: Souptick Joarder
  Cc: Brian Starkey, malidp, airlied, Gustavo Padovan,
	Maarten Lankhorst, Sean Paul, Laurent Pinchart, Ajit Linux,
	dri-devel, linux-kernel, linux-renesas-soc

On Thu, Aug 02, 2018 at 03:25:24PM +0530, Souptick Joarder wrote:
> On Wed, Aug 1, 2018 at 12:11 AM, Souptick Joarder <jrdr.linux@gmail.com> wrote:
> > On Tue, Jul 31, 2018 at 4:04 PM, Liviu Dudau <liviu.dudau@arm.com> wrote:
> >> Hi Souptick,
> >>
> >> 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@gmail.com>
> >>> Signed-off-by: Ajit Negi <ajitn.linux@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.
> >>
> >> Best regards,
> >> Liviu
> >
> > 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.

Best regards,
Liviu


> 
> >
> >>
> >>>
> >>>  static SIMPLE_DEV_PM_OPS(hdlcd_pm_ops, hdlcd_pm_suspend, hdlcd_pm_resume);
> >>> diff --git a/drivers/gpu/drm/drm_fb_cma_helper.c b/drivers/gpu/drm/drm_fb_cma_helper.c
> >>> index 186d00a..f604a84 100644
> >>> --- a/drivers/gpu/drm/drm_fb_cma_helper.c
> >>> +++ b/drivers/gpu/drm/drm_fb_cma_helper.c
> >>> @@ -529,21 +529,3 @@ void drm_fbdev_cma_set_suspend(struct drm_fbdev_cma *fbdev_cma, bool state)
> >>>               drm_fb_helper_set_suspend(&fbdev_cma->fb_helper, state);
> >>>  }
> >>>  EXPORT_SYMBOL(drm_fbdev_cma_set_suspend);
> >>> -
> >>> -/**
> >>> - * drm_fbdev_cma_set_suspend_unlocked - wrapper around
> >>> - *                                      drm_fb_helper_set_suspend_unlocked
> >>> - * @fbdev_cma: The drm_fbdev_cma struct, may be NULL
> >>> - * @state: desired state, zero to resume, non-zero to suspend
> >>> - *
> >>> - * Calls drm_fb_helper_set_suspend, which is a wrapper around
> >>> - * fb_set_suspend implemented by fbdev core.
> >>> - */
> >>> -void drm_fbdev_cma_set_suspend_unlocked(struct drm_fbdev_cma *fbdev_cma,
> >>> -                                     bool state)
> >>> -{
> >>> -     if (fbdev_cma)
> >>> -             drm_fb_helper_set_suspend_unlocked(&fbdev_cma->fb_helper,
> >>> -                                                state);
> >>> -}
> >>> -EXPORT_SYMBOL(drm_fbdev_cma_set_suspend_unlocked);
> >>> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> >>> index 02aee6c..288220f 100644
> >>> --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> >>> +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> >>> @@ -357,32 +357,15 @@ static void rcar_du_lastclose(struct drm_device *dev)
> >>>  static int rcar_du_pm_suspend(struct device *dev)
> >>>  {
> >>>       struct rcar_du_device *rcdu = dev_get_drvdata(dev);
> >>> -     struct drm_atomic_state *state;
> >>>
> >>> -     drm_kms_helper_poll_disable(rcdu->ddev);
> >>> -     drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, true);
> >>> -
> >>> -     state = drm_atomic_helper_suspend(rcdu->ddev);
> >>> -     if (IS_ERR(state)) {
> >>> -             drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, false);
> >>> -             drm_kms_helper_poll_enable(rcdu->ddev);
> >>> -             return PTR_ERR(state);
> >>> -     }
> >>> -
> >>> -     rcdu->suspend_state = state;
> >>> -
> >>> -     return 0;
> >>> +     return drm_mode_config_helper_suspend(rcdu->ddev);
> >>>  }
> >>>
> >>>  static int rcar_du_pm_resume(struct device *dev)
> >>>  {
> >>>       struct rcar_du_device *rcdu = dev_get_drvdata(dev);
> >>>
> >>> -     drm_atomic_helper_resume(rcdu->ddev, rcdu->suspend_state);
> >>> -     drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, false);
> >>> -     drm_kms_helper_poll_enable(rcdu->ddev);
> >>> -
> >>> -     return 0;
> >>> +     return drm_mode_config_helper_resume(rcdu->ddev);
> >>>  }
> >>>  #endif
> >>>
> >>> diff --git a/include/drm/drm_fb_cma_helper.h b/include/drm/drm_fb_cma_helper.h
> >>> index d532f88a..15c4569 100644
> >>> --- a/include/drm/drm_fb_cma_helper.h
> >>> +++ b/include/drm/drm_fb_cma_helper.h
> >>> @@ -33,8 +33,6 @@ struct drm_fbdev_cma *drm_fbdev_cma_init(struct drm_device *dev,
> >>>  void drm_fbdev_cma_restore_mode(struct drm_fbdev_cma *fbdev_cma);
> >>>  void drm_fbdev_cma_hotplug_event(struct drm_fbdev_cma *fbdev_cma);
> >>>  void drm_fbdev_cma_set_suspend(struct drm_fbdev_cma *fbdev_cma, bool state);
> >>> -void drm_fbdev_cma_set_suspend_unlocked(struct drm_fbdev_cma *fbdev_cma,
> >>> -                                     bool state);
> >>>
> >>>  struct drm_gem_cma_object *drm_fb_cma_get_gem_obj(struct drm_framebuffer *fb,
> >>>       unsigned int plane);
> >>> --
> >>> 1.9.1
> >>>
> >>
> >> --
> >> ====================
> >> | I would like to |
> >> | fix the world,  |
> >> | but they're not |
> >> | giving me the   |
> >>  \ source code!  /
> >>   ---------------
> >>     ¯\_(ツ)_/¯

-- 
====================
| I would like to |
| fix the world,  |
| but they're not |
| giving me the   |
 \ source code!  /
  ---------------
    ¯\_(ツ)_/¯

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] drm: Convert drm_atomic_helper_suspend/resume()
@ 2018-08-13 17:16         ` Liviu Dudau
  0 siblings, 0 replies; 12+ messages in thread
From: Liviu Dudau @ 2018-08-13 17:16 UTC (permalink / raw)
  To: Souptick Joarder
  Cc: Ajit Linux, airlied, linux-kernel, dri-devel, linux-renesas-soc,
	malidp, Laurent Pinchart

On Thu, Aug 02, 2018 at 03:25:24PM +0530, Souptick Joarder wrote:
> On Wed, Aug 1, 2018 at 12:11 AM, Souptick Joarder <jrdr.linux@gmail.com> wrote:
> > On Tue, Jul 31, 2018 at 4:04 PM, Liviu Dudau <liviu.dudau@arm.com> wrote:
> >> Hi Souptick,
> >>
> >> 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@gmail.com>
> >>> Signed-off-by: Ajit Negi <ajitn.linux@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.
> >>
> >> Best regards,
> >> Liviu
> >
> > 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.

Best regards,
Liviu


> 
> >
> >>
> >>>
> >>>  static SIMPLE_DEV_PM_OPS(hdlcd_pm_ops, hdlcd_pm_suspend, hdlcd_pm_resume);
> >>> diff --git a/drivers/gpu/drm/drm_fb_cma_helper.c b/drivers/gpu/drm/drm_fb_cma_helper.c
> >>> index 186d00a..f604a84 100644
> >>> --- a/drivers/gpu/drm/drm_fb_cma_helper.c
> >>> +++ b/drivers/gpu/drm/drm_fb_cma_helper.c
> >>> @@ -529,21 +529,3 @@ void drm_fbdev_cma_set_suspend(struct drm_fbdev_cma *fbdev_cma, bool state)
> >>>               drm_fb_helper_set_suspend(&fbdev_cma->fb_helper, state);
> >>>  }
> >>>  EXPORT_SYMBOL(drm_fbdev_cma_set_suspend);
> >>> -
> >>> -/**
> >>> - * drm_fbdev_cma_set_suspend_unlocked - wrapper around
> >>> - *                                      drm_fb_helper_set_suspend_unlocked
> >>> - * @fbdev_cma: The drm_fbdev_cma struct, may be NULL
> >>> - * @state: desired state, zero to resume, non-zero to suspend
> >>> - *
> >>> - * Calls drm_fb_helper_set_suspend, which is a wrapper around
> >>> - * fb_set_suspend implemented by fbdev core.
> >>> - */
> >>> -void drm_fbdev_cma_set_suspend_unlocked(struct drm_fbdev_cma *fbdev_cma,
> >>> -                                     bool state)
> >>> -{
> >>> -     if (fbdev_cma)
> >>> -             drm_fb_helper_set_suspend_unlocked(&fbdev_cma->fb_helper,
> >>> -                                                state);
> >>> -}
> >>> -EXPORT_SYMBOL(drm_fbdev_cma_set_suspend_unlocked);
> >>> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> >>> index 02aee6c..288220f 100644
> >>> --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> >>> +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
> >>> @@ -357,32 +357,15 @@ static void rcar_du_lastclose(struct drm_device *dev)
> >>>  static int rcar_du_pm_suspend(struct device *dev)
> >>>  {
> >>>       struct rcar_du_device *rcdu = dev_get_drvdata(dev);
> >>> -     struct drm_atomic_state *state;
> >>>
> >>> -     drm_kms_helper_poll_disable(rcdu->ddev);
> >>> -     drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, true);
> >>> -
> >>> -     state = drm_atomic_helper_suspend(rcdu->ddev);
> >>> -     if (IS_ERR(state)) {
> >>> -             drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, false);
> >>> -             drm_kms_helper_poll_enable(rcdu->ddev);
> >>> -             return PTR_ERR(state);
> >>> -     }
> >>> -
> >>> -     rcdu->suspend_state = state;
> >>> -
> >>> -     return 0;
> >>> +     return drm_mode_config_helper_suspend(rcdu->ddev);
> >>>  }
> >>>
> >>>  static int rcar_du_pm_resume(struct device *dev)
> >>>  {
> >>>       struct rcar_du_device *rcdu = dev_get_drvdata(dev);
> >>>
> >>> -     drm_atomic_helper_resume(rcdu->ddev, rcdu->suspend_state);
> >>> -     drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, false);
> >>> -     drm_kms_helper_poll_enable(rcdu->ddev);
> >>> -
> >>> -     return 0;
> >>> +     return drm_mode_config_helper_resume(rcdu->ddev);
> >>>  }
> >>>  #endif
> >>>
> >>> diff --git a/include/drm/drm_fb_cma_helper.h b/include/drm/drm_fb_cma_helper.h
> >>> index d532f88a..15c4569 100644
> >>> --- a/include/drm/drm_fb_cma_helper.h
> >>> +++ b/include/drm/drm_fb_cma_helper.h
> >>> @@ -33,8 +33,6 @@ struct drm_fbdev_cma *drm_fbdev_cma_init(struct drm_device *dev,
> >>>  void drm_fbdev_cma_restore_mode(struct drm_fbdev_cma *fbdev_cma);
> >>>  void drm_fbdev_cma_hotplug_event(struct drm_fbdev_cma *fbdev_cma);
> >>>  void drm_fbdev_cma_set_suspend(struct drm_fbdev_cma *fbdev_cma, bool state);
> >>> -void drm_fbdev_cma_set_suspend_unlocked(struct drm_fbdev_cma *fbdev_cma,
> >>> -                                     bool state);
> >>>
> >>>  struct drm_gem_cma_object *drm_fb_cma_get_gem_obj(struct drm_framebuffer *fb,
> >>>       unsigned int plane);
> >>> --
> >>> 1.9.1
> >>>
> >>
> >> --
> >> ====================
> >> | I would like to |
> >> | fix the world,  |
> >> | but they're not |
> >> | giving me the   |
> >>  \ source code!  /
> >>   ---------------
> >>     ¯\_(ツ)_/¯

-- 
====================
| I would like to |
| fix the world,  |
| but they're not |
| giving me the   |
 \ source code!  /
  ---------------
    ¯\_(ツ)_/¯
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] drm: Convert drm_atomic_helper_suspend/resume()
  2018-08-13 17:16         ` Liviu Dudau
  (?)
@ 2018-08-13 18:51         ` Souptick Joarder
  2018-08-13 19:58           ` Laurent Pinchart
  -1 siblings, 1 reply; 12+ messages in thread
From: Souptick Joarder @ 2018-08-13 18:51 UTC (permalink / raw)
  To: Liviu Dudau, Laurent Pinchart
  Cc: Brian Starkey, malidp, airlied, Gustavo Padovan,
	Maarten Lankhorst, Sean Paul, Ajit Linux, dri-devel,
	linux-kernel, linux-renesas-soc

Hi Laurent,

On Mon, Aug 13, 2018 at 10:46 PM, Liviu Dudau <liviu.dudau@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 <jrdr.linux@gmail.com> wrote:
>> > On Tue, Jul 31, 2018 at 4:04 PM, Liviu Dudau <liviu.dudau@arm.com> wrote:
>> >> Hi Souptick,
>> >>
>> >> 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@gmail.com>
>> >>> Signed-off-by: Ajit Negi <ajitn.linux@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.
>> >>
>> >> Best regards,
>> >> Liviu
>> >
>> > 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.
>
> Best regards,
> Liviu

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 ?

>
>>
>> >
>> >>
>> >>>
>> >>>  static SIMPLE_DEV_PM_OPS(hdlcd_pm_ops, hdlcd_pm_suspend, hdlcd_pm_resume);
>> >>> diff --git a/drivers/gpu/drm/drm_fb_cma_helper.c b/drivers/gpu/drm/drm_fb_cma_helper.c
>> >>> index 186d00a..f604a84 100644
>> >>> --- a/drivers/gpu/drm/drm_fb_cma_helper.c
>> >>> +++ b/drivers/gpu/drm/drm_fb_cma_helper.c
>> >>> @@ -529,21 +529,3 @@ void drm_fbdev_cma_set_suspend(struct drm_fbdev_cma *fbdev_cma, bool state)
>> >>>               drm_fb_helper_set_suspend(&fbdev_cma->fb_helper, state);
>> >>>  }
>> >>>  EXPORT_SYMBOL(drm_fbdev_cma_set_suspend);
>> >>> -
>> >>> -/**
>> >>> - * drm_fbdev_cma_set_suspend_unlocked - wrapper around
>> >>> - *                                      drm_fb_helper_set_suspend_unlocked
>> >>> - * @fbdev_cma: The drm_fbdev_cma struct, may be NULL
>> >>> - * @state: desired state, zero to resume, non-zero to suspend
>> >>> - *
>> >>> - * Calls drm_fb_helper_set_suspend, which is a wrapper around
>> >>> - * fb_set_suspend implemented by fbdev core.
>> >>> - */
>> >>> -void drm_fbdev_cma_set_suspend_unlocked(struct drm_fbdev_cma *fbdev_cma,
>> >>> -                                     bool state)
>> >>> -{
>> >>> -     if (fbdev_cma)
>> >>> -             drm_fb_helper_set_suspend_unlocked(&fbdev_cma->fb_helper,
>> >>> -                                                state);
>> >>> -}
>> >>> -EXPORT_SYMBOL(drm_fbdev_cma_set_suspend_unlocked);
>> >>> diff --git a/drivers/gpu/drm/rcar-du/rcar_du_drv.c b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
>> >>> index 02aee6c..288220f 100644
>> >>> --- a/drivers/gpu/drm/rcar-du/rcar_du_drv.c
>> >>> +++ b/drivers/gpu/drm/rcar-du/rcar_du_drv.c
>> >>> @@ -357,32 +357,15 @@ static void rcar_du_lastclose(struct drm_device *dev)
>> >>>  static int rcar_du_pm_suspend(struct device *dev)
>> >>>  {
>> >>>       struct rcar_du_device *rcdu = dev_get_drvdata(dev);
>> >>> -     struct drm_atomic_state *state;
>> >>>
>> >>> -     drm_kms_helper_poll_disable(rcdu->ddev);
>> >>> -     drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, true);
>> >>> -
>> >>> -     state = drm_atomic_helper_suspend(rcdu->ddev);
>> >>> -     if (IS_ERR(state)) {
>> >>> -             drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, false);
>> >>> -             drm_kms_helper_poll_enable(rcdu->ddev);
>> >>> -             return PTR_ERR(state);
>> >>> -     }
>> >>> -
>> >>> -     rcdu->suspend_state = state;
>> >>> -
>> >>> -     return 0;
>> >>> +     return drm_mode_config_helper_suspend(rcdu->ddev);
>> >>>  }
>> >>>
>> >>>  static int rcar_du_pm_resume(struct device *dev)
>> >>>  {
>> >>>       struct rcar_du_device *rcdu = dev_get_drvdata(dev);
>> >>>
>> >>> -     drm_atomic_helper_resume(rcdu->ddev, rcdu->suspend_state);
>> >>> -     drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, false);
>> >>> -     drm_kms_helper_poll_enable(rcdu->ddev);
>> >>> -
>> >>> -     return 0;
>> >>> +     return drm_mode_config_helper_resume(rcdu->ddev);
>> >>>  }
>> >>>  #endif
>> >>>
>> >>> diff --git a/include/drm/drm_fb_cma_helper.h b/include/drm/drm_fb_cma_helper.h
>> >>> index d532f88a..15c4569 100644
>> >>> --- a/include/drm/drm_fb_cma_helper.h
>> >>> +++ b/include/drm/drm_fb_cma_helper.h
>> >>> @@ -33,8 +33,6 @@ struct drm_fbdev_cma *drm_fbdev_cma_init(struct drm_device *dev,
>> >>>  void drm_fbdev_cma_restore_mode(struct drm_fbdev_cma *fbdev_cma);
>> >>>  void drm_fbdev_cma_hotplug_event(struct drm_fbdev_cma *fbdev_cma);
>> >>>  void drm_fbdev_cma_set_suspend(struct drm_fbdev_cma *fbdev_cma, bool state);
>> >>> -void drm_fbdev_cma_set_suspend_unlocked(struct drm_fbdev_cma *fbdev_cma,
>> >>> -                                     bool state);
>> >>>
>> >>>  struct drm_gem_cma_object *drm_fb_cma_get_gem_obj(struct drm_framebuffer *fb,
>> >>>       unsigned int plane);
>> >>> --
>> >>> 1.9.1
>> >>>
>> >>
>> >> --
>> >> ====================
>> >> | I would like to |
>> >> | fix the world,  |
>> >> | but they're not |
>> >> | giving me the   |
>> >>  \ source code!  /
>> >>   ---------------
>> >>     ¯\_(ツ)_/¯
>
> --
> ====================
> | I would like to |
> | fix the world,  |
> | but they're not |
> | giving me the   |
>  \ source code!  /
>   ---------------
>     ¯\_(ツ)_/¯

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH] drm: Convert drm_atomic_helper_suspend/resume()
  2018-08-13 18:51         ` Souptick Joarder
@ 2018-08-13 19:58           ` Laurent Pinchart
  0 siblings, 0 replies; 12+ messages in thread
From: Laurent Pinchart @ 2018-08-13 19:58 UTC (permalink / raw)
  To: Souptick Joarder
  Cc: Liviu Dudau, Brian Starkey, malidp, airlied, Gustavo Padovan,
	Maarten Lankhorst, Sean Paul, Ajit Linux, dri-devel,
	linux-kernel, linux-renesas-soc

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@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@gmail.com>
> >>>>> Signed-off-by: Ajit Negi <ajitn.linux@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




^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2018-08-13 19:57 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-07-30 19:01 [PATCH] drm: Convert drm_atomic_helper_suspend/resume() Souptick Joarder
2018-07-30 22:14 ` Laurent Pinchart
2018-07-30 22:14   ` Laurent Pinchart
2018-07-31  5:55   ` Souptick Joarder
2018-07-31 10:34 ` Liviu Dudau
2018-07-31 10:34   ` Liviu Dudau
2018-07-31 18:41   ` Souptick Joarder
2018-08-02  9:55     ` Souptick Joarder
2018-08-13 17:16       ` Liviu Dudau
2018-08-13 17:16         ` Liviu Dudau
2018-08-13 18:51         ` Souptick Joarder
2018-08-13 19:58           ` Laurent Pinchart

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.