diff -r 337962e19de6 Documentation/ALSA-Configuration.txt
--- a/Documentation/ALSA-Configuration.txt	Fri May 25 12:18:49 2007 +0200
+++ b/Documentation/ALSA-Configuration.txt	Sun May 27 22:20:34 2007 +0100
@@ -923,12 +923,11 @@ Prior to version 0.9.0rc4 options had a 
 	  ref		Reference board
 	  3stack	D945 3stack
 	  5stack	D945 5stack + SPDIF
-	  macmini	Intel Mac Mini
-	  macbook	Intel Mac Book
-	  macbook-pro-v1 Intel Mac Book Pro 1st generation
-	  macbook-pro	Intel Mac Book Pro 2nd generation
-	  imac-intel	Intel iMac
-	  imac-intel-20	Intel iMac (newer version)
+	  intel-mac-v1	Intel Mac Type 1
+	  intel-mac-v2	Intel Mac Type 2
+	  intel-mac-v3	Intel Mac Type 3
+	  intel-mac-v4	Intel Mac Type 4
+	  intel-mac-v5	Intel Mac Type 5
 
 	STAC9202/9250/9251
 	  ref		Reference board, base config
diff -r 337962e19de6 pci/hda/patch_sigmatel.c
--- a/pci/hda/patch_sigmatel.c	Fri May 25 12:18:49 2007 +0200
+++ b/pci/hda/patch_sigmatel.c	Sun May 27 22:19:14 2007 +0100
@@ -59,12 +59,11 @@ enum {
 	STAC_D945_REF,
 	STAC_D945GTP3,
 	STAC_D945GTP5,
-	STAC_MACMINI,
-	STAC_MACBOOK,
-	STAC_MACBOOK_PRO_V1,
-	STAC_MACBOOK_PRO_V2,
-	STAC_IMAC_INTEL,
-	STAC_IMAC_INTEL_20,
+	STAC_INTEL_MAC_V1,
+	STAC_INTEL_MAC_V2,
+	STAC_INTEL_MAC_V3,
+	STAC_INTEL_MAC_V4,
+	STAC_INTEL_MAC_V5,
 	STAC_922X_MODELS
 };
 
@@ -550,27 +549,33 @@ static unsigned int d945gtp5_pin_configs
 	0x02a19320, 0x40000100,
 };
 
