• Lars-Peter Clausen's avatar
    ASoC: dapm: Add a few supply widget sanity checks · e409dfbf
    Lars-Peter Clausen authored
    Supply widgets are somewhat special and not all kinds of paths to or from
    supply widgets make sense. This patch adds a few sanity checks that errors
    out during the path instantiation for those invalid paths. This will prevent
    drivers to depend on weird behavior resulting from such paths as well as
    will allow the DAPM algorithms to assume that they never see such paths.
    
    This patch adds checks for the following three invalid types of paths:
    	* A path with a non-supply widget as a source connected to a supply
    	  widget as a sink. Such a path has no effect on either of the two
    	  connected widgets.
    	* Paths with a connected() callback that have a non-supply widget as the
    	  source. The DAPM algorithm only uses the conneceted() callback for
    	  supply widget power checks. And since it prevents caching of the DAPM
    	  state there is no intention to make it more generic as it has
    	  negative performance implications.
    	* Paths which connect a supply to a mixer or mux via a control. Controls
    	  are only meant to affect the routing of audio data.
    Signed-off-by: default avatarLars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    e409dfbf
soc-dapm.c 93.6 KB