• Krzysztof Kozlowski's avatar
    ASoC: codecs: tx-macro: split widgets per different LPASS versions · 051e8872
    Krzysztof Kozlowski authored
    TX macro codec differs slightly between different Qualcomm Low Power
    Audio SubSystem (LPASS) block versions.  In LPASS version 9.2 the
    register responsible for TX SMIC MUXn muxes is different, thus to
    properly support it, the driver needs to register different widgets per
    different LPASS version.
    
    Prepare for supporting this register difference by refactoring existing
    code:
    1. Move few widgets (TX SMIC MUXn, TX SWR_ADCn, TX SWR_DMICn) out of
       common 'tx_macro_dapm_widgets[]' array to a new per-variant specific
       array 'tx_macro_dapm_widgets_v9[]'.
    2. Move also related audio routes into new array.
    3. Store pointers to these variant-specific arrays in new variant-data
       structure 'tx_macro_data'.
    4. Add variant-specific widgets and routes in component probe, instead
       of driver probe.
    
    The change should have no real impact, except re-shuffling code and
    registering some widgets and audio routes in component probe, instead of
    driver probe.
    Signed-off-by: default avatarKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
    Link: https://msgid.link/r/20240226115925.53953-2-krzysztof.kozlowski@linaro.orgSigned-off-by: default avatarMark Brown <broonie@kernel.org>
    051e8872
lpass-tx-macro.c 72.8 KB