Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=3fc24d850708b8dfd3472b25eac0c32dd7708925
Commit:     3fc24d850708b8dfd3472b25eac0c32dd7708925
Parent:     cc69d12d0a063fd5f25d9b395357be5ba438b0c6
Author:     Takashi Iwai <[EMAIL PROTECTED]>
AuthorDate: Fri Feb 16 13:27:18 2007 +0100
Committer:  Jaroslav Kysela <[EMAIL PROTECTED]>
CommitDate: Tue Mar 6 10:40:28 2007 +0100

    [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 <[EMAIL PROTECTED]>
    Signed-off-by: Jaroslav Kysela <[EMAIL PROTECTED]>
---
 Documentation/sound/alsa/ALSA-Configuration.txt |    8 +++++-
 sound/pci/hda/patch_sigmatel.c                  |   33 ++++++++++++++++++++--
 2 files changed, 37 insertions(+), 4 deletions(-)

diff --git a/Documentation/sound/alsa/ALSA-Configuration.txt 
b/Documentation/sound/alsa/ALSA-Configuration.txt
index c30ff1b..e127751 100644
--- a/Documentation/sound/alsa/ALSA-Configuration.txt
+++ b/Documentation/sound/alsa/ALSA-Configuration.txt
@@ -895,10 +895,16 @@ Prior to version 0.9.0rc4 options had a 'snd_' prefix. 
This was removed.
                        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 --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
index 54fdf34..4c7b039 100644
--- a/sound/pci/hda/patch_sigmatel.c
+++ b/sound/pci/hda/patch_sigmatel.c
@@ -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[10] = {
        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_922X_MODELS] = {
        [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,18 @@ static int patch_stac922x(struct hda_codec *codec)
        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) {
+               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, "
@@ -1906,9 +1936,6 @@ static int patch_stac922x(struct hda_codec *codec)
                return err;
        }
 
-       if (spec->board_config == STAC_MACMINI)
-               spec->gpio_mute = 1;
-
        codec->patch_ops = stac92xx_patch_ops;
 
        return 0;
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to