aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/bcm27xx/patches-5.10/950-0255-snd_bcm2835-disable-HDMI-audio-when-vc4-is-used-3640.patch
blob: 50eccbfbd9f7cd6664e1eb4f1933067a3d5fe4fe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
From d9d1244f8aa9d776073e2a12e0cb9542d89bd3cb Mon Sep 17 00:00:00 2001
From: Hristo Venev <hristo@venev.name>
Date: Fri, 5 Jun 2020 09:22:49 +0000
Subject: [PATCH] snd_bcm2835: disable HDMI audio when vc4 is used
 (#3640)

Things don't work too well when both the vc4 driver and the firmware
driver are trying to control the same audio output:

[  763.569406] bcm2835_audio bcm2835_audio: vchi message timeout, msg=5

Hence, when the vc4 HDMI driver is used, let it control audio. This is done
by introducing a new device tree property to the audio node, and
extending the vc4-kms-v3d overlays to set it appropriately.

Signed-off-by: Hristo Venev <hristo@venev.name>
---
 drivers/staging/vc04_services/bcm2835-audio/bcm2835.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

--- a/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c
+++ b/drivers/staging/vc04_services/bcm2835-audio/bcm2835.c
@@ -381,7 +381,9 @@ static int snd_bcm2835_alsa_probe(struct
 	}
 
 	if (!enable_compat_alsa) {
-		set_hdmi_enables(dev);
+		if (!of_property_read_bool(dev->of_node, "brcm,disable-hdmi"))
+			set_hdmi_enables(dev);
+
 		// In this mode, always enable analog output
 		enable_headphones = true;
 	} else {