diff options
Diffstat (limited to 'target/linux/brcm2708/patches-3.14/0050-Fix-volsw_range-functions-so-SOC_DOUBLE_R_RANGE_TLV-.patch')
-rw-r--r-- | target/linux/brcm2708/patches-3.14/0050-Fix-volsw_range-functions-so-SOC_DOUBLE_R_RANGE_TLV-.patch | 73 |
1 files changed, 0 insertions, 73 deletions
diff --git a/target/linux/brcm2708/patches-3.14/0050-Fix-volsw_range-functions-so-SOC_DOUBLE_R_RANGE_TLV-.patch b/target/linux/brcm2708/patches-3.14/0050-Fix-volsw_range-functions-so-SOC_DOUBLE_R_RANGE_TLV-.patch deleted file mode 100644 index de076303e3..0000000000 --- a/target/linux/brcm2708/patches-3.14/0050-Fix-volsw_range-functions-so-SOC_DOUBLE_R_RANGE_TLV-.patch +++ /dev/null @@ -1,73 +0,0 @@ -From a46efd685fc6c9676b68f02e8ef12c5821809364 Mon Sep 17 00:00:00 2001 -From: Howard Mitchell <hm@hmbedded.co.uk> -Date: Fri, 28 Mar 2014 16:27:57 +0000 -Subject: [PATCH 50/54] Fix volsw_range functions so SOC_DOUBLE_R_RANGE_TLV - works. - -This is so that the correct rabge of values as specified -with the SOC_DOUBLE_R_RANGE_TLV macro are sent to the -hardware for both the normal and invert cases. ---- - sound/soc/soc-core.c | 22 ++++++++++------------ - 1 file changed, 10 insertions(+), 12 deletions(-) - ---- a/sound/soc/soc-core.c -+++ b/sound/soc/soc-core.c -@@ -3038,8 +3038,8 @@ int snd_soc_info_volsw_range(struct snd_ - - uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER; - uinfo->count = snd_soc_volsw_is_stereo(mc) ? 2 : 1; -- uinfo->value.integer.min = 0; -- uinfo->value.integer.max = platform_max - min; -+ uinfo->value.integer.min = min; -+ uinfo->value.integer.max = platform_max; - - return 0; - } -@@ -3070,9 +3070,10 @@ int snd_soc_put_volsw_range(struct snd_k - unsigned int val, val_mask; - int ret; - -- val = ((ucontrol->value.integer.value[0] + min) & mask); - if (invert) -- val = max - val; -+ val = ((max - ucontrol->value.integer.value[0] + min) & mask); -+ else -+ val = (ucontrol->value.integer.value[0] & mask); - val_mask = mask << shift; - val = val << shift; - -@@ -3081,9 +3082,10 @@ int snd_soc_put_volsw_range(struct snd_k - return ret; - - if (snd_soc_volsw_is_stereo(mc)) { -- val = ((ucontrol->value.integer.value[1] + min) & mask); - if (invert) -- val = max - val; -+ val = ((max - ucontrol->value.integer.value[1] + min) & mask); -+ else -+ val = (ucontrol->value.integer.value[1] & mask); - val_mask = mask << shift; - val = val << shift; - -@@ -3121,18 +3123,14 @@ int snd_soc_get_volsw_range(struct snd_k - (snd_soc_read(codec, reg) >> shift) & mask; - if (invert) - ucontrol->value.integer.value[0] = -- max - ucontrol->value.integer.value[0]; -- ucontrol->value.integer.value[0] = -- ucontrol->value.integer.value[0] - min; -+ max - ucontrol->value.integer.value[0] + min; - - if (snd_soc_volsw_is_stereo(mc)) { - ucontrol->value.integer.value[1] = - (snd_soc_read(codec, rreg) >> shift) & mask; - if (invert) - ucontrol->value.integer.value[1] = -- max - ucontrol->value.integer.value[1]; -- ucontrol->value.integer.value[1] = -- ucontrol->value.integer.value[1] - min; -+ max - ucontrol->value.integer.value[1] + min; - } - - return 0; |