At Wed, 14 Feb 2007 17:13:20 -0800, Tobin Davis wrote: > > On Wed, 2007-02-14 at 23:27 +0100, Takashi Iwai wrote: > > The driver always takes PCI SSID as a key for table-lookup. > The codec has its own SSID (and often a different value from PCI SSID) > as proc shows, but it's not used anywhere in the driver code. > > This is the second time I've run into a system that has an HD audio chip, but doesn't > have a unique PCI SSID. The first was the Mac Pro, where there is no SSID for the HD > audio bus (see my patch for ALC885 Mac Pro - 12/15). > > Takashi, we may want to look into a function that uses the codec subsystem id as a > fallback, with the PCI SSID taking precedence. We already detect the HD Audio bus, > through the PCI ID. Let me know. As I mentioned in another mail, so far, it'd be much easier to check the codec SSID in each patch code rather than changing the common PCI quirk lookup. An experimental patch is below. Rafael, please give it a try. Takashi diff -r d5fda8fa934c Documentation/ALSA-Configuration.txt --- a/Documentation/ALSA-Configuration.txt Wed Feb 14 15:23:57 2007 +0100 +++ b/Documentation/ALSA-Configuration.txt Thu Feb 15 13:09:55 2007 +0100 @@ -895,10 +895,16 @@ Prior to version 0.9.0rc4 options had a can be adjusted. Appearing only when compiled with $CONFIG_SND_DEBUG=y - STAC9200/9205/9220/9221/9254 + STAC9200/9205/9254 + ref Reference board + + STAC9220/9221 ref Reference board 3stack D945 3stack 5stack D945 5stack + SPDIF + macmini Intel Mac Mini + macbook Intel Mac Book + macbook-pro Intel Mac Book Pro STAC9202/9250/9251 ref Reference board, base config diff -r d5fda8fa934c pci/hda/patch_sigmatel.c --- a/pci/hda/patch_sigmatel.c Wed Feb 14 15:23:57 2007 +0100 +++ b/pci/hda/patch_sigmatel.c Thu Feb 15 13:05:43 2007 +0100 @@ -59,6 +59,8 @@ enum { STAC_D945GTP3, STAC_D945GTP5, STAC_MACMINI, + STAC_MACBOOK, + STAC_MACBOOK_PRO, STAC_922X_MODELS }; @@ -521,11 +523,25 @@ static unsigned int d945gtp5_pin_configs 0x02a19320, 0x40000100, }; +static unsigned int macbook_pin_configs[10] = { + 0x0321e230, 0x03a1e020, 0x400000fd, 0x9017e110, + 0x400000fe, 0x0381e021, 0x1345e240, 0x13c5e22e, + 0x400000fc, 0x400000fb, +}; + +static unsigned int macbook_pro_pin_configs[10] = { + 0x0221401f, 0x90a70120, 0x01813024, 0x01014010, + 0x400000fd, 0x01016011, 0x1345e240, 0x13c5e22e, + 0x400000fc, 0x400000fb, +}; + static unsigned int *stac922x_brd_tbl[STAC_922X_MODELS] = { [STAC_D945_REF] = ref922x_pin_configs, [STAC_D945GTP3] = d945gtp3_pin_configs, [STAC_D945GTP5] = d945gtp5_pin_configs, [STAC_MACMINI] = d945gtp5_pin_configs, + [STAC_MACBOOK] = macbook_pin_configs, + [STAC_MACBOOK_PRO] = macbook_pro_pin_configs, }; static const char *stac922x_models[STAC_922X_MODELS] = { @@ -533,6 +549,8 @@ static const char *stac922x_models[STAC_ [STAC_D945GTP5] = "5stack", [STAC_D945GTP3] = "3stack", [STAC_MACMINI] = "macmini", + [STAC_MACBOOK] = "macbook", + [STAC_MACBOOK_PRO] = "macbook-pro", }; static struct snd_pci_quirk stac922x_cfg_tbl[] = { @@ -1866,6 +1884,23 @@ static int patch_stac922x(struct hda_cod spec->board_config = snd_hda_check_board_config(codec, STAC_922X_MODELS, stac922x_models, stac922x_cfg_tbl); + if (spec->board_config == STAC_MACMINI) { + spec->gpio_mute = 1; + /* Intel Macs have all same PCI SSID, so we need to check + * codec SSID to distinguish the exact models + */ + switch (codec->subsystem_id) { +#if 0 + case XXXX: + spec->board_config = STAC_MACBOOK; + break; +#endif + case 0x106b1e00: + spec->board_config = STAC_MACBOOK_PRO; + break; + } + } + again: if (spec->board_config < 0) { snd_printdd(KERN_INFO "hda_codec: Unknown model for STAC922x, " @@ -1905,9 +1940,6 @@ static int patch_stac922x(struct hda_cod stac92xx_free(codec); return err; } - - if (spec->board_config == STAC_MACMINI) - spec->gpio_mute = 1; codec->patch_ops = stac92xx_patch_ops; ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.sourceforge.net/lists/listinfo/alsa-devel