Skip to content

Commit

Permalink
ASoC: core: Don't defer probe on optional, NULL components
Browse files Browse the repository at this point in the history
cpu and platform are optional components in DAI links. For example
codec-codec links usually have no platform set.

Call snd_soc_find_component only if the name or of_node of
a cpu or platform is set. Otherwise it will return NULL and
soc_init_dai_link bails out immediately with -EPROBE_DEFER,
meaning registering a card with NULL cpu or platform in DAI links
can never succeed.

Fixes: 8780cf1 ("ASoC: soc-core: defer card probe until all component is added to list")

Signed-off-by: Matthias Reichl <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
  • Loading branch information
HiassofT authored and broonie committed Jan 15, 2019
1 parent 5a7b2aa commit 2833548
Showing 1 changed file with 4 additions and 2 deletions.
6 changes: 4 additions & 2 deletions sound/soc/soc-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -1135,7 +1135,8 @@ static int soc_init_dai_link(struct snd_soc_card *card,
* Defer card registartion if platform dai component is not added to
* component list.
*/
if (!soc_find_component(link->platform->of_node, link->platform->name))
if ((link->platform->of_node || link->platform->name) &&
!soc_find_component(link->platform->of_node, link->platform->name))
return -EPROBE_DEFER;

/*
Expand All @@ -1154,7 +1155,8 @@ static int soc_init_dai_link(struct snd_soc_card *card,
* Defer card registartion if cpu dai component is not added to
* component list.
*/
if (!soc_find_component(link->cpu_of_node, link->cpu_name))
if ((link->cpu_of_node || link->cpu_name) &&
!soc_find_component(link->cpu_of_node, link->cpu_name))
return -EPROBE_DEFER;

/*
Expand Down

0 comments on commit 2833548

Please sign in to comment.