brcm2708: update to latest patches from RPi foundation
[openwrt/staging/chunkeey.git] / target / linux / brcm2708 / patches-4.19 / 950-0748-drm-vc4-Added-calls-for-firmware-display-blank-unbla.patch
diff --git a/target/linux/brcm2708/patches-4.19/950-0748-drm-vc4-Added-calls-for-firmware-display-blank-unbla.patch b/target/linux/brcm2708/patches-4.19/950-0748-drm-vc4-Added-calls-for-firmware-display-blank-unbla.patch
deleted file mode 100644 (file)
index fbfcd74..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-From ebb8a4e93e242311d319098ea56e4ef4d92c4d19 Mon Sep 17 00:00:00 2001
-From: James Hughes <james.hughes@raspberrypi.org>
-Date: Wed, 16 Oct 2019 14:49:23 +0100
-Subject: [PATCH] drm:vc4 Added calls for firmware display
- blank/unblank
-
-Requires new display power mailbox call to be present.
-
-Signed-off-by: James Hughes <james.hughes@raspberrypi.org>
----
- drivers/gpu/drm/vc4/vc4_firmware_kms.c     | 25 ++++++++++++++++++++++
- include/soc/bcm2835/raspberrypi-firmware.h |  2 +-
- 2 files changed, 26 insertions(+), 1 deletion(-)
-
---- a/drivers/gpu/drm/vc4/vc4_firmware_kms.c
-+++ b/drivers/gpu/drm/vc4/vc4_firmware_kms.c
-@@ -91,6 +91,12 @@ struct mailbox_blank_display {
-       u32 blank;
- };
-+struct mailbox_display_pwr {
-+      struct rpi_firmware_property_tag_header tag1;
-+      u32 display;
-+      u32 state;
-+};
-+
- struct mailbox_get_edid {
-       struct rpi_firmware_property_tag_header tag1;
-       u32 block;
-@@ -272,6 +278,7 @@ struct vc4_fkms_encoder {
-       struct drm_encoder base;
-       bool hdmi_monitor;
-       bool rgb_range_selectable;
-+      int display_num;
- };
- static inline struct vc4_fkms_encoder *
-@@ -1613,13 +1620,29 @@ static const struct drm_encoder_funcs vc
-       .destroy = vc4_fkms_encoder_destroy,
- };
-+static void vc4_fkms_display_power(struct drm_encoder *encoder, bool power)
-+{
-+      struct vc4_fkms_encoder *vc4_encoder = to_vc4_fkms_encoder(encoder);
-+      struct vc4_dev *vc4 = to_vc4_dev(encoder->dev);
-+
-+      struct mailbox_display_pwr pwr = {
-+              .tag1 = {RPI_FIRMWARE_SET_DISPLAY_POWER, 8, 0, },
-+              .display = vc4_encoder->display_num,
-+              .state = power ? 1 : 0,
-+      };
-+
-+      rpi_firmware_property_list(vc4->firmware, &pwr, sizeof(pwr));
-+}
-+
- static void vc4_fkms_encoder_enable(struct drm_encoder *encoder)
- {
-+      vc4_fkms_display_power(encoder, true);
-       DRM_DEBUG_KMS("Encoder_enable\n");
- }
- static void vc4_fkms_encoder_disable(struct drm_encoder *encoder)
- {
-+      vc4_fkms_display_power(encoder, false);
-       DRM_DEBUG_KMS("Encoder_disable\n");
- }
-@@ -1695,6 +1718,8 @@ static int vc4_fkms_create_screen(struct
-       if (!vc4_encoder)
-               return -ENOMEM;
-       vc4_crtc->encoder = &vc4_encoder->base;
-+
-+      vc4_encoder->display_num = display_ref;
-       vc4_encoder->base.possible_crtcs |= drm_crtc_mask(crtc) ;
-       drm_encoder_init(drm, &vc4_encoder->base, &vc4_fkms_encoder_funcs,
---- a/include/soc/bcm2835/raspberrypi-firmware.h
-+++ b/include/soc/bcm2835/raspberrypi-firmware.h
-@@ -155,7 +155,7 @@ enum rpi_firmware_property_tag {
-       RPI_FIRMWARE_GET_DISPLAY_TIMING =                     0x00040017,
-       RPI_FIRMWARE_SET_TIMING =                             0x00048017,
-       RPI_FIRMWARE_GET_DISPLAY_CFG =                        0x00040018,
--
-+      RPI_FIRMWARE_SET_DISPLAY_POWER =                      0x00048019,
-       RPI_FIRMWARE_GET_COMMAND_LINE =                       0x00050001,
-       RPI_FIRMWARE_GET_DMA_CHANNELS =                       0x00060001,
- };