ASoC: Updates for v3.10

A few small updates, one small core fix and several simple driver ones.
 The wm8962 changes are a little large but are pretty important.
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.12 (GNU/Linux)
 
 iQIcBAABAgAGBQJRyDFoAAoJELSic+t+oim9KmgQAJDG70fT2KXnGNpw9ASqGGHc
 2u1nM1s2lndyF0Hix+tfLSR8KIfHpJzaPRwMir7eXy4BOn71vIaeimcnz6pq2K5H
 6ji5mPOIouFcy3y+HqIYNfn7aST64PTeZCSdk7yDPtVNCdX5dhmoDS0G2xqsBHwa
 1kioU5Ju5Gq0w/1Q/2JkCwq8u3d/UV/w1vMZSRdPUThQbOJcsbfPWwvb+x6DV1g4
 wb0xh/knOkUS4NnWmTSeEKCp5rR0XW4PEnNMWaUWMi7Vqpsw5dqdlU2t90ChraIw
 6RMoV2RN5kZg20B8+ZKMVEEn1ACK3kP4UEHAHXt2QDjhmdZSTCC7RJ/THaYAoTL5
 keIqg8Sp7pb07n1nw+Ix6G4amHaqA9EybVbMMKujo2WfHhSz9nRJN/6iOTOT7iko
 P3qCAjZhYlX9Fdt6lrAg6LF5OPCBYSgG1c96mIl03nmIV8tdmC755fJ/Y4T3KV2b
 R19hM4dFgVUVwfUlNvRNnof1xK7vR7RVJtpgmqkTtdXAQsC+0tJTYectJNHsu4CG
 sdkDlcvLZR52124cs2SBygXtroBGtlqqU0g8EA8A343wVGbDehP0RKqQ+Th6boSW
 gWcWmpePFYcCyRmhvtlrtJdglc6ydRiqS4suFRjg83cwXGLRACrZlUmY1q5JuSXy
 pPdKKzZgjpVxYFUnBtEm
 =h2Ep
 -----END PGP SIGNATURE-----

Merge tag 'asoc-v3.10-rc7' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus

ASoC: Updates for v3.10

A few small updates, one small core fix and several simple driver ones.
The wm8962 changes are a little large but are pretty important.
This commit is contained in:
Takashi Iwai 2013-06-24 14:09:35 +02:00
commit 1c6770a38a
4 changed files with 28 additions and 13 deletions

View File

@ -19,7 +19,7 @@ config SND_SOC_ALL_CODECS
select SND_SOC_AD1980 if SND_SOC_AC97_BUS
select SND_SOC_AD73311
select SND_SOC_ADAU1373 if I2C
select SND_SOC_ADAV80X
select SND_SOC_ADAV80X if SND_SOC_I2C_AND_SPI
select SND_SOC_ADS117X
select SND_SOC_AK4104 if SPI_MASTER
select SND_SOC_AK4535 if I2C

View File

