aboutsummaryrefslogtreecommitdiffstats
path: root/sound
diff options
context:
space:
mode:
authorThomas Ryu <smilesr.ryu@samsung.com>2011-03-14 01:15:12 -0700
committerArve Hjønnevåg <arve@android.com>2011-11-17 17:53:31 -0800
commit46492b0c74ef696272ae867872236e20657d6d15 (patch)
tree12578acbf93acc69411cec6d9b73bd7004a1ae12 /sound
parenta35d23c1f7ee0ba6f501e95f3e477e4f53fd7e8a (diff)
downloadkernel_samsung_crespo-46492b0c74ef696272ae867872236e20657d6d15.zip
kernel_samsung_crespo-46492b0c74ef696272ae867872236e20657d6d15.tar.gz
kernel_samsung_crespo-46492b0c74ef696272ae867872236e20657d6d15.tar.bz2
ASOC: add CDMA specific clock settings
add CDMA specific clok settings to improve the sound quality in speaker phone or headset. Signed-off-by: Thomas Ryu <smilesr.ryu@samsung.com>
Diffstat (limited to 'sound')
-rwxr-xr-xsound/soc/codecs/wm8994_herring.c35
1 files changed, 28 insertions, 7 deletions
diff --git a/sound/soc/codecs/wm8994_herring.c b/sound/soc/codecs/wm8994_herring.c
index 19fab2f..6ba5381 100755
--- a/sound/soc/codecs/wm8994_herring.c
+++ b/sound/soc/codecs/wm8994_herring.c
@@ -2734,7 +2734,10 @@ void wm8994_set_voicecall_headset(struct snd_soc_codec *codec)
wm8994_write(codec, WM8994_POWER_MANAGEMENT_3, 0x0030);
- wm8994_write(codec, WM8994_AIF2_CLOCKING_1, 0x0019);
+ if (herring_is_cdma_wimax_dev())
+ wm8994_write(codec, WM8994_AIF2_CLOCKING_1, 0x0009);
+ else
+ wm8994_write(codec, WM8994_AIF2_CLOCKING_1, 0x0019);
if (!wm8994->dc_servo[DCS_VOICE]) {
wait_for_dc_servo(codec,
@@ -2888,7 +2891,10 @@ void wm8994_set_voicecall_headphone(struct snd_soc_codec *codec)
wm8994_write(codec, WM8994_POWER_MANAGEMENT_3, 0x0030);
- wm8994_write(codec, WM8994_AIF2_CLOCKING_1, 0x0019);
+ if (herring_is_cdma_wimax_dev())
+ wm8994_write(codec, WM8994_AIF2_CLOCKING_1, 0x0009);
+ else
+ wm8994_write(codec, WM8994_AIF2_CLOCKING_1, 0x0019);
if (!wm8994->dc_servo[DCS_VOICE]) {
wait_for_dc_servo(codec,
@@ -2974,7 +2980,10 @@ void wm8994_set_voicecall_speaker(struct snd_soc_codec *codec)
wm8994_write(codec, WM8994_POWER_MANAGEMENT_4,
WM8994_AIF2ADCL_ENA | WM8994_ADCL_ENA);
- wm8994_write(codec, WM8994_AIF2_CLOCKING_1, 0x0019);
+ if (herring_is_cdma_wimax_dev())
+ wm8994_write(codec, WM8994_AIF2_CLOCKING_1, 0x0009);
+ else
+ wm8994_write(codec, WM8994_AIF2_CLOCKING_1, 0x0019);
val = wm8994_read(codec, WM8994_SPEAKER_VOLUME_LEFT);
val &= ~(WM8994_SPKOUTL_MUTE_N_MASK);
@@ -3069,7 +3078,10 @@ void wm8994_set_voicecall_bluetooth(struct snd_soc_codec *codec)
wm8994_write(codec, WM8994_DAC2_RIGHT_MIXER_ROUTING,
WM8994_AIF2DACR_TO_DAC2R | WM8994_AIF1DAC1R_TO_DAC2R);
- wm8994_write(codec, WM8994_AIF2_CLOCKING_1, 0x0019);
+ if (herring_is_cdma_wimax_dev())
+ wm8994_write(codec, WM8994_AIF2_CLOCKING_1, 0x0009);
+ else
+ wm8994_write(codec, WM8994_AIF2_CLOCKING_1, 0x0019);
wm8994_write(codec, WM8994_DAC2_MIXER_VOLUMES, 0x000C);
@@ -3201,7 +3213,10 @@ void wm8994_set_voicecall_tty_vco(struct snd_soc_codec *codec)
wm8994_write(codec, WM8994_POWER_MANAGEMENT_3, 0x0030);
- wm8994_write(codec, WM8994_AIF2_CLOCKING_1, 0x0019);
+ if (herring_is_cdma_wimax_dev())
+ wm8994_write(codec, WM8994_AIF2_CLOCKING_1, 0x0009);
+ else
+ wm8994_write(codec, WM8994_AIF2_CLOCKING_1, 0x0019);
if (!wm8994->dc_servo[DCS_VOICE]) {
wait_for_dc_servo(codec,
@@ -3364,7 +3379,10 @@ void wm8994_set_voicecall_tty_hco(struct snd_soc_codec *codec)
WM8994_MIXOUTLVOL_ENA | WM8994_MIXOUTRVOL_ENA |
WM8994_MIXOUTL_ENA | WM8994_MIXOUTR_ENA);
- wm8994_write(codec, WM8994_AIF2_CLOCKING_1, 0x0019);
+ if (herring_is_cdma_wimax_dev())
+ wm8994_write(codec, WM8994_AIF2_CLOCKING_1, 0x0009);
+ else
+ wm8994_write(codec, WM8994_AIF2_CLOCKING_1, 0x0019);
if (!wm8994->dc_servo[DCS_VOICE]) {
wait_for_dc_servo(codec,
@@ -3525,7 +3543,10 @@ void wm8994_set_voicecall_tty_full(struct snd_soc_codec *codec)
wm8994_write(codec, WM8994_POWER_MANAGEMENT_3, 0x0030);
- wm8994_write(codec, WM8994_AIF2_CLOCKING_1, 0x0019);
+ if (herring_is_cdma_wimax_dev())
+ wm8994_write(codec, WM8994_AIF2_CLOCKING_1, 0x0009);
+ else
+ wm8994_write(codec, WM8994_AIF2_CLOCKING_1, 0x0019);
if (!wm8994->dc_servo[DCS_VOICE]) {
wait_for_dc_servo(codec,