[alsa-devel] [PATCH] hda/patch_sigmatel.c Panasonic CF-74 speaker output
This patch causes ALSA to send sound to the speakers of a Panasonic CF-74 (Toughbook) instead of just its headphone jack.
--kyler
diff -Naur linux-2.6.24.1/sound/pci/hda/patch_sigmatel.c linux-2.6.24.1-ALSA_CF74/sound/pci/hda/patch_sigmatel.c --- linux-2.6.24.1/sound/pci/hda/patch_sigmatel.c 2008-02-08 14:55:30.000000000 -0500 +++ linux-2.6.24.1-ALSA_CF74/sound/pci/hda/patch_sigmatel.c 2008-02-11 12:05:11.824064617 -0500 @@ -2467,6 +2467,11 @@ spec->init = stac9200_core_init; spec->mixer = stac9200_mixer;
+ /* Kyler - fix for CF-74 speaker */ + spec->gpio_mask = 0x00000009; + spec->gpio_data = 0x00000000; + stac92xx_enable_gpio_mask(codec); + err = stac9200_parse_auto_config(codec); if (err < 0) { stac92xx_free(codec);
At Thu, 28 Feb 2008 09:11:49 -0500, Kyler Laird wrote:
This patch causes ALSA to send sound to the speakers of a Panasonic CF-74 (Toughbook) instead of just its headphone jack.
Thanks. I think this should be only for specific PCI IDs. Or more better, create a new model to enable it. Is the PCI SSID of your device 10f7:8338 ?
Your patch cannot be applied to the latest code because of code changes. The patch below adds a quick fix based on your information (for 2.6.25 or later). Could you give it a try?
Takashi
---
diff -r 54a51b975975 sound/pci/hda/patch_sigmatel.c --- a/sound/pci/hda/patch_sigmatel.c Thu Feb 28 12:46:32 2008 +0100 +++ b/sound/pci/hda/patch_sigmatel.c Fri Feb 29 11:39:33 2008 +0100 @@ -51,6 +51,7 @@ enum { STAC_9200_DELL_M26, STAC_9200_DELL_M27, STAC_9200_GATEWAY, + STAC_9200_PANASONIC, STAC_9200_MODELS };
@@ -1083,6 +1084,7 @@ static unsigned int *stac9200_brd_tbl[ST [STAC_9200_DELL_M25] = dell9200_m25_pin_configs, [STAC_9200_DELL_M26] = dell9200_m26_pin_configs, [STAC_9200_DELL_M27] = dell9200_m27_pin_configs, + [STAC_9200_PANASONIC] = ref9200_pin_configs, };
static const char *stac9200_models[STAC_9200_MODELS] = { @@ -1099,6 +1101,7 @@ static const char *stac9200_models[STAC_ [STAC_9200_DELL_M26] = "dell-m26", [STAC_9200_DELL_M27] = "dell-m27", [STAC_9200_GATEWAY] = "gateway", + [STAC_9200_PANASONIC] = "panasonic", };
static struct snd_pci_quirk stac9200_cfg_tbl[] = { @@ -1165,7 +1168,7 @@ static struct snd_pci_quirk stac9200_cfg SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x01f6, "unknown Dell", STAC_9200_DELL_M26), /* Panasonic */ - SND_PCI_QUIRK(0x10f7, 0x8338, "Panasonic CF-74", STAC_REF), + SND_PCI_QUIRK(0x10f7, 0x8338, "Panasonic CF-74", STAC_9200_PANASONIC), /* Gateway machines needs EAPD to be set on resume */ SND_PCI_QUIRK(0x107b, 0x0205, "Gateway S-7110M", STAC_9200_GATEWAY), SND_PCI_QUIRK(0x107b, 0x0317, "Gateway MT3423, MX341*", @@ -3263,6 +3266,11 @@ static int patch_stac9200(struct hda_cod else spec->init = stac9200_core_init; spec->mixer = stac9200_mixer; + + if (spec->board_config == STAC_9200_PANASONIC) { + spec->gpio_mask = spec->gpio_dir = 0x09; + spec->gpio_data = 0x00; + }
err = stac9200_parse_auto_config(codec); if (err < 0) {
participants (2)
-
Kyler Laird
-
Takashi Iwai