drm/vc4: A present but empty dmas disables audio
authorPhil Elwell <phil@raspberrypi.org>
Wed, 31 Jul 2019 16:36:34 +0000 (17:36 +0100)
committerpopcornmix <popcornmix@gmail.com>
Wed, 1 Jul 2020 15:33:03 +0000 (16:33 +0100)
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

index d5f5ba4..0c3d9d2 100644 (file)
@@ -1066,10 +1066,12 @@ static int vc4_hdmi_audio_init(struct vc4_hdmi *hdmi)
        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;
        }