Index: linux-2.6.17/sound/soc/codecs/wm8731.c
===================================================================
--- linux-2.6.17.orig/sound/soc/codecs/wm8731.c	2006-07-04 14:06:21.000000000 +0100
+++ linux-2.6.17/sound/soc/codecs/wm8731.c	2006-07-04 17:42:08.000000000 +0100
@@ -262,7 +262,7 @@
 SND_SOC_DAPM_OUTPUT("LOUT"),
 SND_SOC_DAPM_OUTPUT("LHPOUT"),
 SND_SOC_DAPM_OUTPUT("ROUT"),
-SND_SOC_DAPM_OUTPUT("LRHPOUT"),
+SND_SOC_DAPM_OUTPUT("RHPOUT"),
 SND_SOC_DAPM_ADC("ADC", "HiFi Capture", WM8731_PWR, 2, 1, NULL, 0),
 SND_SOC_DAPM_MUX("Input Mux", SND_SOC_NOPM, 0, 0, &wm8731_input_mux_controls),
 SND_SOC_DAPM_PGA("Line Input", WM8731_PWR, 0, 1, NULL, 0),
Index: linux-2.6.17/sound/soc/pxa/corgi.c
===================================================================
--- linux-2.6.17.orig/sound/soc/pxa/corgi.c	2006-07-04 17:41:17.000000000 +0100
+++ linux-2.6.17/sound/soc/pxa/corgi.c	2006-07-04 17:46:27.000000000 +0100
@@ -64,15 +64,26 @@
 	switch(corgi_jack_func) {
 	case CORGI_HP:
 		hp = 1;
+	        /* set = unmute headphone */
+		set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_L);
+		set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_R);
 		break;
 	case CORGI_MIC:
 		mic = 1;
+	        /* reset = mute headphone */
+		reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_L);
+		reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_R);
 		break;
 	case CORGI_LINE:
 		line = 1;
+		reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_L);
+		reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_R);
 		break;
 	case CORGI_HEADSET:
 		hs = 1;
+                mic = 1;
+		reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_L);
+		set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_R);
 		break;
 	}
 
@@ -133,19 +144,6 @@
 	return 0;
 }
 
-/* corgi dapm event handlers */
-static int corgi_hp_event(struct snd_soc_dapm_widget* w, int power)
-{
-	if (power){
-		set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_L);
-		set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_R);
-	} else {
-		reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_L);
-		reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_R);
-	}
-	return 0;
-}
-
 static int corgi_amp_event(struct snd_soc_dapm_widget* w, int power)
 {
 	if (power)
@@ -166,28 +164,13 @@
 	return 0;
 }
 
-static int corgi_hs_event(struct snd_soc_dapm_widget* w, int power)
-{
-	if (power){
-		/* RP - I may have the L/R reset/set around the wrong way */
-		set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_L);
-		reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_R);
-		set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MIC_BIAS);
-	} else {
-		reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_L);
-		set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MUTE_R);
-		reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_MIC_BIAS);
-	}
-	return 0;
-}
-
 /* corgi machine dapm widgets */
 static const struct snd_soc_dapm_widget wm8731_dapm_widgets[] = {
-SND_SOC_DAPM_HP("Headphone Jack", corgi_hp_event),
+SND_SOC_DAPM_HP("Headphone Jack", NULL),
 SND_SOC_DAPM_MIC("Mic Jack", corgi_mic_event),
 SND_SOC_DAPM_SPK("Ext Spk", corgi_amp_event),
 SND_SOC_DAPM_LINE("Line Jack", NULL),
-SND_SOC_DAPM_HP("Headset Jack", corgi_hs_event),
+SND_SOC_DAPM_HP("Headset Jack", NULL),
 };
 
 /* Corgi machine interconnections to the codec pins */
@@ -195,7 +178,6 @@
 
 	/* headset Jack  - in = micin, out = LHPOUT*/
 	{"Headset Jack", NULL, "LHPOUT"},
-	{"Headset Jack", NULL, "MICIN"},
 
 	/* headphone connected to LHPOUT1, RHPOUT1 */
 	{"Headphone Jack", NULL, "LHPOUT"},
