• C
    ASoC: Add info callback for SX_TLV controls · 34198710
    Charles Keepax 提交于
    SX_TLV controls are intended for situations where the register behind
    the control has some non-zero value indicating the minimum gain
    and then gains increasing from there and eventually overflowing through
    zero.
    
    Currently every CODEC implementing these controls specifies the minimum
    as the non-zero value for the minimum and the maximum as the number of
    gain settings available.
    
    This means when the info callback subtracts the minimum value from the
    maximum value to calculate the number of gain levels available it is
    actually under reporting the available levels. This patch fixes this
    issue by adding a new snd_soc_info_volsw_sx callback that does not
    subtract the minimum value.
    
    Fixes: 1d99f243 ("ASoC: core: Rework SOC_DOUBLE_R_SX_TLV add SOC_SINGLE_SX_TLV")
    Signed-off-by: NCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
    Acked-by: NBrian Austin <brian.austin@cirrus.com>
    Tested-by: NBrian Austin <brian.austin@cirrus.com>
    Signed-off-by: NMark Brown <broonie@kernel.org>
    Cc: stable@vger.kernel.org
    34198710
soc-ops.c 25.6 KB