ASoC: rcar: skip disabled-SSI nodes
authorKuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Mon, 2 Oct 2017 07:37:32 +0000 (07:37 +0000)
committerMark Brown <broonie@kernel.org>
Tue, 3 Oct 2017 16:51:40 +0000 (09:51 -0700)
The current device tree representation of the R-Car SSI assumes that they
are numbered consecutively, starting from 0. Alas, this is not the case
with the R8A77995 (D3) SoC which SSI1/SSI2 aren't present. In order to
keep the existing device trees working, I'm suggesting to use a disabled
node for SSI0/SSI1. Teach the SSI probe to just skip disabled nodes.

Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Tested-by: Hiroyuki Yokoyama <hiroyuki.yokoyama.vx@renesas.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/sh/rcar/ssi.c

index fffc07e7262741781dbe1bf00e9acb05c3c5a766..03c2a1f02643b8eac6a56918a759b8fb95352f72 100644 (file)
@@ -1112,6 +1112,9 @@ int rsnd_ssi_probe(struct rsnd_priv *priv)
 
        i = 0;
        for_each_child_of_node(node, np) {
 
        i = 0;
        for_each_child_of_node(node, np) {
+               if (!of_device_is_available(np))
+                       goto skip;
+
                ssi = rsnd_ssi_get(priv, i);
 
                snprintf(name, RSND_SSI_NAME_SIZE, "%s.%d",
                ssi = rsnd_ssi_get(priv, i);
 
                snprintf(name, RSND_SSI_NAME_SIZE, "%s.%d",
@@ -1148,7 +1151,7 @@ int rsnd_ssi_probe(struct rsnd_priv *priv)
                        of_node_put(np);
                        goto rsnd_ssi_probe_done;
                }
                        of_node_put(np);
                        goto rsnd_ssi_probe_done;
                }
-
+skip:
                i++;
        }
 
                i++;
        }