Index: linux-2.6.17/sound/soc/pxa/spitz.c
===================================================================
--- linux-2.6.17.orig/sound/soc/pxa/spitz.c	2006-07-04 14:06:21.000000000 +0100
+++ linux-2.6.17/sound/soc/pxa/spitz.c	2006-07-04 17:44:47.000000000 +0100
@@ -68,7 +68,7 @@
 	switch(spitz_jack_func) {
 	case SPITZ_HP:
 		/* enable and unmute hp jack, disable mic bias */
-		snd_soc_dapm_set_endpoint(codec, "Headset Headphone Jack", 0);
+		snd_soc_dapm_set_endpoint(codec, "Headset Jack", 0);
 		snd_soc_dapm_set_endpoint(codec, "Mic Jack", 0);
 		snd_soc_dapm_set_endpoint(codec, "Line Jack", 0);
 		snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 1);
@@ -78,7 +78,7 @@
 	case SPITZ_MIC:
 		/* enable mic jack and bias, mute hp */
 		snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 0);
-		snd_soc_dapm_set_endpoint(codec, "Headset Headphone Jack", 0);
+		snd_soc_dapm_set_endpoint(codec, "Headset Jack", 0);
 		snd_soc_dapm_set_endpoint(codec, "Line Jack", 0);
 		snd_soc_dapm_set_endpoint(codec, "Mic Jack", 1);
 		reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_MUTE_L);
@@ -87,7 +87,7 @@
 	case SPITZ_LINE:
 		/* enable line jack, disable mic bias and mute hp */
 		snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 0);
-		snd_soc_dapm_set_endpoint(codec, "Headset Headphone Jack", 0);
+		snd_soc_dapm_set_endpoint(codec, "Headset Jack", 0);
 		snd_soc_dapm_set_endpoint(codec, "Mic Jack", 0);
 		snd_soc_dapm_set_endpoint(codec, "Line Jack", 1);
 		reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_MUTE_L);
@@ -98,7 +98,7 @@
 		snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 0);
 		snd_soc_dapm_set_endpoint(codec, "Mic Jack", 1);
 		snd_soc_dapm_set_endpoint(codec, "Line Jack", 0);
-		snd_soc_dapm_set_endpoint(codec, "Headset Headphone Jack", 1);
+		snd_soc_dapm_set_endpoint(codec, "Headset Jack", 1);
 		reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_MUTE_L);
 		set_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_MUTE_R);
 		break;
@@ -106,7 +106,7 @@
 
 		/* jack removed, everything off */
 		snd_soc_dapm_set_endpoint(codec, "Headphone Jack", 0);
-		snd_soc_dapm_set_endpoint(codec, "Headset Headphone Jack", 0);
+		snd_soc_dapm_set_endpoint(codec, "Headset Jack", 0);
 		snd_soc_dapm_set_endpoint(codec, "Mic Jack", 0);
 		snd_soc_dapm_set_endpoint(codec, "Line Jack", 0);
 		reset_scoop_gpio(&spitzscoop_device.dev, SPITZ_SCP_MUTE_L);
@@ -184,7 +184,7 @@
 	SND_SOC_DAPM_LINE("Line Jack", NULL),
 
 	/* headset is a mic and mono headphone */
-	SND_SOC_DAPM_HP("Headset Headphone Jack", NULL),
+	SND_SOC_DAPM_HP("Headset Jack", NULL),
 };
 
 /* Spitz machine audio interconnections */
@@ -195,7 +195,7 @@
 	{"Headphone Jack", NULL, "ROUT1"},
 
 	/* headset connected to ROUT1 and LINPUT1 with bias (def below) */
-	{"Headset Headphone Jack", NULL, "ROUT1"},
+	{"Headset Jack", NULL, "ROUT1"},
 
 	/* ext speaker connected to LOUT2, ROUT2  */
 	{"Ext Spk", NULL , "ROUT2"},
@@ -325,10 +325,8 @@
 	pxa_gpio_mode(SPITZ_GPIO_AK_INT | GPIO_IN);
 
 	spitz_snd_device = platform_device_alloc("soc-audio", -1);
-	if (!spitz_snd_device) {
-		free_irq(SPITZ_IRQ_GPIO_AK_INT, spitz_snd_device);
+	if (!spitz_snd_device)
 		return -ENOMEM;
-	}
 
 	platform_set_drvdata(spitz_snd_device, &spitz_snd_devdata);
 	spitz_snd_devdata.dev = &spitz_snd_device->dev;
