• Mark Brown's avatar
    ASoC: core: Always store of_node when getting DAI link component · 2d0cad04
    Mark Brown authored
    The generic snd_soc_dai_get_dlc() contains a default translation function
    for DAI names which has factored out common code in a number of card
    drivers, resolving the dai_name and of_node either using a driver provided
    translation function or with a generic implementation. Unfortunately the
    of_node can't be set by the translation function since it currently doesn't
    have an interface to do that but snd_soc_dai_get_dlc() only initialises the
    of_node in the case where there is no translation function.
    
    This breaks the Meson support after conversion to use the generic helpers
    since the DPCM cards for it check which component of the SoC is connected
    to each link by checking the compatible for the component and the Meson
    components provide a custom operation so don't use the generic code.
    
    Fix this and potentially other cards by unconditionally storing the node in
    the dai_link_component, there shouldn't be a binding specific of_node
    selected since that's how we determine the translation function.
    
    Fixes: 2e1dbea1 ("ASoC: meson: use snd_soc_{of_}get_dlc()")
    Fixes: 3c8b5861 ("ASoC: soc-core.c: add index on snd_soc_of_get_dai_name()")
    Link: https://lore.kernel.org/r/Message-Id: <20230623-asoc-fix-meson-probe-v1-1-82b2c2ec5ca4@kernel.org>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    2d0cad04
soc-core.c 86.9 KB