[PATCH 1/1] arm64: dts: rockchip: disable analog audio for rock-5b

From: Pratham Patel
Date: Sun Mar 24 2024 - 02:28:40 EST


The addition of `of: property: fw_devlink: Fix stupid bug in remote-endpoint parsing`
has surfaced an issue with the analog audio property in the devicetree
for the rock-5b. Booting kernels v6.7.9+ and v6.8.0+ would cause the
following call trace:

[ 21.595068] Call trace:
[ 21.595288] smp_call_function_many_cond+0x174/0x5f8
[ 21.595728] on_each_cpu_cond_mask+0x2c/0x40
[ 21.596109] cpuidle_register_driver+0x294/0x318
[ 21.596524] cpuidle_register+0x24/0x100
[ 21.596875] psci_cpuidle_probe+0x2e4/0x490
[ 21.597247] platform_probe+0x70/0xd0
[ 21.597575] really_probe+0x18c/0x3d8
[ 21.597905] __driver_probe_device+0x84/0x180
[ 21.598294] driver_probe_device+0x44/0x120
[ 21.598669] __device_attach_driver+0xc4/0x168
[ 21.599063] bus_for_each_drv+0x8c/0xf0
[ 21.599408] __device_attach+0xa4/0x1c0
[ 21.599748] device_initial_probe+0x1c/0x30
[ 21.600118] bus_probe_device+0xb4/0xc0
[ 21.600462] device_add+0x68c/0x888
[ 21.600775
] platform_device_add+0x19c/0x270
[ 21.601154] platform_device_register_full+0xdc/0x178
[ 21.601602] psci_idle_init+0xa0/0xc8
[ 21.601934] do_one_initcall+0x60/0x290
[ 21.602275] kernel_init_freeable+0x20c/0x3e0
[ 21.602664] kernel_init+0x2c/0x1f8
[ 21.602979] ret_from_fork+0x10/0x20

This is a temporary workaround to at least have the SBC boot. There are
a few more SBCs that _might_ have this issue. I suspect that the
rock-5a and nanopc-t6 might also have this issue but I do not own either
board to verify this claim, yet.

Closes: https://lore.kernel.org/regressions/28S1EMw5YOnQIBpQ8_qaZZ6c9Go-j6-lLuWWbRpe6-MtRUd7Ay-uXq8JHbVVtJv3LzpxjI8jYg7ukNntbN22PVV-hOWbuTY8FNWgvM4zSwI=@thefossguy.com/T/#m69eedea6fbcb0591d54a9ccd478c2782ef045547

Signed-off-by: Pratham Patel <prathampatel@xxxxxxxxxxxxxx>
---
.../boot/dts/rockchip/rk3588-rock-5b.dts | 110 +++++++++---------
1 file changed, 57 insertions(+), 53 deletions(-)

diff --git a/arch/arm64/boot/d
ts/rockchip/rk3588-rock-5b.dts b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts
index 1fe8b2a0e..6d3b9f52c 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588-rock-5b.dts
@@ -20,22 +20,24 @@ chosen {
stdout-path = "serial2:1500000n8";
};

- analog-sound {
- compatible = "audio-graph-card";
- label = "rk3588-es8316";
-
- widgets = "Microphone", "Mic Jack",
- "Headphone", "Headphones";
-
- routing = "MIC2", "Mic Jack",
- "Headphones", "HPOL",
- "Headphones", "HPOR";
-
- dais = <&i2s0_8ch_p0>;
- hp-det-gpio = <&gpio1 RK_PD5 GPIO_ACTIVE_HIGH>;
- pinctrl-names = "default";
- pinctrl-0 = <&hp_detect>;
- };
+ /*
+ *analog-sound {
+ * compatible = "audio-graph-card";
+ * label = "rk3588-es8316";
+ *
+ * widgets = "Microphone", "Mic Jack",
+ * "Headphone", "Headphones";
+ *
+ * routing = "MIC2", "Mic Jack",
+ * "Headphones", "HPOL",
+ * "Headphones", "HPOR";
+ *

+ * dais = <&i2s0_8ch_p0>;
+ * hp-det-gpio = <&gpio1 RK_PD5 GPIO_ACTIVE_HIGH>;
+ * pinctrl-names = "default";
+ * pinctrl-0 = <&hp_detect>;
+ *};
+ */

leds {
compatible = "gpio-leds";
@@ -236,43 +238,45 @@ hym8563: rtc@51 {
};
};

-&i2c7 {
- status = "okay";
-
- es8316: audio-codec@11 {
- compatible = "everest,es8316";
- reg = <0x11>;
- clocks = <&cru I2S0_8CH_MCLKOUT>;
- clock-names = "mclk";
- assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;
- assigned-clock-rates = <12288000>;
- #sound-dai-cells = <0>;
-
- port {
- es8316_p0_0: endpoint {
- remote-endpoint = <&i2s0_8ch_p0_0>;
- };
- };
- };
-};
-
-&i2s0_8ch {
- pinctrl-names = "default";
- pinctrl-0 = <&i2s0_lrck
- &i2s0_mclk
- &i2s0_sclk
- &i2s0_sdi0
- &i2s0_sdo0>;
- status = "okay";
-
- i2s0_8ch_p0: port {
- i2s0_8ch_p0_0: endpoint {
- dai-format = "i2s";
- mclk-fs = <256>;
- remote-endpoint = <&es8316_p0_0>;
- };
- };
-};

+/*
+ *&i2c7 {
+ * status = "okay";
+ *
+ * es8316: audio-codec@11 {
+ * compatible = "everest,es8316";
+ * reg = <0x11>;
+ * clocks = <&cru I2S0_8CH_MCLKOUT>;
+ * clock-names = "mclk";
+ * assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;
+ * assigned-clock-rates = <12288000>;
+ * #sound-dai-cells = <0>;
+ *
+ * port {
+ * es8316_p0_0: endpoint {
+ * remote-endpoint = <&i2s0_8ch_p0_0>;
+ * };
+ * };
+ * };
+ *};
+ *
+ *&i2s0_8ch {
+ * pinctrl-names = "default";
+ * pinctrl-0 = <&i2s0_lrck
+ * &i2s0_mclk
+ * &i2s0_sclk
+ * &i2s0_sdi0
+ * &i2s0_sdo0>;
+ * status = "okay";
+ *
+ * i2s0_8ch_p0: port {
+ * i2s0_8ch_p0_0: endpoint {
+ * dai-format = "i2s";
+ * mclk-fs = <256>;
+ * remote-endpoint = <&es8316_p0_0>;
+ * };
+ * };
+ *};
+ */

&pcie2x1l0 {
pinctrl-names = "default";
--
2.42.0

Attachment: publickey - prathampatel@thefossguy.com - f2dde54d.asc
Description: application/pgp-keys

Attachment: signature.asc
Description: OpenPGP digital signature