• Lars-Peter Clausen's avatar
    ASoC: dapm: Don't add prefix to widget stream name · a798c24a
    Lars-Peter Clausen authored
    Commit fdb6eb0a ("ASoC: dapm: Modify widget stream name according to
    prefix") fixed the case where a DAPM route between a DAI widget and a
    DAC/ADC/AIF widget with a matching stream name was not created when the
    DAPM context was using a prefix.
    
    Unfortunately the patch introduced a few issues on its own like leaking the
    dynamically allocated stream name memory and also not checking whether the
    allocation succeeded in the first place.
    
    It is also incomplete in that it still does not handle the case where
    stream name of the widget is a substring of the stream name of the DAI,
    which is explicitly allowed and works fine if no DAPM prefix is used.
    
    Revert the commit and take a slightly different approach to solving the
    issue. Instead of comparing the widget's stream name to the name of the DAI
    widget compare it to the stream name of the DAI widget. The stream name of
    the DAI widget is identical to the name of the DAI widget except that it
    wont have the DAPM prefix added. So this approach behaves identical
    regardless to whether the DAPM context uses a prefix or not.
    
    We don't have to worry about potentially matching with a widget with the
    same stream name, but from a different DAPM context with a different
    prefix, since the code already makes sure that both the DAI widget and the
    matched widget are from the same DAPM context.
    
    Fixes: fdb6eb0a ("ASoC: dapm: Modify widget stream name according to prefix")
    Signed-off-by: default avatarLars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    Cc: stable@vger.kernel.org
    a798c24a
soc-dapm.c 105 KB