ALSA: hda: Fix 0 dB offset for HP laptops using CX20551 (Waikiki)
BugLink: https://launchpad.net/bugs/420578 The OR has verified that his hardware distorts because of the 0 dB offset not corresponding to the highest PCM level. Fix this by capping said PCM level to 0 dB similarly to what we do for CX20549 (Venice). Reported-by: Mike Pontillo <pontillo@gmail.com> Tested-by: Mike Pontillo <pontillo@gmail.com> Cc: <stable@kernel.org> Signed-off-by: Daniel T Chen <crimsun@ubuntu.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
Родитель
e3d2530a6c
Коммит
025f206c9e
|
@ -1591,6 +1591,21 @@ static int patch_cxt5047(struct hda_codec *codec)
|
|||
#endif
|
||||
}
|
||||
spec->vmaster_nid = 0x13;
|
||||
|
||||
switch (codec->subsystem_id >> 16) {
|
||||
case 0x103c:
|
||||
/* HP laptops have really bad sound over 0 dB on NID 0x10.
|
||||
* Fix max PCM level to 0 dB (originally it has 0x1e steps
|
||||
* with 0 dB offset 0x17)
|
||||
*/
|
||||
snd_hda_override_amp_caps(codec, 0x10, HDA_INPUT,
|
||||
(0x17 << AC_AMPCAP_OFFSET_SHIFT) |
|
||||
(0x17 << AC_AMPCAP_NUM_STEPS_SHIFT) |
|
||||
(0x05 << AC_AMPCAP_STEP_SIZE_SHIFT) |
|
||||
(1 << AC_AMPCAP_MUTE_SHIFT));
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
Загрузка…
Ссылка в новой задаче