Skip to content
  • Lars-Peter Clausen's avatar
    ASoC: Add DAPM support at the component level · ce0fc93a
    Lars-Peter Clausen authored
    
    
    This patch adds full DAPM support at the component level. Previously there was
    only full DAPM support for CODECs and partial DAPM support (e.g. no Mixers nor
    MUXs) for platforms. Having DAPM support at the component level will allow all
    types of components to use DAPM and also help in consolidating the DAPM support
    between CODECs and platforms.
    
    Since the DAPM context is directly embedded into the snd_soc_codec and
    snd_soc_platform struct and the 'dapm' field is directly referenced in a lot of
    drivers moving the field just right now is not possible without causing code
    churn. The approach this patch takes is to add two new fields to the component
    struct. One field which is the pointer to the actual DAPM context used by the
    component and one DAPM context that will be used as the default if no other
    context was specified. For CODECs and platforms the pointer is initialized to
    point to the CODEC or platform DAPM context. All generic code when referencing
    a component's DAPM struct will go via the pointer. This will make it possible to
    eventually seamlessly move the DAPM context from snd_soc_codec and
    snd_soc_platform struct over once all direct references have been eliminated.
    
    Signed-off-by: default avatarLars-Peter Clausen <lars@metafoo.de>
    Signed-off-by: default avatarMark Brown <broonie@linaro.org>
    ce0fc93a