mirror of
				https://github.com/Ysurac/openmptcprouter.git
				synced 2025-03-09 15:40:20 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			55 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| From d2868a558cdb5c5c00ecf8cf8f73f0bf68da7da7 Mon Sep 17 00:00:00 2001
 | |
| From: Eric Anholt <eric@anholt.net>
 | |
| Date: Mon, 5 Feb 2018 18:01:02 +0000
 | |
| Subject: [PATCH 119/432] drm/vc4: Fix warning about vblank interrupts before
 | |
|  DRM core is ready.
 | |
| 
 | |
| The SMICS interrupt fires continuously, but since it's 1/100 the rate
 | |
| of the USB interrupts, we don't really need a way to turn it off.  We
 | |
| do need to make sure that we don't tell DRM about it until DRM has
 | |
| asked for the interrupt at least once, because otherwise it will throw
 | |
| a warning at boot time.
 | |
| 
 | |
| Signed-off-by: Eric Anholt <eric@anholt.net>
 | |
| ---
 | |
|  drivers/gpu/drm/vc4/vc4_firmware_kms.c | 10 ++++++----
 | |
|  1 file changed, 6 insertions(+), 4 deletions(-)
 | |
| 
 | |
| diff --git a/drivers/gpu/drm/vc4/vc4_firmware_kms.c b/drivers/gpu/drm/vc4/vc4_firmware_kms.c
 | |
| index 7edb38953a6a..967a0bf5886b 100644
 | |
| --- a/drivers/gpu/drm/vc4/vc4_firmware_kms.c
 | |
| +++ b/drivers/gpu/drm/vc4/vc4_firmware_kms.c
 | |
| @@ -43,6 +43,7 @@ struct vc4_crtc {
 | |
|  
 | |
|  	struct drm_pending_vblank_event *event;
 | |
|  	u32 overscan[4];
 | |
| +	bool vblank_enabled;
 | |
|  };
 | |
|  
 | |
|  static inline struct vc4_crtc *to_vc4_crtc(struct drm_crtc *crtc)
 | |
| @@ -420,7 +421,8 @@ static irqreturn_t vc4_crtc_irq_handler(int irq, void *data)
 | |
|  
 | |
|  	if (stat & SMICS_INTERRUPTS) {
 | |
|  		writel(0, vc4_crtc->regs + SMICS);
 | |
| -		drm_crtc_handle_vblank(&vc4_crtc->base);
 | |
| +		if (vc4_crtc->vblank_enabled)
 | |
| +			drm_crtc_handle_vblank(&vc4_crtc->base);
 | |
|  		vc4_crtc_handle_page_flip(vc4_crtc);
 | |
|  		ret = IRQ_HANDLED;
 | |
|  	}
 | |
| @@ -443,9 +445,9 @@ static int vc4_page_flip(struct drm_crtc *crtc,
 | |
|  
 | |
|  static int vc4_fkms_enable_vblank(struct drm_crtc *crtc)
 | |
|  {
 | |
| -	/* XXX: Need a way to enable/disable the interrupt, to avoid
 | |
| -	 * DRM warnings at boot time.
 | |
| -	 */
 | |
| +	struct vc4_crtc *vc4_crtc = to_vc4_crtc(crtc);
 | |
| +
 | |
| +	vc4_crtc->vblank_enabled = true;
 | |
|  
 | |
|  	return 0;
 | |
|  }
 | |
| -- 
 | |
| 2.19.1
 | |
| 
 |