forked from Minki/linux
Sound fixes for 3.5-rc6
Just a few driver-specific fixes for ASoC and HD-audio. -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.19 (GNU/Linux) iQIcBAABAgAGBQJP8utuAAoJEGwxgFQ9KSmkG9kQAI3mh986pLpPCnSQq76KOvRJ 1zPk+X+zAAGKJjbPGidZjH1zt5CrYpH40PX/X6/mteCRY6nHdeIL0NQwfThAQvxs +7xwjf35tlpS9+atvGTlSEWkDB3XgQ+llUixfuN5dZ5QAdA1hDABHlJqZNxuNHa0 NBgQ0UghAWUvSZ3ibf2Tv6d3CH4IRAvyATEqaTz20m6bnv3kUFBfCtuT9BbMg0Wm Y7dPWylSgr8ERjHpSGIov/hpi9+AtJgxudRS4bOMgUarDqmGLoA2GMlH6wTQ8lHW HSZywRBJFXlYYhBvKbM+hf48ghN0CeLlRXKmHmOBoEafPTYso+B6+cvloK2g07qo V+R65jCgXqTu2eaRvSkzn+t1p+K0ZwWqcfniFJ4n7RKi2nx+yKztBDDG0ZdciH+Y AlKDyRvRoqavSTajrpr9Ii90Q1bm6yVRguQj0AwFpeCPpmvBHtr/uHafwWYuZVF2 7oVAHKt39YsYxJYGiEARRieBUSHkwLDOqzys1z1+0fc+widO91nHh52aVZ+eALOi BIi7W86eLoQt7ltM817P7jaz0R61Cg/PsRHt8ZbpySkTJELINS8A2Kuqnf/nYchx o1c1vbcoTjWUnHJBmdbI13WrmOu+tOT8X+YwHdMTgtLt4BVKq/+oJ1hB8Om+QXpe V8qtG0RII+Hxt7ecQrcC =iN3h -----END PGP SIGNATURE----- Merge tag 'sound-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound Pull sound fixes from Takashi Iwai: "Just a few driver-specific fixes for ASoC and HD-audio." * tag 'sound-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/tiwai/sound: ALSA: hda - Fix no sound from ALC662 after Windows reboot ASoC: tlv320aic3x: Fix codec pll configure bug ASoC: wm2200: Add missing BCLK rate
This commit is contained in:
commit
ff826b2b5b
@ -6688,6 +6688,31 @@ static const struct alc_model_fixup alc662_fixup_models[] = {
|
||||
{}
|
||||
};
|
||||
|
||||
static void alc662_fill_coef(struct hda_codec *codec)
|
||||
{
|
||||
int val, coef;
|
||||
|
||||
coef = alc_get_coef0(codec);
|
||||
|
||||
switch (codec->vendor_id) {
|
||||
case 0x10ec0662:
|
||||
if ((coef & 0x00f0) == 0x0030) {
|
||||
val = alc_read_coef_idx(codec, 0x4); /* EAPD Ctrl */
|
||||
alc_write_coef_idx(codec, 0x4, val & ~(1<<10));
|
||||
}
|
||||
break;
|
||||
case 0x10ec0272:
|
||||
case 0x10ec0273:
|
||||
case 0x10ec0663:
|
||||
case 0x10ec0665:
|
||||
case 0x10ec0670:
|
||||
case 0x10ec0671:
|
||||
case 0x10ec0672:
|
||||
val = alc_read_coef_idx(codec, 0xd); /* EAPD Ctrl */
|
||||
alc_write_coef_idx(codec, 0xd, val | (1<<14));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
*/
|
||||
@ -6707,6 +6732,9 @@ static int patch_alc662(struct hda_codec *codec)
|
||||
|
||||
alc_fix_pll_init(codec, 0x20, 0x04, 15);
|
||||
|
||||
spec->init_hook = alc662_fill_coef;
|
||||
alc662_fill_coef(codec);
|
||||
|
||||
alc_pick_fixup(codec, alc662_fixup_models,
|
||||
alc662_fixup_tbl, alc662_fixups);
|
||||
alc_apply_fixup(codec, ALC_FIXUP_ACT_PRE_PROBE);
|
||||
|
@ -935,9 +935,7 @@ static int aic3x_hw_params(struct snd_pcm_substream *substream,
|
||||
}
|
||||
|
||||
found:
|
||||
data = snd_soc_read(codec, AIC3X_PLL_PROGA_REG);
|
||||
snd_soc_write(codec, AIC3X_PLL_PROGA_REG,
|
||||
data | (pll_p << PLLP_SHIFT));
|
||||
snd_soc_update_bits(codec, AIC3X_PLL_PROGA_REG, PLLP_MASK, pll_p);
|
||||
snd_soc_write(codec, AIC3X_OVRF_STATUS_AND_PLLR_REG,
|
||||
pll_r << PLLR_SHIFT);
|
||||
snd_soc_write(codec, AIC3X_PLL_PROGB_REG, pll_j << PLLJ_SHIFT);
|
||||
|
@ -166,6 +166,7 @@
|
||||
|
||||
/* PLL registers bitfields */
|
||||
#define PLLP_SHIFT 0
|
||||
#define PLLP_MASK 7
|
||||
#define PLLQ_SHIFT 3
|
||||
#define PLLR_SHIFT 0
|
||||
#define PLLJ_SHIFT 2
|
||||
|
@ -1491,6 +1491,7 @@ static int wm2200_bclk_rates_dat[WM2200_NUM_BCLK_RATES] = {
|
||||
|
||||
static int wm2200_bclk_rates_cd[WM2200_NUM_BCLK_RATES] = {
|
||||
5644800,
|
||||
3763200,
|
||||
2882400,
|
||||
1881600,
|
||||
1411200,
|
||||
|
Loading…
Reference in New Issue
Block a user