[1/5] drm/shmob: Nuke preclose hook
diff mbox

Message ID 1452464770-16481-1-git-send-email-daniel.vetter@ffwll.ch
State New
Headers show

Commit Message

Daniel Vetter Jan. 10, 2016, 10:26 p.m. UTC
Again since the drm core takes care of event unlinking/disarming this
is now just needless code.

v2: Fixup misplaced hunk.

Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
---
 drivers/gpu/drm/shmobile/shmob_drm_crtc.c | 20 --------------------
 drivers/gpu/drm/shmobile/shmob_drm_crtc.h |  2 --
 drivers/gpu/drm/shmobile/shmob_drm_drv.c  |  8 --------
 3 files changed, 30 deletions(-)

Comments

Laurent Pinchart Jan. 11, 2016, midnight UTC | #1
Hi Daniel,

Thank you for the patch.

On Sunday 10 January 2016 23:26:06 Daniel Vetter wrote:
> Again since the drm core takes care of event unlinking/disarming this
> is now just needless code.
> 
> v2: Fixup misplaced hunk.
> 
> Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>

This looks good to me assuming that the mechanism works in the core, which 
looks like magic to me at the moment :-) After closing the "[PATCH] drm: Clean 
up pending events in the core" discussion (and assuming the conclusion is that 
is works),

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

