ASoC: mediatek: mt6359: Fix DT parse error due to wrong child node name
authorLouis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
Fri, 28 Feb 2025 10:32:19 +0000 (11:32 +0100)
committerMark Brown <broonie@kernel.org>
Tue, 4 Mar 2025 12:27:11 +0000 (12:27 +0000)
A recent dtbs_check error fix in mt6359.dtsi file changed a node name
(from "mt6359codec" to "audio-codec") without modifying the mt6539
codec code that uses it.
It leads to a probe failure after devicetree parsing returns in error:
```
[    1.354025] mt6359-sound mt6359-sound: mt6359_platform_driver_probe() failed to parse dts
[    1.355066] mt6359-sound mt6359-sound: probe with driver mt6359-sound failed with error -22
```

So, add the child node retrieval with the new name and if not found,
try with the older one for backward compatibility.

Fixes: 76b35f59bbe6 ("arm64: dts: mediatek: mt6359: fix dtbs_check error for audio-codec")
Signed-off-by: Louis-Alexis Eyraud <louisalexis.eyraud@collabora.com>
Reviewed-by: NĂ­colas F. R. A. Prado <nfraprado@collabora.com>
Link: https://patch.msgid.link/20250228-mt6359-fix-probe-failed-v1-1-64941d387b2c@collabora.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/mt6359.c

index 0b76a55664b0352f6ee2d0f3c96466ffe1df2d6d..f73120c6a6ce680797a1f61841815ca01a24adf4 100644 (file)
@@ -2867,9 +2867,12 @@ static int mt6359_parse_dt(struct mt6359_priv *priv)
        struct device *dev = priv->dev;
        struct device_node *np;
 
-       np = of_get_child_by_name(dev->parent->of_node, "mt6359codec");
-       if (!np)
-               return -EINVAL;
+       np = of_get_child_by_name(dev->parent->of_node, "audio-codec");
+       if (!np) {
+               np = of_get_child_by_name(dev->parent->of_node, "mt6359codec");
+               if (!np)
+                       return -EINVAL;
+       }
 
        ret = of_property_read_u32(np, "mediatek,dmic-mode",
                                   &priv->dmic_one_wire_mode);