Patch "ASoC: rsnd: Fix probe failure on HiHope boards due to endpoint parsing" has been added to the 6.11-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    ASoC: rsnd: Fix probe failure on HiHope boards due to endpoint parsing

to the 6.11-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     asoc-rsnd-fix-probe-failure-on-hihope-boards-due-to-.patch
and it can be found in the queue-6.11 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 0479c879de7b75053f5d412845b7673f6419d120
Author: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx>
Date:   Thu Oct 10 15:14:32 2024 +0100

    ASoC: rsnd: Fix probe failure on HiHope boards due to endpoint parsing
    
    [ Upstream commit 9b064d200aa8fee9d1d7ced05d8a617e45966715 ]
    
    On the HiHope boards, we have a single port with a single endpoint defined
    as below:
    ....
            rsnd_port: port {
                    rsnd_endpoint: endpoint {
                            remote-endpoint = <&dw_hdmi0_snd_in>;
    
                            dai-format = "i2s";
                            bitclock-master = <&rsnd_endpoint>;
                            frame-master = <&rsnd_endpoint>;
    
                            playback = <&ssi2>;
                    };
            };
    ....
    
    With commit 547b02f74e4a ("ASoC: rsnd: enable multi Component support for
    Audio Graph Card/Card2"), support for multiple ports was added. This caused
    probe failures on HiHope boards, as the endpoint could not be retrieved due
    to incorrect device node pointers being used.
    
    This patch fixes the issue by updating the `rsnd_dai_of_node()` and
    `rsnd_dai_probe()` functions to use the correct device node pointers based
    on the port names ('port' or 'ports'). It ensures that the endpoint is
    properly parsed for both single and multi-port configurations, restoring
    compatibility with HiHope boards.
    
    Fixes: 547b02f74e4a ("ASoC: rsnd: enable multi Component support for Audio Graph Card/Card2")
    Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx>
    Acked-by: Kuninori Morimoto <kuninori.morimoto.gx@xxxxxxxxxxx>
    Link: https://patch.msgid.link/20241010141432.716868-1-prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx
    Signed-off-by: Mark Brown <broonie@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/sound/soc/sh/rcar/core.c b/sound/soc/sh/rcar/core.c
index 63b3c8bf0fdef..eda8de2264395 100644
--- a/sound/soc/sh/rcar/core.c
+++ b/sound/soc/sh/rcar/core.c
@@ -1298,7 +1298,9 @@ static int rsnd_dai_of_node(struct rsnd_priv *priv, int *is_graph)
 		if (!of_node_name_eq(ports, "ports") &&
 		    !of_node_name_eq(ports, "port"))
 			continue;
-		priv->component_dais[i] = of_graph_get_endpoint_count(ports);
+		priv->component_dais[i] =
+			of_graph_get_endpoint_count(of_node_name_eq(ports, "ports") ?
+						    ports : np);
 		nr += priv->component_dais[i];
 		i++;
 		if (i >= RSND_MAX_COMPONENT) {
@@ -1510,7 +1512,8 @@ static int rsnd_dai_probe(struct rsnd_priv *priv)
 			if (!of_node_name_eq(ports, "ports") &&
 			    !of_node_name_eq(ports, "port"))
 				continue;
-			for_each_endpoint_of_node(ports, dai_np) {
+			for_each_endpoint_of_node(of_node_name_eq(ports, "ports") ?
+						  ports : np, dai_np) {
 				__rsnd_dai_probe(priv, dai_np, dai_np, 0, dai_i);
 				if (!rsnd_is_gen1(priv) && !rsnd_is_gen2(priv)) {
 					rdai = rsnd_rdai_get(priv, dai_i);




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux