ASoC: core: Don't break component searching if both id and num_dai are 0
diff mbox

Message ID 1398078886-31505-1-git-send-email-Guangyu.Chen@freescale.com
State Accepted
Commit 3dcba280f739772a4156fbcdae39229d6bb5e02b
Headers show

Commit Message

Nicolin Chen April 21, 2014, 11:14 a.m. UTC
The commit e41975ed (ASoC: core: Fix the DAI name getting) added a break
within the "if (id < 0 || id >= pos->num_dai)" while the original design
of the search didn't break the loop if that condition contented but only
mark the ret error and let it go on to search the next component.

In a case like dmaengine which's not a dai but as a component sharing an
identical name with a dai, both the id and pos->num_dai here could be 0.
If we break the search, we may never find the dai we want as it might be
placed behind its dmaengine in the component list.

So this patch fixes the issue above by following the original design to
let the search carry on.

Signed-off-by: Nicolin Chen <Guangyu.Chen@freescale.com>
---
 sound/soc/soc-core.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Mark Brown April 23, 2014, 12:49 p.m. UTC | #1
On Mon, Apr 21, 2014 at 07:14:46PM +0800, Nicolin Chen wrote:
> The commit e41975ed (ASoC: core: Fix the DAI name getting) added a break
> within the "if (id < 0 || id >= pos->num_dai)" while the original design
> of the search didn't break the loop if that condition contented but only
> mark the ret error and let it go on to search the next component.

Applied, thanks.

Patch
diff mbox

diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index a17c047..82e9fdf 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -4591,7 +4591,7 @@  int snd_soc_of_get_dai_name(struct device_node *of_node,
 
 			if (id < 0 || id >= pos->num_dai) {
 				ret = -EINVAL;
-				break;
+				continue;
 			}
 
 			ret = 0;