Commit 3fc24d850708b8dfd3472b25eac0c32dd7708925

Authored by Takashi Iwai
Committed by Jaroslav Kysela
1 parent cc69d12d0a

[ALSA] hda-codec - Define pin configs for MacBooks

Define pin configs for MacBook and MacBook Pro with STAC92xx codecs.
The latter is detected automatically by checking codec SSID now.
Also, fixed the documentation regarding available modeliof sigmatel
codec chips.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>

Showing 2 changed files with 37 additions and 4 deletions Side-by-side Diff

Documentation/sound/alsa/ALSA-Configuration.txt
... ... @@ -895,10 +895,16 @@
895 895 can be adjusted. Appearing only when compiled with
896 896 $CONFIG_SND_DEBUG=y
897 897  
898   - STAC9200/9205/9220/9221/9254
  898 + STAC9200/9205/9254
899 899 ref Reference board
  900 +
  901 + STAC9220/9221
  902 + ref Reference board
900 903 3stack D945 3stack
901 904 5stack D945 5stack + SPDIF
  905 + macmini Intel Mac Mini
  906 + macbook Intel Mac Book
  907 + macbook-pro Intel Mac Book Pro
902 908  
903 909 STAC9202/9250/9251
904 910 ref Reference board, base config
sound/pci/hda/patch_sigmatel.c
... ... @@ -59,6 +59,8 @@
59 59 STAC_D945GTP3,
60 60 STAC_D945GTP5,
61 61 STAC_MACMINI,
  62 + STAC_MACBOOK,
  63 + STAC_MACBOOK_PRO,
62 64 STAC_922X_MODELS
63 65 };
64 66  
65 67  
... ... @@ -521,11 +523,25 @@
521 523 0x02a19320, 0x40000100,
522 524 };
523 525  
  526 +static unsigned int macbook_pin_configs[10] = {
  527 + 0x0321e230, 0x03a1e020, 0x400000fd, 0x9017e110,
  528 + 0x400000fe, 0x0381e021, 0x1345e240, 0x13c5e22e,
  529 + 0x400000fc, 0x400000fb,
  530 +};
  531 +
  532 +static unsigned int macbook_pro_pin_configs[10] = {
  533 + 0x0221401f, 0x90a70120, 0x01813024, 0x01014010,
  534 + 0x400000fd, 0x01016011, 0x1345e240, 0x13c5e22e,
  535 + 0x400000fc, 0x400000fb,
  536 +};
  537 +
524 538 static unsigned int *stac922x_brd_tbl[STAC_922X_MODELS] = {
525 539 [STAC_D945_REF] = ref922x_pin_configs,
526 540 [STAC_D945GTP3] = d945gtp3_pin_configs,
527 541 [STAC_D945GTP5] = d945gtp5_pin_configs,
528 542 [STAC_MACMINI] = d945gtp5_pin_configs,
  543 + [STAC_MACBOOK] = macbook_pin_configs,
  544 + [STAC_MACBOOK_PRO] = macbook_pro_pin_configs,
529 545 };
530 546  
531 547 static const char *stac922x_models[STAC_922X_MODELS] = {
... ... @@ -533,6 +549,8 @@
533 549 [STAC_D945GTP5] = "5stack",
534 550 [STAC_D945GTP3] = "3stack",
535 551 [STAC_MACMINI] = "macmini",
  552 + [STAC_MACBOOK] = "macbook",
  553 + [STAC_MACBOOK_PRO] = "macbook-pro",
536 554 };
537 555  
538 556 static struct snd_pci_quirk stac922x_cfg_tbl[] = {
... ... @@ -1866,6 +1884,18 @@
1866 1884 spec->board_config = snd_hda_check_board_config(codec, STAC_922X_MODELS,
1867 1885 stac922x_models,
1868 1886 stac922x_cfg_tbl);
  1887 + if (spec->board_config == STAC_MACMINI) {
  1888 + spec->gpio_mute = 1;
  1889 + /* Intel Macs have all same PCI SSID, so we need to check
  1890 + * codec SSID to distinguish the exact models
  1891 + */
  1892 + switch (codec->subsystem_id) {
  1893 + case 0x106b1e00:
  1894 + spec->board_config = STAC_MACBOOK_PRO;
  1895 + break;
  1896 + }
  1897 + }
  1898 +
1869 1899 again:
1870 1900 if (spec->board_config < 0) {
1871 1901 snd_printdd(KERN_INFO "hda_codec: Unknown model for STAC922x, "
... ... @@ -1905,9 +1935,6 @@
1905 1935 stac92xx_free(codec);
1906 1936 return err;
1907 1937 }
1908   -
1909   - if (spec->board_config == STAC_MACMINI)
1910   - spec->gpio_mute = 1;
1911 1938  
1912 1939 codec->patch_ops = stac92xx_patch_ops;
1913 1940