• Charles Keepax's avatar
    ASoC: dapm: Only power up active channels from a DAI · 078a85f2
    Charles Keepax authored
    Currently all widgets attached to a DAI link will be powered
    up when the DAI is active, however this may include routes
    that are not actually in use if there are unused channels
    available on the DAI.
    
    The macros for creating AIF widgets already include an entry for
    slot, it is proposed to change that to channel. The effective
    difference here being respresenting the logical channel index
    rather than the physical slot index. The CODECs currently
    using the slot entry on the DAPM_AIF macros are using it in
    a manner consistent with this, the CODECs not using it just
    have the field set to zero.
    
    A variable is added to snd_soc_dapm_widget to represent
    this channel index and then for each AIF widget attached to
    a DAI this is compared against the number of channels on
    the stream. Enabling the links for those which will be in
    use. This has the nice property that the CODECs which haven't
    used the slot/channel entry in the macro will function exactly
    as before due to all the AIF widgets having a channel of zero
    and a stream by definition having at least one channel.
    Signed-off-by: default avatarCharles Keepax <ckeepax@opensource.cirrus.com>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    078a85f2
soc-dapm.c 117 KB