-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,
-};
-
-static unsigned int imac_intel_pin_configs[10] = {
-	0x0121e230, 0x90a70120, 0x9017e110, 0x400000fe,
-	0x400000fd, 0x0181e021, 0x1145e040, 0x400000fa,
-	0x400000fc, 0x400000fb,
-};
-
-static unsigned int imac_intel_20_pin_configs[10] = {
+static unsigned int apple_mac_v1_pin_configs[10] = {
+	0x0121E21F, 0x400000FF, 0x9017E110, 0x400000FD,
+	0x400000FE, 0x0181E020, 0x1145E030, 0x11C5E240,
+	0x400000FC, 0x400000FB,
+};
+
+static unsigned int apple_mac_v2_pin_configs[10] = {
+	0x0121E21F, 0x90A7012E, 0x9017E110, 0x400000FD,
+	0x400000FE, 0x0181E020, 0x1145E230, 0x500000FA,
+	0x400000FC, 0x400000FB,
+};
+
+static unsigned int apple_mac_v3_pin_configs[10] = {
 	0x0121E21F, 0x90A7012E, 0x9017E110, 0x400000FD,
 	0x400000FE, 0x0181E020, 0x1145E230, 0x11C5E240,
+	0x400000FC, 0x400000FB,
+};
+
+static unsigned int apple_mac_v4_pin_configs[10] = {
+	0x0321E21F, 0x03A1E02E, 0x9017E110, 0x9017E11F,
+	0x400000FE, 0x0381E020, 0x1345E230, 0x13C5E240,
+	0x400000FC, 0x400000FB,
+};
+
+static unsigned int apple_mac_v5_pin_configs[10] = {
+	0x0321E21F, 0x03A1E02E, 0x9017E110, 0x9017E11F,
+	0x400000FE, 0x0381E020, 0x1345E230, 0x13C5E240,
 	0x400000FC, 0x400000FB,
 };
 
@@ -578,24 +583,22 @@ static unsigned int *stac922x_brd_tbl[ST
 	[STAC_D945_REF] = ref922x_pin_configs,
 	[STAC_D945GTP3] = d945gtp3_pin_configs,
 	[STAC_D945GTP5] = d945gtp5_pin_configs,
-	[STAC_MACMINI] = macbook_pro_v1_pin_configs,
-	[STAC_MACBOOK] = macbook_pro_v1_pin_configs,
-	[STAC_MACBOOK_PRO_V1] = macbook_pro_v1_pin_configs,
-	[STAC_MACBOOK_PRO_V2] = macbook_pro_v2_pin_configs,
-	[STAC_IMAC_INTEL] = imac_intel_pin_configs,
-	[STAC_IMAC_INTEL_20] = imac_intel_20_pin_configs,
+	[STAC_INTEL_MAC_V1] = apple_mac_v1_pin_configs,
+	[STAC_INTEL_MAC_V2] = apple_mac_v2_pin_configs,
+	[STAC_INTEL_MAC_V3] = apple_mac_v3_pin_configs,
+	[STAC_INTEL_MAC_V4] = apple_mac_v4_pin_configs,
+	[STAC_INTEL_MAC_V5] = apple_mac_v5_pin_configs,
 };
 
 static const char *stac922x_models[STAC_922X_MODELS] = {
 	[STAC_D945_REF]	= "ref",
 	[STAC_D945GTP5]	= "5stack",
 	[STAC_D945GTP3]	= "3stack",
-	[STAC_MACMINI]	= "macmini",
-	[STAC_MACBOOK]	= "macbook",
-	[STAC_MACBOOK_PRO_V1]	= "macbook-pro-v1",
-	[STAC_MACBOOK_PRO_V2]	= "macbook-pro",
-	[STAC_IMAC_INTEL] = "imac-intel",
-	[STAC_IMAC_INTEL_20] = "imac-intel-20",
+	[STAC_INTEL_MAC_V1] = "intel-mac-v1",
+	[STAC_INTEL_MAC_V2] = "intel-mac-v2",
+	[STAC_INTEL_MAC_V3] = "intel-mac-v3",
+	[STAC_INTEL_MAC_V4] = "intel-mac-v4",
+	[STAC_INTEL_MAC_V5] = "intel-mac-v5",
 };
 
 static struct snd_pci_quirk stac922x_cfg_tbl[] = {
@@ -658,7 +661,7 @@ static struct snd_pci_quirk stac922x_cfg
 	/* other systems  */
 	/* Apple Mac Mini (early 2006) */
 	SND_PCI_QUIRK(0x8384, 0x7680,
-		      "Mac Mini", STAC_MACMINI),
+		      "Mac Mini", STAC_INTEL_MAC_V3),
 	{} /* terminator */
 };
 
@@ -2012,27 +2015,36 @@ 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) {
+	if (spec->board_config == STAC_INTEL_MAC_V3) {
 		spec->gpio_mute = 1;
 		/* 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 0x106b0a00: /* MacBook First generatoin */
-			spec->board_config = STAC_MACBOOK;
+
+		case 0x106B0800:
+			spec->board_config = STAC_INTEL_MAC_V1;
 			break;
-		case 0x106b0200: /* MacBook Pro first generation */
-			spec->board_config = STAC_MACBOOK_PRO_V1;
+		case 0x106B0600:
+		case 0x106B0700:
+			spec->board_config = STAC_INTEL_MAC_V2;
 			break;
-		case 0x106b1e00: /* MacBook Pro second generation */
-			spec->board_config = STAC_MACBOOK_PRO_V2;
+		case 0x106B0E00:
+		case 0x106B0F00:
+		case 0x106B1600:
+		case 0x106B1700:
+		case 0x106B0200:
+		case 0x106B1E00:
+			spec->board_config = STAC_INTEL_MAC_V3;
 			break;
-		case 0x106b0700: /* Intel-based iMac */
-			spec->board_config = STAC_IMAC_INTEL;
+		case 0x106B1A00:
+		case 0x00000100:
+			spec->board_config = STAC_INTEL_MAC_V4;
 			break;
-		case 0x106b1700: /* Intel iMac 20 */
-			spec->board_config = STAC_IMAC_INTEL_20;
+		case 0x106b0A00:
+		case 0x106B2200:
+			spec->board_config = STAC_INTEL_MAC_V5;
 			break;
 		}
 	}