Index: linux-2.6.15-rc2/sound/soc/pxa/corgi.c
===================================================================
--- linux-2.6.15-rc2.orig/sound/soc/pxa/corgi.c	2005-12-09 01:00:15.752954800 +0000
+++ linux-2.6.15-rc2/sound/soc/pxa/corgi.c	2005-12-09 15:40:55.084791016 +0000
@@ -189,12 +189,6 @@
 	int ret;
 
 	pxa_gpio_mode(CORGI_GPIO_AK_INT | GPIO_IN);
-	ret = request_irq(CORGI_IRQ_GPIO_AK_INT, corgi_hp_isr, SA_INTERRUPT, "Headphone Detect", corgi_snd_device);
-	if (ret < 0) {
-		printk(KERN_ERR "Could not register corgi headphone irq.\n");
-		return ret;
-	}
-	set_irq_type(CORGI_IRQ_GPIO_AK_INT, IRQT_BOTHEDGE);
 
 	corgi_snd_device = platform_device_alloc("soc-audio", -1);
 	if (!corgi_snd_device) {
@@ -202,6 +196,14 @@
 		return -ENOMEM;
 	}
 
+	ret = request_irq(CORGI_IRQ_GPIO_AK_INT, corgi_hp_isr, SA_INTERRUPT, "Headphone Detect", corgi_snd_device);
+	if (ret < 0) {
+		printk(KERN_ERR "Could not register corgi headphone irq.\n");
+		platform_device_put(corgi_snd_device);		
+		return ret;
+	}
+	set_irq_type(CORGI_IRQ_GPIO_AK_INT, IRQT_BOTHEDGE);
+
 	platform_set_drvdata(corgi_snd_device, &corgi_snd_devdata);
 	corgi_snd_devdata.dev = &corgi_snd_device->dev;
 	ret = platform_device_add(corgi_snd_device);
Index: linux-2.6.15-rc2/sound/soc/pxa/spitz.c
===================================================================
--- linux-2.6.15-rc2.orig/sound/soc/pxa/spitz.c	2005-12-09 01:00:20.791188872 +0000
+++ linux-2.6.15-rc2/sound/soc/pxa/spitz.c	2005-12-09 15:42:38.084132736 +0000
@@ -198,7 +198,7 @@
 	}
 
 	if (machine_is_borzoi() || machine_is_spitz())
-		if ((err = snd_ctl_add(codec->card, snd_soc_cnew(&wm8750_spitz_controls[0], codec, NULL))) < 0)
+		if ((err = snd_ctl_add(codec->card, snd_soc_cnew(&wm8750_spitz_controls2[0], codec, NULL))) < 0)
 			return err;
 
 #ifdef CONFIG_MACH_AKITA
@@ -225,7 +225,7 @@
 
 static struct snd_soc_machine_config codecs = {
 	.name = "wm8750", 
-	.sname = "wm8750",
+	.sname = "WM8750",
 	.iface = &pxa_i2s_interface,
 	.init = spitz_wm8750_init,
 };
@@ -254,12 +254,6 @@
 	int ret;
 
 	pxa_gpio_mode(SPITZ_GPIO_AK_INT | GPIO_IN);
-	ret = request_irq(SPITZ_IRQ_GPIO_AK_INT, spitz_hp_isr, SA_INTERRUPT, "Headphone Detect", spitz_snd_device);
-	if (ret < 0) {
-		printk(KERN_ERR "Could not register spitz headphone irq.\n");
-		return ret;
-	}
-	set_irq_type(SPITZ_IRQ_GPIO_AK_INT, IRQT_BOTHEDGE);
 
 	spitz_snd_device = platform_device_alloc("soc-audio", -1);
 	if (!spitz_snd_device) {
@@ -267,6 +261,14 @@
 		return -ENOMEM;
 	}
 
+	ret = request_irq(SPITZ_IRQ_GPIO_AK_INT, spitz_hp_isr, SA_INTERRUPT, "Headphone Detect", spitz_snd_device);
+	if (ret < 0) {
+		printk(KERN_ERR "Could not register spitz headphone irq.\n");
+		platform_device_put(spitz_snd_device);		
+		return ret;
+	}
+	set_irq_type(SPITZ_IRQ_GPIO_AK_INT, IRQT_BOTHEDGE);
+
 	platform_set_drvdata(spitz_snd_device, &spitz_snd_devdata);
 	spitz_snd_devdata.dev = &spitz_snd_device->dev;
 	ret = platform_device_add(spitz_snd_device);

