aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTakashi Iwai <tiwai@suse.de>2008-03-18 04:53:23 -0400
committerTakashi Iwai <tiwai@suse.de>2008-04-24 06:00:26 -0400
commit117f257d7a9599ff9cb5ab7a6a10201c6294b5f1 (patch)
tree61fe1c41d4ca6854b2f2fce5fcc2e8981f35505c
parent2add9b925394746eff692ff0875d21ea2d5289e2 (diff)
[ALSA] hda-codec - Fix spekaer output of Panasonic CF-74
Add a new model "panasonic" for Panasonic CF-74 with STAC9200 codec to fix the speaker output. Signed-off-by: Takashi Iwai <tiwai@suse.de>
-rw-r--r--Documentation/sound/alsa/ALSA-Configuration.txt1
-rw-r--r--sound/pci/hda/patch_sigmatel.c10
2 files changed, 10 insertions, 1 deletions
diff --git a/Documentation/sound/alsa/ALSA-Configuration.txt b/Documentation/sound/alsa/ALSA-Configuration.txt
index 80a0629f4917..b02404395e52 100644
--- a/Documentation/sound/alsa/ALSA-Configuration.txt
+++ b/Documentation/sound/alsa/ALSA-Configuration.txt
@@ -992,6 +992,7 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
992 dell-m26 Dell Inspiron 1501 992 dell-m26 Dell Inspiron 1501
993 dell-m27 Dell Inspiron E1705/9400 993 dell-m27 Dell Inspiron E1705/9400
994 gateway Gateway laptops with EAPD control 994 gateway Gateway laptops with EAPD control
995 panasonic Panasonic CF-74
995 996
996 STAC9205/9254 997 STAC9205/9254
997 ref Reference board 998 ref Reference board
diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index b8e69a1b93f0..a39fbd89a985 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -52,6 +52,7 @@ enum {
52 STAC_9200_DELL_M26, 52 STAC_9200_DELL_M26,
53 STAC_9200_DELL_M27, 53 STAC_9200_DELL_M27,
54 STAC_9200_GATEWAY, 54 STAC_9200_GATEWAY,
55 STAC_9200_PANASONIC,
55 STAC_9200_MODELS 56 STAC_9200_MODELS
56}; 57};
57 58
@@ -1121,6 +1122,7 @@ static unsigned int *stac9200_brd_tbl[STAC_9200_MODELS] = {
1121 [STAC_9200_DELL_M25] = dell9200_m25_pin_configs, 1122 [STAC_9200_DELL_M25] = dell9200_m25_pin_configs,
1122 [STAC_9200_DELL_M26] = dell9200_m26_pin_configs, 1123 [STAC_9200_DELL_M26] = dell9200_m26_pin_configs,
1123 [STAC_9200_DELL_M27] = dell9200_m27_pin_configs, 1124 [STAC_9200_DELL_M27] = dell9200_m27_pin_configs,
1125 [STAC_9200_PANASONIC] = ref9200_pin_configs,
1124}; 1126};
1125 1127
1126static const char *stac9200_models[STAC_9200_MODELS] = { 1128static const char *stac9200_models[STAC_9200_MODELS] = {
@@ -1137,6 +1139,7 @@ static const char *stac9200_models[STAC_9200_MODELS] = {
1137 [STAC_9200_DELL_M26] = "dell-m26", 1139 [STAC_9200_DELL_M26] = "dell-m26",
1138 [STAC_9200_DELL_M27] = "dell-m27", 1140 [STAC_9200_DELL_M27] = "dell-m27",
1139 [STAC_9200_GATEWAY] = "gateway", 1141 [STAC_9200_GATEWAY] = "gateway",
1142 [STAC_9200_PANASONIC] = "panasonic",
1140}; 1143};
1141 1144
1142static struct snd_pci_quirk stac9200_cfg_tbl[] = { 1145static struct snd_pci_quirk stac9200_cfg_tbl[] = {
@@ -1203,7 +1206,7 @@ static struct snd_pci_quirk stac9200_cfg_tbl[] = {
1203 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01f6, 1206 SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01f6,
1204 "unknown Dell", STAC_9200_DELL_M26), 1207 "unknown Dell", STAC_9200_DELL_M26),
1205 /* Panasonic */ 1208 /* Panasonic */
1206 SND_PCI_QUIRK(0x10f7, 0x8338, "Panasonic CF-74", STAC_REF), 1209 SND_PCI_QUIRK(0x10f7, 0x8338, "Panasonic CF-74", STAC_9200_PANASONIC),
1207 /* Gateway machines needs EAPD to be set on resume */ 1210 /* Gateway machines needs EAPD to be set on resume */
1208 SND_PCI_QUIRK(0x107b, 0x0205, "Gateway S-7110M", STAC_9200_GATEWAY), 1211 SND_PCI_QUIRK(0x107b, 0x0205, "Gateway S-7110M", STAC_9200_GATEWAY),
1209 SND_PCI_QUIRK(0x107b, 0x0317, "Gateway MT3423, MX341*", 1212 SND_PCI_QUIRK(0x107b, 0x0317, "Gateway MT3423, MX341*",
@@ -3302,6 +3305,11 @@ static int patch_stac9200(struct hda_codec *codec)
3302 spec->init = stac9200_core_init; 3305 spec->init = stac9200_core_init;
3303 spec->mixer = stac9200_mixer; 3306 spec->mixer = stac9200_mixer;
3304 3307
3308 if (spec->board_config == STAC_9200_PANASONIC) {
3309 spec->gpio_mask = spec->gpio_dir = 0x09;
3310 spec->gpio_data = 0x00;
3311 }
3312
3305 err = stac9200_parse_auto_config(codec); 3313 err = stac9200_parse_auto_config(codec);
3306 if (err < 0) { 3314 if (err < 0) {
3307 stac92xx_free(codec); 3315 stac92xx_free(codec);