aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuillaume Munch <diabo@free.fr>2006-08-16 13:35:12 -0400
committerJaroslav Kysela <perex@suse.cz>2006-09-23 04:41:14 -0400
commit99ccc560b73ff7381153dc1391d18391373931d3 (patch)
tree711cc97dab35104206c16a347e9213dd5ee58fb6
parentd244bf897b2e7933112067ec8d8dc1d47b86145f (diff)
[ALSA] Add support for Sony Vaio AR 11B
This patch adds automatic detection for Sigmatel ID 7664, the sound chip in Sony Vaio AR 11B (european name). - patch_stac7661 becomes patch_stac766x - .id = 0x83847664 is added Signed-off-by: Guillaume Munch <diabo@free.fr> Signed-off-by: Takashi Iwai <tiwai@suse.de> Signed-off-by: Jaroslav Kysela <perex@suse.cz>
-rw-r--r--Documentation/sound/alsa/ALSA-Configuration.txt6
-rw-r--r--sound/pci/hda/patch_sigmatel.c29
2 files changed, 19 insertions, 16 deletions
diff --git a/Documentation/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt
index 74be228596ad..d7e95f144569 100644
--- a/Documentation/sound/alsa/ALSA-Configuration.txt
+++ b/Documentation/sound/alsa/ALSA-Configuration.txt
@@ -856,10 +856,10 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
856 3stack-dig ditto with SPDIF 856 3stack-dig ditto with SPDIF
857 laptop 3-jack with hp-jack automute 857 laptop 3-jack with hp-jack automute
858 laptop-dig ditto with SPDIF 858 laptop-dig ditto with SPDIF
859 auto auto-confgi reading BIOS (default) 859 auto auto-config reading BIOS (default)
860 860
861 STAC7661(?) 861 STAC7664/7661(?)
862 vaio Setup for VAIO FE550G/SZ110 862 vaio Setup for VAIO FE550G/SZ110/AR11B
863 863
864 If the default configuration doesn't work and one of the above 864 If the default configuration doesn't work and one of the above
865 matches with your device, report it together with the PCI 865 matches with your device, report it together with the PCI
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index d572f030c3e9..7eaf755b014b 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -1449,10 +1449,10 @@ static int patch_stac9205(struct hda_codec *codec)
1449} 1449}
1450 1450
1451/* 1451/*
1452 * STAC 7661(?) hack 1452 * STAC 7661(?) and 7664 hack
1453 */ 1453 */
1454 1454
1455/* static config for Sony VAIO FE550G */ 1455/* static config for Sony VAIO FE550G and Sony VAIO AR */
1456static hda_nid_t vaio_dacs[] = { 0x2 }; 1456static hda_nid_t vaio_dacs[] = { 0x2 };
1457#define VAIO_HP_DAC 0x5 1457#define VAIO_HP_DAC 0x5
1458static hda_nid_t vaio_adcs[] = { 0x8 /*,0x6*/ }; 1458static hda_nid_t vaio_adcs[] = { 0x8 /*,0x6*/ };
@@ -1552,7 +1552,7 @@ static struct snd_kcontrol_new vaio_mixer[] = {
1552 {} 1552 {}
1553}; 1553};
1554 1554
1555static struct hda_codec_ops stac7661_patch_ops = { 1555static struct hda_codec_ops stac766x_patch_ops = {
1556 .build_controls = stac92xx_build_controls, 1556 .build_controls = stac92xx_build_controls,
1557 .build_pcms = stac92xx_build_pcms, 1557 .build_pcms = stac92xx_build_pcms,
1558 .init = stac92xx_init, 1558 .init = stac92xx_init,
@@ -1562,23 +1562,25 @@ static struct hda_codec_ops stac7661_patch_ops = {
1562#endif 1562#endif
1563}; 1563};
1564 1564
1565enum { STAC7661_VAIO }; 1565enum { STAC766x_VAIO };
1566 1566
1567static struct hda_board_config stac7661_cfg_tbl[] = { 1567static struct hda_board_config stac766x_cfg_tbl[] = {
1568 { .modelname = "vaio", .config = STAC7661_VAIO }, 1568 { .modelname = "vaio", .config = STAC766x_VAIO },
1569 { .pci_subvendor = 0x104d, .pci_subdevice = 0x81e6, 1569 { .pci_subvendor = 0x104d, .pci_subdevice = 0x81e6,
1570 .config = STAC7661_VAIO }, 1570 .config = STAC766x_VAIO },
1571 { .pci_subvendor = 0x104d, .pci_subdevice = 0x81ef, 1571 { .pci_subvendor = 0x104d, .pci_subdevice = 0x81ef,
1572 .config = STAC7661_VAIO }, 1572 .config = STAC766x_VAIO },
1573 { .pci_subvendor = 0x104d, .pci_subdevice = 0x81fd,
1574 .config = STAC766x_VAIO },
1573 {} 1575 {}
1574}; 1576};
1575 1577
1576static int patch_stac7661(struct hda_codec *codec) 1578static int patch_stac766x(struct hda_codec *codec)
1577{ 1579{
1578 struct sigmatel_spec *spec; 1580 struct sigmatel_spec *spec;
1579 int board_config; 1581 int board_config;
1580 1582
1581 board_config = snd_hda_check_board_config(codec, stac7661_cfg_tbl); 1583 board_config = snd_hda_check_board_config(codec, stac766x_cfg_tbl);
1582 if (board_config < 0) 1584 if (board_config < 0)
1583 /* unknown config, let generic-parser do its job... */ 1585 /* unknown config, let generic-parser do its job... */
1584 return snd_hda_parse_generic_codec(codec); 1586 return snd_hda_parse_generic_codec(codec);
@@ -1589,7 +1591,7 @@ static int patch_stac7661(struct hda_codec *codec)
1589 1591
1590 codec->spec = spec; 1592 codec->spec = spec;
1591 switch (board_config) { 1593 switch (board_config) {
1592 case STAC7661_VAIO: 1594 case STAC766x_VAIO:
1593 spec->mixer = vaio_mixer; 1595 spec->mixer = vaio_mixer;
1594 spec->init = vaio_init; 1596 spec->init = vaio_init;
1595 spec->multiout.max_channels = 2; 1597 spec->multiout.max_channels = 2;
@@ -1603,7 +1605,7 @@ static int patch_stac7661(struct hda_codec *codec)
1603 break; 1605 break;
1604 } 1606 }
1605 1607
1606 codec->patch_ops = stac7661_patch_ops; 1608 codec->patch_ops = stac766x_patch_ops;
1607 return 0; 1609 return 0;
1608} 1610}
1609 1611
@@ -1635,7 +1637,7 @@ struct hda_codec_preset snd_hda_preset_sigmatel[] = {
1635 { .id = 0x83847627, .name = "STAC9271D", .patch = patch_stac927x }, 1637 { .id = 0x83847627, .name = "STAC9271D", .patch = patch_stac927x },
1636 { .id = 0x83847628, .name = "STAC9274X5NH", .patch = patch_stac927x }, 1638 { .id = 0x83847628, .name = "STAC9274X5NH", .patch = patch_stac927x },
1637 { .id = 0x83847629, .name = "STAC9274D5NH", .patch = patch_stac927x }, 1639 { .id = 0x83847629, .name = "STAC9274D5NH", .patch = patch_stac927x },
1638 { .id = 0x83847661, .name = "STAC7661", .patch = patch_stac7661 }, 1640 { .id = 0x83847661, .name = "STAC7661", .patch = patch_stac766x },
1639 { .id = 0x838476a0, .name = "STAC9205", .patch = patch_stac9205 }, 1641 { .id = 0x838476a0, .name = "STAC9205", .patch = patch_stac9205 },
1640 { .id = 0x838476a1, .name = "STAC9205D", .patch = patch_stac9205 }, 1642 { .id = 0x838476a1, .name = "STAC9205D", .patch = patch_stac9205 },
1641 { .id = 0x838476a2, .name = "STAC9204", .patch = patch_stac9205 }, 1643 { .id = 0x838476a2, .name = "STAC9204", .patch = patch_stac9205 },
@@ -1644,5 +1646,6 @@ struct hda_codec_preset snd_hda_preset_sigmatel[] = {
1644 { .id = 0x838476a5, .name = "STAC9255D", .patch = patch_stac9205 }, 1646 { .id = 0x838476a5, .name = "STAC9255D", .patch = patch_stac9205 },
1645 { .id = 0x838476a6, .name = "STAC9254", .patch = patch_stac9205 }, 1647 { .id = 0x838476a6, .name = "STAC9254", .patch = patch_stac9205 },
1646 { .id = 0x838476a7, .name = "STAC9254D", .patch = patch_stac9205 }, 1648 { .id = 0x838476a7, .name = "STAC9254D", .patch = patch_stac9205 },
1649 { .id = 0x83847664, .name = "STAC7664", .patch = patch_stac766x },
1647 {} /* terminator */ 1650 {} /* terminator */
1648}; 1651};