aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sound/pci/hda/patch_sigmatel.c72
1 files changed, 33 insertions, 39 deletions
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index e70ef0505304..c05d4643afd5 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -55,7 +55,8 @@ enum {
55 STAC_9200_DELL_M25, 55 STAC_9200_DELL_M25,
56 STAC_9200_DELL_M26, 56 STAC_9200_DELL_M26,
57 STAC_9200_DELL_M27, 57 STAC_9200_DELL_M27,
58 STAC_9200_GATEWAY, 58 STAC_9200_M4,
59 STAC_9200_M4_2,
59 STAC_9200_PANASONIC, 60 STAC_9200_PANASONIC,
60 STAC_9200_MODELS 61 STAC_9200_MODELS
61}; 62};
@@ -100,8 +101,6 @@ enum {
100 STAC_M3, 101 STAC_M3,
101 STAC_M5, 102 STAC_M5,
102 STAC_M6, 103 STAC_M6,
103 STAC_MA6,
104 STAC_PA6,
105 STAC_925x_MODELS 104 STAC_925x_MODELS
106}; 105};
107 106
@@ -1375,7 +1374,16 @@ static unsigned int ref9200_pin_configs[8] = {
1375 0x02a19020, 0x01a19021, 0x90100140, 0x01813122, 1374 0x02a19020, 0x01a19021, 0x90100140, 0x01813122,
1376}; 1375};
1377 1376
1378/* 1377static unsigned int gateway9200_m4_pin_configs[8] = {
1378 0x400000fe, 0x404500f4, 0x400100f0, 0x90110010,
1379 0x400100f1, 0x02a1902e, 0x500000f2, 0x500000f3,
1380};
1381static unsigned int gateway9200_m4_2_pin_configs[8] = {
1382 0x400000fe, 0x404500f4, 0x400100f0, 0x90110010,
1383 0x400100f1, 0x02a1902e, 0x500000f2, 0x500000f3,
1384};
1385
1386/*
1379 STAC 9200 pin configs for 1387 STAC 9200 pin configs for
1380 102801A8 1388 102801A8
1381 102801DE 1389 102801DE
@@ -1505,6 +1513,8 @@ static unsigned int *stac9200_brd_tbl[STAC_9200_MODELS] = {
1505 [STAC_9200_DELL_M25] = dell9200_m25_pin_configs, 1513 [STAC_9200_DELL_M25] = dell9200_m25_pin_configs,
1506 [STAC_9200_DELL_M26] = dell9200_m26_pin_configs, 1514 [STAC_9200_DELL_M26] = dell9200_m26_pin_configs,
1507 [STAC_9200_DELL_M27] = dell9200_m27_pin_configs, 1515 [STAC_9200_DELL_M27] = dell9200_m27_pin_configs,
1516 [STAC_9200_M4] = gateway9200_m4_pin_configs,
1517 [STAC_9200_M4_2] = gateway9200_m4_2_pin_configs,
1508 [STAC_9200_PANASONIC] = ref9200_pin_configs, 1518 [STAC_9200_PANASONIC] = ref9200_pin_configs,
1509}; 1519};
1510 1520
@@ -1521,7 +1531,8 @@ static const char *stac9200_models[STAC_9200_MODELS] = {
1521 [STAC_9200_DELL_M25] = "dell-m25", 1531 [STAC_9200_DELL_M25] = "dell-m25",
1522 [STAC_9200_DELL_M26] = "dell-m26", 1532 [STAC_9200_DELL_M26] = "dell-m26",
1523 [STAC_9200_DELL_M27] = "dell-m27", 1533 [STAC_9200_DELL_M27] = "dell-m27",
1524 [STAC_9200_GATEWAY] = "gateway", 1534 [STAC_9200_M4] = "gateway-m4",
1535 [STAC_9200_M4_2] = "gateway-m4-2",
1525 [STAC_9200_PANASONIC] = "panasonic", 1536 [STAC_9200_PANASONIC] = "panasonic",
1526}; 1537};
1527 1538
@@ -1591,11 +1602,9 @@ static struct snd_pci_quirk stac9200_cfg_tbl[] = {
1591 /* Panasonic */ 1602 /* Panasonic */
1592 SND_PCI_QUIRK(0x10f7, 0x8338, "Panasonic CF-74", STAC_9200_PANASONIC), 1603 SND_PCI_QUIRK(0x10f7, 0x8338, "Panasonic CF-74", STAC_9200_PANASONIC),
1593 /* Gateway machines needs EAPD to be set on resume */ 1604 /* Gateway machines needs EAPD to be set on resume */
1594 SND_PCI_QUIRK(0x107b, 0x0205, "Gateway S-7110M", STAC_9200_GATEWAY), 1605 SND_PCI_QUIRK(0x107b, 0x0205, "Gateway S-7110M", STAC_9200_M4),
1595 SND_PCI_QUIRK(0x107b, 0x0317, "Gateway MT3423, MX341*", 1606 SND_PCI_QUIRK(0x107b, 0x0317, "Gateway MT3423, MX341*", STAC_9200_M4_2),
1596 STAC_9200_GATEWAY), 1607 SND_PCI_QUIRK(0x107b, 0x0318, "Gateway ML3019, MT3707", STAC_9200_M4_2),
1597 SND_PCI_QUIRK(0x107b, 0x0318, "Gateway ML3019, MT3707",
1598 STAC_9200_GATEWAY),
1599 /* OQO Mobile */ 1608 /* OQO Mobile */
1600 SND_PCI_QUIRK(0x1106, 0x3288, "OQO Model 2", STAC_9200_OQO), 1609 SND_PCI_QUIRK(0x1106, 0x3288, "OQO Model 2", STAC_9200_OQO),
1601 {} /* terminator */ 1610 {} /* terminator */
@@ -1610,46 +1619,37 @@ static unsigned int stac925xM1_pin_configs[8] = {
1610 0x40c003f4, 0x424503f2, 0x400000f3, 0x02a19020, 1619 0x40c003f4, 0x424503f2, 0x400000f3, 0x02a19020,
1611 0x40a000f0, 0x90100210, 0x400003f1, 0x9033032e, 1620 0x40a000f0, 0x90100210, 0x400003f1, 0x9033032e,
1612}; 1621};
1622
1613static unsigned int stac925xM1_2_pin_configs[8] = { 1623static unsigned int stac925xM1_2_pin_configs[8] = {
1614 0x40c003f4, 0x424503f2, 0x400000f3, 0x02a19020, 1624 0x40c003f4, 0x424503f2, 0x400000f3, 0x02a19020,
1615 0x40a000f0, 0x90100210, 0x400003f1, 0x9033032e, 1625 0x40a000f0, 0x90100210, 0x400003f1, 0x9033032e,
1616}; 1626};
1627
1617static unsigned int stac925xM2_pin_configs[8] = { 1628static unsigned int stac925xM2_pin_configs[8] = {
1618 0x40c003f4, 0x424503f2, 0x400000f3, 0x02a19020, 1629 0x40c003f4, 0x424503f2, 0x400000f3, 0x02a19020,
1619 0x40a000f0, 0x90100210, 0x400003f1, 0x9033032e, 1630 0x40a000f0, 0x90100210, 0x400003f1, 0x9033032e,
1620}; 1631};
1621 1632
1633static unsigned int stac925xM2_2_pin_configs[8] = {
1634 0x40c003f4, 0x424503f2, 0x400000f3, 0x02a19020,
1635 0x40a000f0, 0x90100210, 0x400003f1, 0x9033032e,
1636};
1637
1622static unsigned int stac925xM3_pin_configs[8] = { 1638static unsigned int stac925xM3_pin_configs[8] = {
1623 0x40c003f4, 0x424503f2, 0x400000f3, 0x02a19020, 1639 0x40c003f4, 0x424503f2, 0x400000f3, 0x02a19020,
1624 0x40a000f0, 0x90100210, 0x400003f1, 0x503303f3, 1640 0x40a000f0, 0x90100210, 0x400003f1, 0x503303f3,
1625}; 1641};
1642
1626static unsigned int stac925xM5_pin_configs[8] = { 1643static unsigned int stac925xM5_pin_configs[8] = {
1627 0x40c003f4, 0x424503f2, 0x400000f3, 0x02a19020, 1644 0x40c003f4, 0x424503f2, 0x400000f3, 0x02a19020,
1628 0x40a000f0, 0x90100210, 0x400003f1, 0x9033032e, 1645 0x40a000f0, 0x90100210, 0x400003f1, 0x9033032e,
1629}; 1646};
1630 1647
1631/* Original M6 entry at .ini file */
1632static unsigned int stac925xM6_pin_configs[8] = { 1648static unsigned int stac925xM6_pin_configs[8] = {
1633 0x40c003f4, 0x424503f2, 0x400000f3, 0x02a19020, 1649 0x40c003f4, 0x424503f2, 0x400000f3, 0x02a19020,
1634 0x40a000f0, 0x90100210, 0x400003f1, 0x90330320, 1650 0x40a000f0, 0x90100210, 0x400003f1, 0x90330320,
1635}; 1651};
1636 1652
1637static unsigned int stac925x_MA6_pin_configs[8] = {
1638 0x40c003f0, 0x424503f2, 0x01813022, 0x02a19021,
1639 0x90a70320, 0x90100211, 0x400003f1, 0x9033032e,
1640};
1641
1642/* This entry should be M2 */
1643static unsigned int stac925x_PA6_pin_configs[8] = {
1644 0x40c003f0, 0x424503f2, 0x01813022, 0x02a19021,
1645 0x50a103f0, 0x90100211, 0x400003f1, 0x9033032e,
1646};
1647
1648static unsigned int stac925xM2_2_pin_configs[8] = {
1649 0x40c003f3, 0x424503f2, 0x04180011, 0x02a19020,
1650 0x50a103f0, 0x90100212, 0x400003f1, 0x9033032e,
1651};
1652
1653static unsigned int *stac925x_brd_tbl[STAC_925x_MODELS] = { 1653static unsigned int *stac925x_brd_tbl[STAC_925x_MODELS] = {
1654 [STAC_REF] = ref925x_pin_configs, 1654 [STAC_REF] = ref925x_pin_configs,
1655 [STAC_M1] = stac925xM1_pin_configs, 1655 [STAC_M1] = stac925xM1_pin_configs,
@@ -1659,8 +1659,6 @@ static unsigned int *stac925x_brd_tbl[STAC_925x_MODELS] = {
1659 [STAC_M3] = stac925xM3_pin_configs, 1659 [STAC_M3] = stac925xM3_pin_configs,
1660 [STAC_M5] = stac925xM5_pin_configs, 1660 [STAC_M5] = stac925xM5_pin_configs,
1661 [STAC_M6] = stac925xM6_pin_configs, 1661 [STAC_M6] = stac925xM6_pin_configs,
1662 [STAC_MA6] = stac925x_MA6_pin_configs,
1663 [STAC_PA6] = stac925x_PA6_pin_configs,
1664}; 1662};
1665 1663
1666static const char *stac925x_models[STAC_925x_MODELS] = { 1664static const char *stac925x_models[STAC_925x_MODELS] = {
@@ -1672,24 +1670,19 @@ static const char *stac925x_models[STAC_925x_MODELS] = {
1672 [STAC_M3] = "m3", 1670 [STAC_M3] = "m3",
1673 [STAC_M5] = "m5", 1671 [STAC_M5] = "m5",
1674 [STAC_M6] = "m6", 1672 [STAC_M6] = "m6",
1675 [STAC_MA6] = "ma6",
1676 [STAC_PA6] = "pa6",
1677}; 1673};
1678 1674
1679static struct snd_pci_quirk stac925x_codec_id_cfg_tbl[] = { 1675static struct snd_pci_quirk stac925x_codec_id_cfg_tbl[] = {
1680 SND_PCI_QUIRK(0x107b, 0x0316, "Gateway M255", STAC_REF), 1676 SND_PCI_QUIRK(0x107b, 0x0316, "Gateway M255", STAC_M2),
1681 SND_PCI_QUIRK(0x107b, 0x0366, "Gateway MP6954", STAC_REF), 1677 SND_PCI_QUIRK(0x107b, 0x0366, "Gateway MP6954", STAC_M5),
1682 1678 SND_PCI_QUIRK(0x107b, 0x0461, "Gateway NX560XL", STAC_M1),
1683 SND_PCI_QUIRK(0x107b, 0x0461, "Gateway NX560XL", STAC_MA6), 1679 SND_PCI_QUIRK(0x107b, 0x0681, "Gateway NX860", STAC_M2),
1684 SND_PCI_QUIRK(0x107b, 0x0681, "Gateway NX860", STAC_PA6),
1685 SND_PCI_QUIRK(0x107b, 0x0367, "Gateway MX6453", STAC_M1_2), 1680 SND_PCI_QUIRK(0x107b, 0x0367, "Gateway MX6453", STAC_M1_2),
1686
1687 /* Not sure about the brand name for those */ 1681 /* Not sure about the brand name for those */
1688 SND_PCI_QUIRK(0x107b, 0x0281, "Gateway mobile", STAC_M1), 1682 SND_PCI_QUIRK(0x107b, 0x0281, "Gateway mobile", STAC_M1),
1689 SND_PCI_QUIRK(0x107b, 0x0507, "Gateway mobile", STAC_M3), 1683 SND_PCI_QUIRK(0x107b, 0x0507, "Gateway mobile", STAC_M3),
1690 SND_PCI_QUIRK(0x107b, 0x0281, "Gateway mobile", STAC_M6), 1684 SND_PCI_QUIRK(0x107b, 0x0281, "Gateway mobile", STAC_M6),
1691 SND_PCI_QUIRK(0x107b, 0x0685, "Gateway mobile", STAC_M2_2), 1685 SND_PCI_QUIRK(0x107b, 0x0685, "Gateway mobile", STAC_M2_2),
1692
1693 {} /* terminator */ 1686 {} /* terminator */
1694}; 1687};
1695 1688
@@ -4399,7 +4392,8 @@ static int patch_stac9200(struct hda_codec *codec)
4399 spec->num_adcs = 1; 4392 spec->num_adcs = 1;
4400 spec->num_pwrs = 0; 4393 spec->num_pwrs = 0;
4401 4394
4402 if (spec->board_config == STAC_9200_GATEWAY || 4395 if (spec->board_config == STAC_9200_M4 ||
4396 spec->board_config == STAC_9200_M4_2 ||
4403 spec->board_config == STAC_9200_OQO) 4397 spec->board_config == STAC_9200_OQO)
4404 spec->init = stac9200_eapd_init; 4398 spec->init = stac9200_eapd_init;
4405 else 4399 else