aboutsummaryrefslogtreecommitdiffstats
path: root/sound/pci
diff options
context:
space:
mode:
authorVitaliy Kulikov <Vitaliy.Kulikov@idt.com>2010-10-22 19:38:31 -0400
committerTakashi Iwai <tiwai@suse.de>2010-10-25 14:08:36 -0400
commit335e3b8687fa6832bd6a033f2c705786e4bfb92c (patch)
treeebef3333212b3426d83f366bfde287a0a1699e87 /sound/pci
parent506ecbca71d07fa327dd986be1682e90885678ee (diff)
ALSA: hda - Change BTL amp level on some HP notebooks
Some HP laptops have lower amplifier levels for speakers in comparison with headphone outputs. This patch changes the BTL amp level for these machines to balance both the speaker and headphone output levels. Signed-off-by: Vitaliy Kulikov <Vitaliy.Kulikov@idt.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
Diffstat (limited to 'sound/pci')
-rw-r--r--sound/pci/hda/patch_sigmatel.c78
1 files changed, 78 insertions, 0 deletions
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index 82ebeb9544fe..93fa59cc60ef 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -5326,6 +5326,82 @@ again:
5326 return 0; 5326 return 0;
5327} 5327}
5328 5328
5329static int stac92hd83xxx_set_system_btl_amp(struct hda_codec *codec)
5330{
5331 if (codec->vendor_id != 0x111d7605 &&
5332 codec->vendor_id != 0x111d76d1)
5333 return 0;
5334
5335 switch (codec->subsystem_id) {
5336 case 0x103c1618:
5337 case 0x103c1619:
5338 case 0x103c161a:
5339 case 0x103c161b:
5340 case 0x103c161c:
5341 case 0x103c161d:
5342 case 0x103c161e:
5343 case 0x103c161f:
5344 case 0x103c1620:
5345 case 0x103c1621:
5346 case 0x103c1622:
5347 case 0x103c1623:
5348
5349 case 0x103c162a:
5350 case 0x103c162b:
5351
5352 case 0x103c1630:
5353 case 0x103c1631:
5354
5355 case 0x103c1633:
5356
5357 case 0x103c1635:
5358
5359 case 0x103c164f:
5360
5361 case 0x103c1676:
5362 case 0x103c1677:
5363 case 0x103c1678:
5364 case 0x103c1679:
5365 case 0x103c167a:
5366 case 0x103c167b:
5367 case 0x103c167c:
5368 case 0x103c167d:
5369 case 0x103c167e:
5370 case 0x103c167f:
5371 case 0x103c1680:
5372 case 0x103c1681:
5373 case 0x103c1682:
5374 case 0x103c1683:
5375 case 0x103c1684:
5376 case 0x103c1685:
5377 case 0x103c1686:
5378 case 0x103c1687:
5379 case 0x103c1688:
5380 case 0x103c1689:
5381 case 0x103c168a:
5382 case 0x103c168b:
5383 case 0x103c168c:
5384 case 0x103c168d:
5385 case 0x103c168e:
5386 case 0x103c168f:
5387 case 0x103c1690:
5388 case 0x103c1691:
5389 case 0x103c1692:
5390
5391 case 0x103c3587:
5392 case 0x103c3588:
5393 case 0x103c3589:
5394 case 0x103c358a:
5395
5396 case 0x103c3667:
5397 case 0x103c3668:
5398 /* set BTL amp level to 13.43dB for louder speaker output */
5399 return snd_hda_codec_write_cache(codec, codec->afg, 0,
5400 0x7F4, 0x14);
5401 }
5402 return 0;
5403}
5404
5329static int patch_stac92hd83xxx(struct hda_codec *codec) 5405static int patch_stac92hd83xxx(struct hda_codec *codec)
5330{ 5406{
5331 struct sigmatel_spec *spec; 5407 struct sigmatel_spec *spec;
@@ -5452,6 +5528,8 @@ again:
5452 AC_VERB_SET_CONNECT_SEL, num_dacs); 5528 AC_VERB_SET_CONNECT_SEL, num_dacs);
5453 } 5529 }
5454 5530
5531 stac92hd83xxx_set_system_btl_amp(codec);
5532
5455 codec->proc_widget_hook = stac92hd_proc_hook; 5533 codec->proc_widget_hook = stac92hd_proc_hook;
5456 5534
5457 return 0; 5535 return 0;