Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 025f206c authored by Daniel T Chen's avatar Daniel T Chen Committed by Takashi Iwai
Browse files

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: default avatarMike Pontillo <pontillo@gmail.com>
Tested-by: default avatarMike Pontillo <pontillo@gmail.com>
Cc: <stable@kernel.org>
Signed-off-by: default avatarDaniel T Chen <crimsun@ubuntu.com>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent e3d2530a
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -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;
}