[3/3] drm/hdlcd: Don't call drm_crtc_vblank_off on unbind
diff mbox series

Message ID 20200602095140.36678-3-daniel.vetter@ffwll.ch
State New
Headers show
Series
  • [1/3] drm/atomic-helper: reset vblank on crtc reset
Related show

Commit Message

Daniel Vetter June 2, 2020, 9:51 a.m. UTC
This is already taken care of by drm_atomic_helper_shutdown(), and
in that case only for the CRTC which are actually on.

Only tricky bit here is that we kill the interrupt handling before we
shut down crtc, so need to reorder that.

Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Cc: Liviu Dudau <liviu.dudau@arm.com>
Cc: Brian Starkey <brian.starkey@arm.com>
Cc:
---
 drivers/gpu/drm/arm/hdlcd_drv.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

Comments

Liviu Dudau June 2, 2020, 1 p.m. UTC | #1
On Tue, Jun 02, 2020 at 11:51:40AM +0200, Daniel Vetter wrote:
> This is already taken care of by drm_atomic_helper_shutdown(), and
> in that case only for the CRTC which are actually on.
> 
> Only tricky bit here is that we kill the interrupt handling before we
> shut down crtc, so need to reorder that.
> 
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> Cc: Liviu Dudau <liviu.dudau@arm.com>

Acked-by: Liviu Dudau <liviu.dudau@arm.com>

Best regards,
Liviu

> Cc: Brian Starkey <brian.starkey@arm.com>
> Cc:
> ---
>  drivers/gpu/drm/arm/hdlcd_drv.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/arm/hdlcd_drv.c b/drivers/gpu/drm/arm/hdlcd_drv.c
> index 194419f47c5e..26bc5d7766f5 100644
> --- a/drivers/gpu/drm/arm/hdlcd_drv.c
> +++ b/drivers/gpu/drm/arm/hdlcd_drv.c
> @@ -347,9 +347,8 @@ static void hdlcd_drm_unbind(struct device *dev)
>  	of_node_put(hdlcd->crtc.port);
>  	hdlcd->crtc.port = NULL;
>  	pm_runtime_get_sync(dev);
> -	drm_crtc_vblank_off(&hdlcd->crtc);
> -	drm_irq_uninstall(drm);
>  	drm_atomic_helper_shutdown(drm);
> +	drm_irq_uninstall(drm);
>  	pm_runtime_put(dev);
>  	if (pm_runtime_enabled(dev))
>  		pm_runtime_disable(dev);
> -- 
> 2.26.2
>
Daniel Vetter June 3, 2020, 1:46 p.m. UTC | #2
On Tue, Jun 02, 2020 at 02:00:16PM +0100, Liviu Dudau wrote:
> On Tue, Jun 02, 2020 at 11:51:40AM +0200, Daniel Vetter wrote:
> > This is already taken care of by drm_atomic_helper_shutdown(), and
> > in that case only for the CRTC which are actually on.
> > 
> > Only tricky bit here is that we kill the interrupt handling before we
> > shut down crtc, so need to reorder that.
> > 
> > Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
> > Cc: Liviu Dudau <liviu.dudau@arm.com>
> 
> Acked-by: Liviu Dudau <liviu.dudau@arm.com>

Ok I merged the two arm patches, thanks for taking a look. First patch
needs more work ...
-Daniel

> 
> Best regards,
> Liviu
> 
> > Cc: Brian Starkey <brian.starkey@arm.com>
> > Cc:
> > ---
> >  drivers/gpu/drm/arm/hdlcd_drv.c | 3 +--
> >  1 file changed, 1 insertion(+), 2 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/arm/hdlcd_drv.c b/drivers/gpu/drm/arm/hdlcd_drv.c
> > index 194419f47c5e..26bc5d7766f5 100644
> > --- a/drivers/gpu/drm/arm/hdlcd_drv.c
> > +++ b/drivers/gpu/drm/arm/hdlcd_drv.c
> > @@ -347,9 +347,8 @@ static void hdlcd_drm_unbind(struct device *dev)
> >  	of_node_put(hdlcd->crtc.port);
> >  	hdlcd->crtc.port = NULL;
> >  	pm_runtime_get_sync(dev);
> > -	drm_crtc_vblank_off(&hdlcd->crtc);
> > -	drm_irq_uninstall(drm);
> >  	drm_atomic_helper_shutdown(drm);
> > +	drm_irq_uninstall(drm);
> >  	pm_runtime_put(dev);
> >  	if (pm_runtime_enabled(dev))
> >  		pm_runtime_disable(dev);
> > -- 
> > 2.26.2
> > 
> 
> -- 
> ====================
> | I would like to |
> | fix the world,  |
> | but they're not |
> | giving me the   |
>  \ source code!  /
>   ---------------
>     ¯\_(ツ)_/¯

Patch
diff mbox series

diff --git a/drivers/gpu/drm/arm/hdlcd_drv.c b/drivers/gpu/drm/arm/hdlcd_drv.c
index 194419f47c5e..26bc5d7766f5 100644
--- a/drivers/gpu/drm/arm/hdlcd_drv.c
+++ b/drivers/gpu/drm/arm/hdlcd_drv.c
@@ -347,9 +347,8 @@  static void hdlcd_drm_unbind(struct device *dev)
 	of_node_put(hdlcd->crtc.port);
 	hdlcd->crtc.port = NULL;
 	pm_runtime_get_sync(dev);
-	drm_crtc_vblank_off(&hdlcd->crtc);
-	drm_irq_uninstall(drm);
 	drm_atomic_helper_shutdown(drm);
+	drm_irq_uninstall(drm);
 	pm_runtime_put(dev);
 	if (pm_runtime_enabled(dev))
 		pm_runtime_disable(dev);