diff options
Diffstat (limited to 'target/linux/brcm2708/patches-4.19/950-0727-Fixup-FKMS-interrupt-handing-for-non-existent-displa.patch')
-rw-r--r-- | target/linux/brcm2708/patches-4.19/950-0727-Fixup-FKMS-interrupt-handing-for-non-existent-displa.patch | 39 |
1 files changed, 0 insertions, 39 deletions
diff --git a/target/linux/brcm2708/patches-4.19/950-0727-Fixup-FKMS-interrupt-handing-for-non-existent-displa.patch b/target/linux/brcm2708/patches-4.19/950-0727-Fixup-FKMS-interrupt-handing-for-non-existent-displa.patch deleted file mode 100644 index cf29f5b4dc..0000000000 --- a/target/linux/brcm2708/patches-4.19/950-0727-Fixup-FKMS-interrupt-handing-for-non-existent-displa.patch +++ /dev/null @@ -1,39 +0,0 @@ -From c2957d7709a43c81e5345d537feaa6980ffcc1a4 Mon Sep 17 00:00:00 2001 -From: James Hughes <james.hughes@raspberrypi.org> -Date: Mon, 29 Jul 2019 12:02:59 +0100 -Subject: [PATCH 727/806] Fixup FKMS interrupt handing for non-existent display - -If an errant interrupt flag was received from a non-existent display, -a NULL pointer access was made. Protect against this by checking if a -second display is present prior to checking the interrupt flags. ---- - drivers/gpu/drm/vc4/vc4_firmware_kms.c | 17 ++++++++++------- - 1 file changed, 10 insertions(+), 7 deletions(-) - ---- a/drivers/gpu/drm/vc4/vc4_firmware_kms.c -+++ b/drivers/gpu/drm/vc4/vc4_firmware_kms.c -@@ -1056,14 +1056,17 @@ static irqreturn_t vc4_crtc_irq_handler( - vc4_crtc_handle_page_flip(crtc_list[0]); - } - -- /* Check for the secondary display too */ -- chan = readl(crtc_list[0]->regs + SMIDSW1); -+ if (crtc_list[1]) { -+ /* Check for the secondary display too */ -+ chan = readl(crtc_list[0]->regs + SMIDSW1); - -- if (chan & 1) { -- writel(SMI_NEW, crtc_list[0]->regs + SMIDSW1); -- if (crtc_list[1]->vblank_enabled) -- drm_crtc_handle_vblank(&crtc_list[1]->base); -- vc4_crtc_handle_page_flip(crtc_list[1]); -+ if (chan & 1) { -+ writel(SMI_NEW, crtc_list[0]->regs + SMIDSW1); -+ -+ if (crtc_list[1]->vblank_enabled) -+ drm_crtc_handle_vblank(&crtc_list[1]->base); -+ vc4_crtc_handle_page_flip(crtc_list[1]); -+ } - } - } - |