ASoC: dapm: Fix handling of loops
authorMark Brown <broonie@opensource.wolfsonmicro.com>
Fri, 22 Feb 2013 17:48:15 +0000 (17:48 +0000)
committerMark Brown <broonie@opensource.wolfsonmicro.com>
Mon, 25 Feb 2013 13:51:22 +0000 (13:51 +0000)
commit8af294b472067e9034fe288d912455cc0961d1b9
treeb066db8681e6220a3b8ddbc83d2f820a7450fb4e
parent19f949f52599ba7c3f67a5897ac6be14bfcb1200
ASoC: dapm: Fix handling of loops

Currently if a path loops back on itself we correctly skip over it to
avoid going into an infinite loop but this causes us to ignore the need
to power up the path as we don't count the loop for the purposes of
counting inputs and outputs. This means that internal loopbacks within a
device that have powered devices on them won't be powered up.

Fix this by treating any path that is currently in the process of being
recursed as having a single input or output so that it is counted for
the purposes of power decisions.

Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Acked-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
include/sound/soc-dapm.h
sound/soc/soc-dapm.c