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)
committerDom Cobley <popcornmix@gmail.com>
Mon, 21 Mar 2022 16:04:17 +0000 (16:04 +0000)
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 df29194..9a8efd2 100644 (file)
@@ -1692,10 +1692,12 @@ static int vc4_hdmi_audio_init(struct vc4_hdmi *vc4_hdmi)
        const __be32 *addr;
        int index;
        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;
        }