diff options
Diffstat (limited to 'target/linux/bcm27xx/patches-5.4/950-0249-drm-vc4-handle-the-case-where-there-are-no-available.patch')
-rw-r--r-- | target/linux/bcm27xx/patches-5.4/950-0249-drm-vc4-handle-the-case-where-there-are-no-available.patch | 67 |
1 files changed, 0 insertions, 67 deletions
diff --git a/target/linux/bcm27xx/patches-5.4/950-0249-drm-vc4-handle-the-case-where-there-are-no-available.patch b/target/linux/bcm27xx/patches-5.4/950-0249-drm-vc4-handle-the-case-where-there-are-no-available.patch deleted file mode 100644 index 72b205c2e4..0000000000 --- a/target/linux/bcm27xx/patches-5.4/950-0249-drm-vc4-handle-the-case-where-there-are-no-available.patch +++ /dev/null @@ -1,67 +0,0 @@ -From 1fbbd377bd1c6b4e3342d03091f19089ccb7fcbe Mon Sep 17 00:00:00 2001 -From: Jonathan Bell <jonathan@raspberrypi.org> -Date: Tue, 28 May 2019 13:56:06 +0100 -Subject: [PATCH] drm: vc4: handle the case where there are no - available displays - -It's reasonable for the firmware to return zero as the number of -attached displays. Handle this case as otherwise drm thinks that -the DSI panel is attached, which is nonsense. - -Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org> ---- - drivers/gpu/drm/vc4/vc4_firmware_kms.c | 32 +++++++++++++++----------- - 1 file changed, 18 insertions(+), 14 deletions(-) - ---- a/drivers/gpu/drm/vc4/vc4_firmware_kms.c -+++ b/drivers/gpu/drm/vc4/vc4_firmware_kms.c -@@ -1303,13 +1303,13 @@ static int vc4_fkms_bind(struct device * - RPI_FIRMWARE_FRAMEBUFFER_GET_NUM_DISPLAYS, - &num_displays, sizeof(u32)); - -- /* If we fail to get the number of displays, or it returns 0, then -+ /* If we fail to get the number of displays, then - * assume old firmware that doesn't have the mailbox call, so just - * set one display - */ -- if (ret || num_displays == 0) { -+ if (ret) { - num_displays = 1; -- DRM_WARN("Unable to determine number of displays's. Assuming 1\n"); -+ DRM_WARN("Unable to determine number of displays - assuming 1\n"); - ret = 0; - } - -@@ -1338,17 +1338,21 @@ static int vc4_fkms_bind(struct device * - display_num); - } - -- /* Map the SMI interrupt reg */ -- crtc_list[0]->regs = vc4_ioremap_regs(pdev, 0); -- if (IS_ERR(crtc_list[0]->regs)) -- DRM_ERROR("Oh dear, failed to map registers\n"); -- -- writel(0, crtc_list[0]->regs + SMICS); -- ret = devm_request_irq(dev, platform_get_irq(pdev, 0), -- vc4_crtc_irq_handler, 0, "vc4 firmware kms", -- crtc_list); -- if (ret) -- DRM_ERROR("Oh dear, failed to register IRQ\n"); -+ if (num_displays > 0) { -+ /* Map the SMI interrupt reg */ -+ crtc_list[0]->regs = vc4_ioremap_regs(pdev, 0); -+ if (IS_ERR(crtc_list[0]->regs)) -+ DRM_ERROR("Oh dear, failed to map registers\n"); -+ -+ writel(0, crtc_list[0]->regs + SMICS); -+ ret = devm_request_irq(dev, platform_get_irq(pdev, 0), -+ vc4_crtc_irq_handler, 0, -+ "vc4 firmware kms", crtc_list); -+ if (ret) -+ DRM_ERROR("Oh dear, failed to register IRQ\n"); -+ } else { -+ DRM_WARN("No displays found. Consider forcing hotplug if HDMI is attached\n"); -+ } - - platform_set_drvdata(pdev, crtc_list); - |