> ---
>  drivers/gpu/drm/shmobile/shmob_drm_crtc.c | 20 --------------------
>  drivers/gpu/drm/shmobile/shmob_drm_crtc.h |  2 --
>  drivers/gpu/drm/shmobile/shmob_drm_drv.c  |  8 --------
>  3 files changed, 30 deletions(-)
> 
> diff --git a/drivers/gpu/drm/shmobile/shmob_drm_crtc.c
> b/drivers/gpu/drm/shmobile/shmob_drm_crtc.c index
> b80802f55143..de7959a60774 100644
> --- a/drivers/gpu/drm/shmobile/shmob_drm_crtc.c
> +++ b/drivers/gpu/drm/shmobile/shmob_drm_crtc.c
> @@ -438,26 +438,6 @@ static const struct drm_crtc_helper_funcs
> crtc_helper_funcs = { .mode_set_base = shmob_drm_crtc_mode_set_base,
>  };
> 
> -void shmob_drm_crtc_cancel_page_flip(struct shmob_drm_crtc *scrtc,
> -				     struct drm_file *file)
> -{
> -	struct drm_pending_vblank_event *event;
> -	struct drm_device *dev = scrtc->crtc.dev;
> -	unsigned long flags;
> -
> -	/* Destroy the pending vertical blanking event associated with the
> -	 * pending page flip, if any, and disable vertical blanking interrupts.
> -	 */
> -	spin_lock_irqsave(&dev->event_lock, flags);
> -	event = scrtc->event;
> -	if (event && event->base.file_priv == file) {
> -		scrtc->event = NULL;
> -		event->base.destroy(&event->base);
> -		drm_vblank_put(dev, 0);
> -	}
> -	spin_unlock_irqrestore(&dev->event_lock, flags);
> -}
> -
>  void shmob_drm_crtc_finish_page_flip(struct shmob_drm_crtc *scrtc)
>  {
>  	struct drm_pending_vblank_event *event;
> diff --git a/drivers/gpu/drm/shmobile/shmob_drm_crtc.h
> b/drivers/gpu/drm/shmobile/shmob_drm_crtc.h index
> eddad6dcc88a..38ed4ff8aaf2 100644
> --- a/drivers/gpu/drm/shmobile/shmob_drm_crtc.h
> +++ b/drivers/gpu/drm/shmobile/shmob_drm_crtc.h
> @@ -47,8 +47,6 @@ struct shmob_drm_connector {
> 
>  int shmob_drm_crtc_create(struct shmob_drm_device *sdev);
>  void shmob_drm_crtc_enable_vblank(struct shmob_drm_device *sdev, bool
> enable); -void shmob_drm_crtc_cancel_page_flip(struct shmob_drm_crtc
> *scrtc, -				     struct drm_file *file);
>  void shmob_drm_crtc_finish_page_flip(struct shmob_drm_crtc *scrtc);
>  void shmob_drm_crtc_suspend(struct shmob_drm_crtc *scrtc);
>  void shmob_drm_crtc_resume(struct shmob_drm_crtc *scrtc);
> diff --git a/drivers/gpu/drm/shmobile/shmob_drm_drv.c
> b/drivers/gpu/drm/shmobile/shmob_drm_drv.c index 04e66e3751b4..7700ff172079
> 100644
> --- a/drivers/gpu/drm/shmobile/shmob_drm_drv.c
> +++ b/drivers/gpu/drm/shmobile/shmob_drm_drv.c
> @@ -200,13 +200,6 @@ done:
>  	return ret;
>  }
> 
> -static void shmob_drm_preclose(struct drm_device *dev, struct drm_file
> *file) -{
> -	struct shmob_drm_device *sdev = dev->dev_private;
> -
> -	shmob_drm_crtc_cancel_page_flip(&sdev->crtc, file);
> -}
> -
>  static irqreturn_t shmob_drm_irq(int irq, void *arg)
>  {
>  	struct drm_device *dev = arg;
> @@ -266,7 +259,6 @@ static struct drm_driver shmob_drm_driver = {
> 
>  				| DRIVER_PRIME,
> 
>  	.load			= shmob_drm_load,
>  	.unload			= shmob_drm_unload,
> -	.preclose		= shmob_drm_preclose,
>  	.set_busid		= drm_platform_set_busid,
>  	.irq_handler		= shmob_drm_irq,
>  	.get_vblank_counter	= drm_vblank_no_hw_counter,

Patch
diff mbox

diff --git a/drivers/gpu/drm/shmobile/shmob_drm_crtc.c b/drivers/gpu/drm/shmobile/shmob_drm_crtc.c
index b80802f55143..de7959a60774 100644
--- a/drivers/gpu/drm/shmobile/shmob_drm_crtc.c
+++ b/drivers/gpu/drm/shmobile/shmob_drm_crtc.c
@@ -438,26 +438,6 @@  static const struct drm_crtc_helper_funcs crtc_helper_funcs = {
 	.mode_set_base = shmob_drm_crtc_mode_set_base,
 };
 
-void shmob_drm_crtc_cancel_page_flip(struct shmob_drm_crtc *scrtc,
-				     struct drm_file *file)
-{
-	struct drm_pending_vblank_event *event;
-	struct drm_device *dev = scrtc->crtc.dev;
-	unsigned long flags;
-
-	/* Destroy the pending vertical blanking event associated with the
-	 * pending page flip, if any, and disable vertical blanking interrupts.
-	 */
-	spin_lock_irqsave(&dev->event_lock, flags);
-	event = scrtc->event;
-	if (event && event->base.file_priv == file) {
-		scrtc->event = NULL;
-		event->base.destroy(&event->base);
-		drm_vblank_put(dev, 0);
-	}
-	spin_unlock_irqrestore(&dev->event_lock, flags);
-}
-
 void shmob_drm_crtc_finish_page_flip(struct shmob_drm_crtc *scrtc)
 {
 	struct drm_pending_vblank_event *event;
diff --git a/drivers/gpu/drm/shmobile/shmob_drm_crtc.h b/drivers/gpu/drm/shmobile/shmob_drm_crtc.h
index eddad6dcc88a..38ed4ff8aaf2 100644
--- a/drivers/gpu/drm/shmobile/shmob_drm_crtc.h
+++ b/drivers/gpu/drm/shmobile/shmob_drm_crtc.h
@@ -47,8 +47,6 @@  struct shmob_drm_connector {
 
 int shmob_drm_crtc_create(struct shmob_drm_device *sdev);
 void shmob_drm_crtc_enable_vblank(struct shmob_drm_device *sdev, bool enable);
-void shmob_drm_crtc_cancel_page_flip(struct shmob_drm_crtc *scrtc,
-				     struct drm_file *file);
 void shmob_drm_crtc_finish_page_flip(struct shmob_drm_crtc *scrtc);
 void shmob_drm_crtc_suspend(struct shmob_drm_crtc *scrtc);
 void shmob_drm_crtc_resume(struct shmob_drm_crtc *scrtc);
diff --git a/drivers/gpu/drm/shmobile/shmob_drm_drv.c b/drivers/gpu/drm/shmobile/shmob_drm_drv.c
index 04e66e3751b4..7700ff172079 100644
--- a/drivers/gpu/drm/shmobile/shmob_drm_drv.c
+++ b/drivers/gpu/drm/shmobile/shmob_drm_drv.c
@@ -200,13 +200,6 @@  done:
 	return ret;
 }
 
-static void shmob_drm_preclose(struct drm_device *dev, struct drm_file *file)
-{
-	struct shmob_drm_device *sdev = dev->dev_private;
-
-	shmob_drm_crtc_cancel_page_flip(&sdev->crtc, file);
-}
-
 static irqreturn_t shmob_drm_irq(int irq, void *arg)
 {
 	struct drm_device *dev = arg;
@@ -266,7 +259,6 @@  static struct drm_driver shmob_drm_driver = {
 				| DRIVER_PRIME,
 	.load			= shmob_drm_load,
 	.unload			= shmob_drm_unload,
-	.preclose		= shmob_drm_preclose,
 	.set_busid		= drm_platform_set_busid,
 	.irq_handler		= shmob_drm_irq,
 	.get_vblank_counter	= drm_vblank_no_hw_counter,