• R
    ASoC: avoid duplicated DAI routes · 19c2c5f5
    Russell King 提交于
    ASoC automatically creates snd_soc_dapm_dai_in and snd_soc_dapm_dai_out
    widgets for DAI drivers, and adds them to the list.  Later on, ASoC
    creates automatic routes between these widgets and a widget with a
    stream name.
    
    We look for a snd_soc_dapm_dai_in or snd_soc_dapm_dai_out widget, and
    use this to obtain the DAI structure.  We then scan all widgets for
    any with a stream name refering to either the capture or the playback
    stream, and create routes.
    
    If you have both a snd_soc_dapm_dai_in and a snd_soc_dapm_dai_out
    referring to the same DAI structure, this ends up creating one set of
    routes for the DAI for the snd_soc_dapm_dai_in widget, and a duplicated
    set of routes for the snd_soc_dapm_dai_out widget.
    
    Fix this by checking that the stream name for the widget matches the
    DAI widget name.
    Signed-off-by: NRussell King <rmk+kernel@arm.linux.org.uk>
    Signed-off-by: NMark Brown <broonie@linaro.org>
    19c2c5f5
soc-dapm.c 96.3 KB