[PATCH v4 14/23] ASoC: soc-core: Probe auxiliary component before others
Sameer Pujar
spujar at nvidia.com
Sat Jun 27 06:53:36 CEST 2020
A router component can be added as an auxiliary device to the sound card
to help with audio routing across multiple components. DPCM dai links
use CPU<->Dummy or Dummy<->Codec style of links in simple-card driver and
hence do not have required DAI connections by default. Usually machine
driver can do the necessary mapping.
But if there is a crossbar switch HW which can connect multiple components,
it is expected to provide required user space configurability via MUX
controls. In such a case the crossbar can be represented as an independent
component and can be added as an auxiliary device. The exposed routing
interfaces can be used by other components in the system, thus probing it
first can avoid probe failures.
Signed-off-by: Sameer Pujar <spujar at nvidia.com>
---
sound/soc/soc-core.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index 8faca60..9041a03 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -1850,19 +1850,19 @@ static int snd_soc_bind_card(struct snd_soc_card *card)
if (ret < 0)
goto probe_end;
- /* probe all components used by DAI links on this card */
- ret = soc_probe_link_components(card);
+ /* probe auxiliary components */
+ ret = soc_probe_aux_devices(card);
if (ret < 0) {
dev_err(card->dev,
- "ASoC: failed to instantiate card %d\n", ret);
+ "ASoC: failed to probe aux component %d\n", ret);
goto probe_end;
}
- /* probe auxiliary components */
- ret = soc_probe_aux_devices(card);
+ /* probe all components used by DAI links on this card */
+ ret = soc_probe_link_components(card);
if (ret < 0) {
dev_err(card->dev,
- "ASoC: failed to probe aux component %d\n", ret);
+ "ASoC: failed to instantiate card %d\n", ret);
goto probe_end;
}
--
2.7.4
More information about the Alsa-devel
mailing list