brcm2708: update to latest patches from RPi foundation
[openwrt/openwrt.git] / target / linux / brcm2708 / patches-4.19 / 950-0630-drm-vc4-A-present-but-empty-dmas-disables-audio.patch
diff --git a/target/linux/brcm2708/patches-4.19/950-0630-drm-vc4-A-present-but-empty-dmas-disables-audio.patch b/target/linux/brcm2708/patches-4.19/950-0630-drm-vc4-A-present-but-empty-dmas-disables-audio.patch
new file mode 100644 (file)
index 0000000..2d38456
--- /dev/null
@@ -0,0 +1,33 @@
+From 8befbf55f2668a4dae739588ed3c0b0d06fccacd Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.org>
+Date: Wed, 31 Jul 2019 17:36:34 +0100
+Subject: [PATCH] drm/vc4: A present but empty dmas disables audio
+
+Overlays are unable to remove properties in the base DTB, but they
+can overwrite them. Allow a present but empty 'dmas' property
+to also disable the HDMI audio interface.
+
+See: https://github.com/raspberrypi/linux/issues/2489
+
+Signed-off-by: Phil Elwell <phil@raspberrypi.org>
+---
+ drivers/gpu/drm/vc4/vc4_hdmi.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+--- a/drivers/gpu/drm/vc4/vc4_hdmi.c
++++ b/drivers/gpu/drm/vc4/vc4_hdmi.c
+@@ -1087,10 +1087,12 @@ static int vc4_hdmi_audio_init(struct vc
+       struct device *dev = &hdmi->pdev->dev;
+       const __be32 *addr;
+       int ret;
++      int len;
+-      if (!of_find_property(dev->of_node, "dmas", NULL)) {
++      if (!of_find_property(dev->of_node, "dmas", &len) ||
++          len == 0) {
+               dev_warn(dev,
+-                       "'dmas' DT property is missing, no HDMI audio\n");
++                       "'dmas' DT property is missing or empty, no HDMI audio\n");
+               return 0;
+       }