diff options
Diffstat (limited to 'sound/pci/hda/patch_conexant.c')
| -rw-r--r-- | sound/pci/hda/patch_conexant.c | 15 | 
1 files changed, 15 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c index 194a28c5499..61682e1d09d 100644 --- a/sound/pci/hda/patch_conexant.c +++ b/sound/pci/hda/patch_conexant.c @@ -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;  }  |