]> err.no Git - linux-2.6/commitdiff
[ALSA] hda-codec - Add support for MacBook Pro 1st generation
authorNicolas Boichat <nicolas@boichat.ch>
Thu, 15 Mar 2007 11:38:15 +0000 (12:38 +0100)
committerJaroslav Kysela <perex@suse.cz>
Thu, 15 Mar 2007 11:44:51 +0000 (12:44 +0100)
Fix audio on Macbook Pro 1st generation.

Signed-off-by: Nicolas Boichat <nicolas@boichat.ch>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
Signed-off-by: Jaroslav Kysela <perex@suse.cz>
Documentation/sound/alsa/ALSA-Configuration.txt
sound/pci/hda/patch_sigmatel.c

index c94a4a83ae5881c330f1db310ad9101a2c91f01f..73e9a174b6427853b073bf4143e88e9f6e014a0f 100644 (file)
@@ -907,7 +907,8 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. This was removed.
          5stack        D945 5stack + SPDIF
          macmini       Intel Mac Mini
          macbook       Intel Mac Book
-         macbook-pro   Intel Mac Book Pro
+         macbook-pro-v1 Intel Mac Book Pro 1st generation
+         macbook-pro   Intel Mac Book Pro 2nd generation
 
        STAC9202/9250/9251
          ref           Reference board, base config
index c77a6b051da2dad7e539811ffa2fa551f9fd16f0..c94291bc53677c36c62c0109bd0537cee79b40cb 100644 (file)
@@ -60,7 +60,8 @@ enum {
        STAC_D945GTP5,
        STAC_MACMINI,
        STAC_MACBOOK,
-       STAC_MACBOOK_PRO,
+       STAC_MACBOOK_PRO_V1,
+       STAC_MACBOOK_PRO_V2,
        STAC_922X_MODELS
 };
 
@@ -529,7 +530,13 @@ static unsigned int macbook_pin_configs[10] = {
        0x400000fc, 0x400000fb,
 };
 
-static unsigned int macbook_pro_pin_configs[10] = {
+static unsigned int macbook_pro_v1_pin_configs[10] = {
+       0x0321e230, 0x03a1e020, 0x9017e110, 0x01014010,
+       0x01a19021, 0x0381e021, 0x1345e240, 0x13c5e22e,
+       0x02a19320, 0x400000fb
+};
+
+static unsigned int macbook_pro_v2_pin_configs[10] = {
        0x0221401f, 0x90a70120, 0x01813024, 0x01014010,
        0x400000fd, 0x01016011, 0x1345e240, 0x13c5e22e,
        0x400000fc, 0x400000fb,
@@ -541,7 +548,8 @@ static unsigned int *stac922x_brd_tbl[STAC_922X_MODELS] = {
        [STAC_D945GTP5] = d945gtp5_pin_configs,
        [STAC_MACMINI] = d945gtp5_pin_configs,
        [STAC_MACBOOK] = macbook_pin_configs,
-       [STAC_MACBOOK_PRO] = macbook_pro_pin_configs,
+       [STAC_MACBOOK_PRO_V1] = macbook_pro_v1_pin_configs,
+       [STAC_MACBOOK_PRO_V2] = macbook_pro_v2_pin_configs,
 };
 
 static const char *stac922x_models[STAC_922X_MODELS] = {
@@ -550,7 +558,8 @@ static const char *stac922x_models[STAC_922X_MODELS] = {
        [STAC_D945GTP3] = "3stack",
        [STAC_MACMINI]  = "macmini",
        [STAC_MACBOOK]  = "macbook",
-       [STAC_MACBOOK_PRO]      = "macbook-pro",
+       [STAC_MACBOOK_PRO_V1]   = "macbook-pro-v1",
+       [STAC_MACBOOK_PRO_V2]   = "macbook-pro",
 };
 
 static struct snd_pci_quirk stac922x_cfg_tbl[] = {
@@ -1894,9 +1903,13 @@ static int patch_stac922x(struct hda_codec *codec)
                /* Intel Macs have all same PCI SSID, so we need to check
                 * codec SSID to distinguish the exact models
                 */
+               printk(KERN_INFO "hda_codec: STAC922x, Apple subsys_id=%x\n", codec->subsystem_id);
                switch (codec->subsystem_id) {
-               case 0x106b1e00:
-                       spec->board_config = STAC_MACBOOK_PRO;
+               case 0x106b0200: /* MacBook Pro first generation */
+                       spec->board_config = STAC_MACBOOK_PRO_V1;
+                       break;
+               case 0x106b1e00: /* MacBook Pro second generation */
+                       spec->board_config = STAC_MACBOOK_PRO_V2;
                        break;
                }
        }