diff options
author | Guillaume Munch <diabo@free.fr> | 2006-08-16 13:35:12 -0400 |
---|---|---|
committer | Jaroslav Kysela <perex@suse.cz> | 2006-09-23 04:41:14 -0400 |
commit | 99ccc560b73ff7381153dc1391d18391373931d3 (patch) | |
tree | 711cc97dab35104206c16a347e9213dd5ee58fb6 /sound/pci/hda/patch_sigmatel.c | |
parent | d244bf897b2e7933112067ec8d8dc1d47b86145f (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>
Diffstat (limited to 'sound/pci/hda/patch_sigmatel.c')
-rw-r--r-- | sound/pci/hda/patch_sigmatel.c | 29 |
1 files changed, 16 insertions, 13 deletions
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 */ |
1456 | static hda_nid_t vaio_dacs[] = { 0x2 }; | 1456 | static hda_nid_t vaio_dacs[] = { 0x2 }; |
1457 | #define VAIO_HP_DAC 0x5 | 1457 | #define VAIO_HP_DAC 0x5 |
1458 | static hda_nid_t vaio_adcs[] = { 0x8 /*,0x6*/ }; | 1458 | static hda_nid_t vaio_adcs[] = { 0x8 /*,0x6*/ }; |
@@ -1552,7 +1552,7 @@ static struct snd_kcontrol_new vaio_mixer[] = { | |||
1552 | {} | 1552 | {} |
1553 | }; | 1553 | }; |
1554 | 1554 | ||
1555 | static struct hda_codec_ops stac7661_patch_ops = { | 1555 | static 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 | ||
1565 | enum { STAC7661_VAIO }; | 1565 | enum { STAC766x_VAIO }; |
1566 | 1566 | ||
1567 | static struct hda_board_config stac7661_cfg_tbl[] = { | 1567 | static 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 | ||
1576 | static int patch_stac7661(struct hda_codec *codec) | 1578 | static 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 | }; |