@ -1600,7 +1600,6 @@ static int wm8962_put_hp_sw(struct snd_kcontrol *kcontrol,
struct snd_ctl_elem_value *ucontrol)
{
struct snd_soc_codec *codec = snd_kcontrol_chip(kcontrol);
u16 *reg_cache = codec->reg_cache;
int ret;
/* Apply the update (if any) */
@ -1609,16 +1608,19 @@ static int wm8962_put_hp_sw(struct snd_kcontrol *kcontrol,
return 0;
/* If the left PGA is enabled hit that VU bit... */
if (snd_soc_read(codec, WM8962_PWR_MGMT_2) & WM8962_HPOUTL_PGA_ENA)
return snd_soc_write(codec, WM8962_HPOUTL_VOLUME,
reg_cache[WM8962_HPOUTL_VOLUME]);
ret = snd_soc_read(codec, WM8962_PWR_MGMT_2);
if (ret & WM8962_HPOUTL_PGA_ENA) {
snd_soc_write(codec, WM8962_HPOUTL_VOLUME,
snd_soc_read(codec, WM8962_HPOUTL_VOLUME));
return 1;
}
/* ...otherwise the right. The VU is stereo. */
if (snd_soc_read(codec, WM8962_PWR_MGMT_2) & WM8962_HPOUTR_PGA_ENA)
return snd_soc_write(codec, WM8962_HPOUTR_VOLUME,
reg_cache[WM8962_HPOUTR_VOLUME]);
if (ret & WM8962_HPOUTR_PGA_ENA)
snd_soc_write(codec, WM8962_HPOUTR_VOLUME,
snd_soc_read(codec, WM8962_HPOUTR_VOLUME));
return 0;
return 1;
}
/* The VU bits for the speakers are in a different register to the mute
@ -3374,7 +3376,6 @@ static int wm8962_probe(struct snd_soc_codec *codec)
int ret;
struct wm8962_priv *wm8962 = snd_soc_codec_get_drvdata(codec);
struct wm8962_pdata *pdata = dev_get_platdata(codec->dev);
u16 *reg_cache = codec->reg_cache;
int i, trigger, irq_pol;
bool dmicclk, dmicdat;
@ -3432,8 +3433,9 @@ static int wm8962_probe(struct snd_soc_codec *codec)
/* Put the speakers into mono mode? */
if (pdata->spk_mono)
reg_cache[WM8962_CLASS_D_CONTROL_2]
|= WM8962_SPK_MONO;
snd_soc_update_bits(codec, WM8962_CLASS_D_CONTROL_2,
WM8962_SPK_MONO_MASK, WM8962_SPK_MONO);
/* Micbias setup, detection enable and detection
* threasholds. */
@ -3721,6 +3723,17 @@ static int wm8962_runtime_resume(struct device *dev)
regcache_sync(wm8962->regmap);
regmap_update_bits(wm8962->regmap, WM8962_ANTI_POP,
WM8962_STARTUP_BIAS_ENA | WM8962_VMID_BUF_ENA,
WM8962_STARTUP_BIAS_ENA | WM8962_VMID_BUF_ENA);
/* Bias enable at 2*5k (fast start-up) */
regmap_update_bits(wm8962->regmap, WM8962_PWR_MGMT_1,
WM8962_BIAS_ENA | WM8962_VMID_SEL_MASK,
WM8962_BIAS_ENA | 0x180);
msleep(5);
return 0;
}

View File

@ -279,7 +279,7 @@ static const struct soc_enum wm_adsp2_rate_enum[] = {
ARIZONA_DSP1_RATE_SHIFT, 0xf,
ARIZONA_RATE_ENUM_SIZE,
arizona_rate_text, arizona_rate_val),
SOC_VALUE_ENUM_SINGLE(ARIZONA_DSP3_CONTROL_1,
SOC_VALUE_ENUM_SINGLE(ARIZONA_DSP4_CONTROL_1,
ARIZONA_DSP1_RATE_SHIFT, 0xf,
ARIZONA_RATE_ENUM_SIZE,
arizona_rate_text, arizona_rate_val),

View File

@ -64,6 +64,7 @@ static int dapm_up_seq[] = {
[snd_soc_dapm_virt_mux] = 5,
[snd_soc_dapm_value_mux] = 5,
[snd_soc_dapm_dac] = 6,
[snd_soc_dapm_switch] = 7,
[snd_soc_dapm_mixer] = 7,
[snd_soc_dapm_mixer_named_ctl] = 7,
[snd_soc_dapm_pga] = 8,
@ -83,6 +84,7 @@ static int dapm_down_seq[] = {
[snd_soc_dapm_line] = 2,
[snd_soc_dapm_out_drv] = 2,
[snd_soc_dapm_pga] = 4,
[snd_soc_dapm_switch] = 5,
[snd_soc_dapm_mixer_named_ctl] = 5,
[snd_soc_dapm_mixer] = 5,
[snd_soc_dapm_dac] = 6,