mirror of
https://github.com/edk2-porting/linux-next.git
synced 2024-12-28 15:13:55 +08:00
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:
parent
e3d2530a6c
commit
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;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user