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
|
#endif
|
||||||
}
|
}
|
||||||
spec->vmaster_nid = 0x13;
|
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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user