diff options
Diffstat (limited to 'target/linux/bcm27xx/patches-4.19/950-0112-drm-vc4-Fix-warning-about-vblank-interrupts-before-D.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-4.19/950-0112-drm-vc4-Fix-warning-about-vblank-interrupts-before-D.patch | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/target/linux/bcm27xx/patches-4.19/950-0112-drm-vc4-Fix-warning-about-vblank-interrupts-before-D.patch b/target/linux/bcm27xx/patches-4.19/950-0112-drm-vc4-Fix-warning-about-vblank-interrupts-before-D.patch new file mode 100644 index 0000000000..43b200db16 --- /dev/null +++ b/target/linux/bcm27xx/patches-4.19/950-0112-drm-vc4-Fix-warning-about-vblank-interrupts-before-D.patch @@ -0,0 +1,50 @@ +From 36e1081459121883f9881a579c809c7b87895146 Mon Sep 17 00:00:00 2001 +From: Eric Anholt <eric@anholt.net> +Date: Mon, 5 Feb 2018 18:01:02 +0000 +Subject: [PATCH] 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(-) + +--- 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( + + 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 + + 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; + } |