• Stephan Gerhold's avatar
    ASoC: qcom: Fix building APQ8016 machine driver without SOUNDWIRE · 0cbf1ecd
    Stephan Gerhold authored
    Older Qualcomm platforms like APQ8016 do not have hardware support for
    SoundWire, so kernel configurations made specifically for those platforms
    will usually not have CONFIG_SOUNDWIRE enabled.
    
    Unfortunately commit 8d89cf6f ("ASoC: qcom: cleanup and fix
    dependency of QCOM_COMMON") breaks those kernel configurations, because
    SOUNDWIRE is now a required dependency for SND_SOC_QCOM_COMMON (and in
    turn also SND_SOC_APQ8016_SBC). Trying to migrate such a kernel config
    silently disables SND_SOC_APQ8016_SBC and breaks audio functionality.
    
    The soundwire helpers in common.c are only used by two of the Qualcomm
    audio machine drivers, so building and requiring CONFIG_SOUNDWIRE for
    all platforms is unnecessary.
    
    There is no need to stuff all common code into a single module. Fix the
    issue by moving the soundwire helpers to a separate SND_SOC_QCOM_SDW
    module/option that is selected only by the machine drivers that make
    use of them. This also allows reverting the imply/depends changes from
    the previous fix because both SM8250 and SC8280XP already depend on
    SOUNDWIRE, so the soundwire helpers will be only built if SOUNDWIRE
    is really enabled.
    
    Cc: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
    Fixes: 8d89cf6f ("ASoC: qcom: cleanup and fix dependency of QCOM_COMMON")
    Signed-off-by: default avatarStephan Gerhold <stephan@gerhold.net>
    Link: https://lore.kernel.org/r/20221231115506.82991-1-stephan@gerhold.netSigned-off-by: default avatarMark Brown <broonie@kernel.org>
    0cbf1ecd
common.c 5.68 KB