brcm2708: rename target to bcm27xx
[openwrt/staging/chunkeey.git] / target / linux / brcm2708 / patches-4.19 / 950-0541-drm-vc4-handle-the-case-where-there-are-no-available.patch
diff --git a/target/linux/brcm2708/patches-4.19/950-0541-drm-vc4-handle-the-case-where-there-are-no-available.patch b/target/linux/brcm2708/patches-4.19/950-0541-drm-vc4-handle-the-case-where-there-are-no-available.patch
deleted file mode 100644 (file)
index 346d32e..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-From dd99aa50a3ea7f7fe1ddfd59b1a2e969c744b8a0 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
-@@ -1309,13 +1309,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;
-       }
-@@ -1344,17 +1344,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);