OSDN Git Service

ASoC: mt8195: correct the dts parsing logic about DPTX and HDMITX
authorTrevor Wu <trevor.wu@mediatek.com>
Fri, 3 Sep 2021 06:00:49 +0000 (14:00 +0800)
committerMark Brown <broonie@kernel.org>
Fri, 3 Sep 2021 12:31:46 +0000 (13:31 +0100)
According to the description in dt-bindings, phandle assignment of
HDMI TX and DP TX are not required properties, but driver regards them
as required properties.
In real use case, it's expected that DP TX and HDMI TX are optional
features, so correct the behavior in driver.

Fixes: 40d605df0a7b ("ASoC: mediatek: mt8195: add machine driver with mt6359, rt1019 and rt5682")
Signed-off-by: Trevor Wu <trevor.wu@mediatek.com>
Link: https://lore.kernel.org/r/20210903060049.20764-1-trevor.wu@mediatek.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/mediatek/mt8195/mt8195-mt6359-rt1019-rt5682.c

index 5dc217f..c97ace7 100644 (file)
@@ -1018,13 +1018,12 @@ static int mt8195_mt6359_rt1019_rt5682_dev_probe(struct platform_device *pdev)
                                of_parse_phandle(pdev->dev.of_node,
                                                 "mediatek,dptx-codec", 0);
                        if (!dai_link->codecs->of_node) {
-                               dev_err(&pdev->dev, "Property 'dptx-codec' missing or invalid\n");
-                               return -EINVAL;
+                               dev_dbg(&pdev->dev, "No property 'dptx-codec'\n");
+                       } else {
+                               dai_link->codecs->name = NULL;
+                               dai_link->codecs->dai_name = "i2s-hifi";
+                               dai_link->init = mt8195_dptx_codec_init;
                        }
-
-                       dai_link->codecs->name = NULL;
-                       dai_link->codecs->dai_name = "i2s-hifi";
-                       dai_link->init = mt8195_dptx_codec_init;
                }
 
                if (strcmp(dai_link->name, "ETDM3_OUT_BE") == 0) {
@@ -1032,13 +1031,12 @@ static int mt8195_mt6359_rt1019_rt5682_dev_probe(struct platform_device *pdev)
                                of_parse_phandle(pdev->dev.of_node,
                                                 "mediatek,hdmi-codec", 0);
                        if (!dai_link->codecs->of_node) {
-                               dev_err(&pdev->dev, "Property 'hdmi-codec' missing or invalid\n");
-                               return -EINVAL;
+                               dev_dbg(&pdev->dev, "No property 'hdmi-codec'\n");
+                       } else {
+                               dai_link->codecs->name = NULL;
+                               dai_link->codecs->dai_name = "i2s-hifi";
+                               dai_link->init = mt8195_hdmi_codec_init;
                        }
-
-                       dai_link->codecs->name = NULL;
-                       dai_link->codecs->dai_name = "i2s-hifi";
-                       dai_link->init = mt8195_hdmi_codec_init;
                }
        }