diffs from linux-2.6.18-rmkdevel2-bjd1 to linux-2.6.18-rmkdevel2-bjd2-noifdef
generating diff for arch/arm/mach-s3c2410
diff -urpN -X linux-2.6.18-rmkdevel2-bjd1/Documentation/dontdiff linux-2.6.18-rmkdevel2-bjd1/arch/arm/mach-s3c2410/Kconfig linux-2.6.18-rmkdevel2-bjd2-noifdef/arch/arm/mach-s3c2410/Kconfig
--- linux-2.6.18-rmkdevel2-bjd1/arch/arm/mach-s3c2410/Kconfig	2006-09-22 15:11:58.000000000 +0100
+++ linux-2.6.18-rmkdevel2-bjd2-noifdef/arch/arm/mach-s3c2410/Kconfig	2006-09-25 10:10:11.000000000 +0100
@@ -152,16 +152,16 @@ config S3C2410_PM
 	help
 	  Power Management code common to S3C2410 and better
 
-config CPU_S3C2410_DMA
+config CPU_S3C2410_DMATAB
 	bool
-	depends on S3C2410_DMA && (CPU_S3C2410 || CPU_S3C2442)
-	default y if CPU_S3C2410 || CPU_S3C2442
+	depends on S3C2410_DMA
 	help
 	  DMA device selection for S3C2410 and compatible CPUs
 
 config CPU_S3C2410
 	bool
 	depends on ARCH_S3C2410
+	select CPU_S3C2410_DMATAB
 	select S3C2410_CLOCK
 	select S3C2410_PM
 	help
@@ -195,11 +195,18 @@ config CPU_S3C244X
 	help
 	  Support for S3C2440 and S3C2442 Samsung Mobile CPU based systems.
 
+config CPU_S3C244X_PM
+	bool
+	depends on CPU_S3C244X && CONFIG_PM
+	help
+	  Support for S3C2440 and S3C2442 Power Management
+
 config CPU_S3C2440
 	bool
 	depends on ARCH_S3C2410
 	select S3C2410_CLOCK
 	select S3C2410_PM
+	select CPU_S3C244X_PM
 	select CPU_S3C244X
 	help
 	  Support for S3C2440 Samsung Mobile CPU based systems.
@@ -207,8 +214,10 @@ config CPU_S3C2440
 config CPU_S3C2442
 	bool
 	depends on ARCH_S3C2420
+	select CPU_S3C2410_DMATAB
 	select S3C2410_CLOCK
 	select S3C2410_PM
+	select CPU_S3C244X_PM
 	select CPU_S3C244X
 	help
 	  Support for S3C2442 Samsung Mobile CPU based systems.
diff -urpN -X linux-2.6.18-rmkdevel2-bjd1/Documentation/dontdiff linux-2.6.18-rmkdevel2-bjd1/arch/arm/mach-s3c2410/Makefile linux-2.6.18-rmkdevel2-bjd2-noifdef/arch/arm/mach-s3c2410/Makefile
--- linux-2.6.18-rmkdevel2-bjd1/arch/arm/mach-s3c2410/Makefile	2006-09-22 15:11:58.000000000 +0100
+++ linux-2.6.18-rmkdevel2-bjd2-noifdef/arch/arm/mach-s3c2410/Makefile	2006-09-25 10:12:24.000000000 +0100
@@ -23,14 +23,16 @@ obj-$(CONFIG_CPU_S3C2400)	+= s3c2400-gpi
 obj-$(CONFIG_CPU_S3C2410)	+= s3c2410.o
 obj-$(CONFIG_CPU_S3C2410)	+= s3c2410-gpio.o
 obj-$(CONFIG_CPU_S3C2410)	+= s3c2410-irq.o
+obj-$(CONFIG_CPU_S3C2410_PM)	+= s3c2410-pm.o
+obj-dma-$(CONFIG_CPU_S3C2410)	+= s3c2410-dma.o
 
-obj-$(CONFIG_S3C2410_PM)	+= s3c2410-pm.o s3c2410-sleep.o
-obj-$(CONFIG_CPU_S3C2410_DMA)	+= s3c2410-dma.o
+obj-$(CONFIG_CPU_S3C2410_DMATAB) += s3c2410-dmatab.o
 
 # Power Management support
 
 obj-$(CONFIG_PM)		+= pm.o sleep.o
 obj-$(CONFIG_PM_SIMTEC)		+= pm-simtec.o
+obj-$(CONFIG_S3C2410_PM)	+= pm-s3c2410.o s3c2410-sleep.o
 
 # S3C2412 support
 obj-$(CONFIG_CPU_S3C2412)	+= s3c2412.o
@@ -45,6 +47,7 @@ obj-$(CONFIG_S3C2412_PM)	+= s3c2412-pm.o
 
 obj-$(CONFIG_CPU_S3C244X)	+= s3c244x.o
 obj-$(CONFIG_CPU_S3C244X)	+= s3c244x-irq.o
+obj-$(CONFIG_CPU_S3C244X_PM)	+= s3c244x-pm.o
 
 # Clock control
 
@@ -62,6 +65,7 @@ obj-dma-$(CONFIG_CPU_S3C2440)	+= s3c2440
 
 obj-$(CONFIG_CPU_S3C2442)	+= s3c2442.o
 obj-$(CONFIG_CPU_S3C2442)	+= s3c2442-clock.o
+obj-dma-$(CONFIG_CPU_S3C2442)	+= s3c2442-dma.o
 
 # bast extras
 
diff -urpN -X linux-2.6.18-rmkdevel2-bjd1/Documentation/dontdiff linux-2.6.18-rmkdevel2-bjd1/arch/arm/mach-s3c2410/pm-s3c2410.c linux-2.6.18-rmkdevel2-bjd2-noifdef/arch/arm/mach-s3c2410/pm-s3c2410.c
--- linux-2.6.18-rmkdevel2-bjd1/arch/arm/mach-s3c2410/pm-s3c2410.c	1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-rmkdevel2-bjd2-noifdef/arch/arm/mach-s3c2410/pm-s3c2410.c	2006-09-25 09:35:35.000000000 +0100
@@ -0,0 +1,74 @@
+/* linux/arch/arm/mach-s3c2410/pm-s3c2410.c
+ *
+ * Copyright (c) 2006 Simtec Electronics
+ *	Ben Dooks <ben@simtec.co.uk>
+ *
+ * S3C2410 (and compatible) Power Manager (Suspend-To-RAM) support
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+
+#include <linux/init.h>
+#include <linux/suspend.h>
+#include <linux/errno.h>
+#include <linux/time.h>
+#include <linux/sysdev.h>
+
+#include <asm/hardware.h>
+#include <asm/io.h>
+
+#include <asm/arch/regs-gpio.h>
+
+#include "cpu.h"
+#include "pm.h"
+#include "pm-s3c2410.h"
+
+#ifdef CONFIG_S3C2410_PM_DEBUG
+extern void pm_dbg(const char *fmt, ...);
+#define DBG(fmt...) pm_dbg(fmt)
+#else
+#define DBG(fmt...) printk(KERN_DEBUG fmt)
+#endif
+
+static void s3c2410_pm_prepare(void)
+{
+	/* ensure at least GSTATUS3 has the resume address */
+
+	__raw_writel(virt_to_phys(s3c2410_cpu_resume), S3C2410_GSTATUS3);
+
+	DBG("GSTATUS3 0x%08x\n", __raw_readl(S3C2410_GSTATUS3));
+	DBG("GSTATUS4 0x%08x\n", __raw_readl(S3C2410_GSTATUS4));
+}
+
+int s3c2410_pm_resume(struct sys_device *dev)
+{
+	unsigned long tmp;
+
+	/* unset the return-from-sleep flag, to ensure reset */
+
+	tmp = __raw_readl(S3C2410_GSTATUS2);
+	tmp &= S3C2410_GSTATUS2_OFFRESET;
+	__raw_writel(tmp, S3C2410_GSTATUS2);
+
+	return 0;
+}
+
+int s3c2410_pm_add(struct sys_device *dev)
+{
+	pm_cpu_prep = s3c2410_pm_prepare;
+	pm_cpu_sleep = s3c2410_cpu_suspend;
+
+	return 0;
+}
diff -urpN -X linux-2.6.18-rmkdevel2-bjd1/Documentation/dontdiff linux-2.6.18-rmkdevel2-bjd1/arch/arm/mach-s3c2410/pm-s3c2410.h linux-2.6.18-rmkdevel2-bjd2-noifdef/arch/arm/mach-s3c2410/pm-s3c2410.h
--- linux-2.6.18-rmkdevel2-bjd1/arch/arm/mach-s3c2410/pm-s3c2410.h	1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-rmkdevel2-bjd2-noifdef/arch/arm/mach-s3c2410/pm-s3c2410.h	2006-09-25 09:47:37.000000000 +0100
@@ -0,0 +1,16 @@
+/* arch/arm/mach-s3c2410/pm-s3c2410.h
+ *
+ * Copyright (c) 2006 Simtec Electronics
+ *	Ben Dooks <ben@simtec.co.uk>
+ *
+ * Header file for s3c2410 power management functions
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+/* not for export outside core code */
+
+extern int s3c2410_pm_resume(struct sys_device *dev);
+extern int s3c2410_pm_add(struct sys_device *dev);
diff -urpN -X linux-2.6.18-rmkdevel2-bjd1/Documentation/dontdiff linux-2.6.18-rmkdevel2-bjd1/arch/arm/mach-s3c2410/s3c2410-dma.c linux-2.6.18-rmkdevel2-bjd2-noifdef/arch/arm/mach-s3c2410/s3c2410-dma.c
--- linux-2.6.18-rmkdevel2-bjd1/arch/arm/mach-s3c2410/s3c2410-dma.c	2006-09-22 15:08:37.000000000 +0100
+++ linux-2.6.18-rmkdevel2-bjd2-noifdef/arch/arm/mach-s3c2410/s3c2410-dma.c	2006-09-25 10:11:43.000000000 +0100
@@ -21,115 +21,7 @@
 #include "dma.h"
 
 #include "cpu.h"
-
-#include <asm/arch/regs-serial.h>
-#include <asm/arch/regs-gpio.h>
-#include <asm/arch/regs-ac97.h>
-#include <asm/arch/regs-mem.h>
-#include <asm/arch/regs-lcd.h>
-#include <asm/arch/regs-sdi.h>
-#include <asm/arch/regs-iis.h>
-#include <asm/arch/regs-spi.h>
-
-static struct s3c24xx_dma_map __initdata s3c2410_dma_mappings[] = {
-	[DMACH_XD0] = {
-		.name		= "xdreq0",
-		.channels[0]	= S3C2410_DCON_CH0_XDREQ0 | DMA_CH_VALID,
-	},
-	[DMACH_XD1] = {
-		.name		= "xdreq1",
-		.channels[1]	= S3C2410_DCON_CH1_XDREQ1 | DMA_CH_VALID,
-	},
-	[DMACH_SDI] = {
-		.name		= "sdi",
-		.channels[0]	= S3C2410_DCON_CH0_SDI | DMA_CH_VALID,
-		.channels[2]	= S3C2410_DCON_CH2_SDI | DMA_CH_VALID,
-		.channels[3]	= S3C2410_DCON_CH3_SDI | DMA_CH_VALID,
-		.hw_addr.to	= S3C2410_PA_IIS + S3C2410_IISFIFO,
-		.hw_addr.from	= S3C2410_PA_IIS + S3C2410_IISFIFO,
-	},
-	[DMACH_SPI0] = {
-		.name		= "spi0",
-		.channels[1]	= S3C2410_DCON_CH1_SPI | DMA_CH_VALID,
-		.hw_addr.to	= S3C2410_PA_SPI + S3C2410_SPTDAT,
-		.hw_addr.from	= S3C2410_PA_SPI + S3C2410_SPRDAT,
-	},
-	[DMACH_SPI1] = {
-		.name		= "spi1",
-		.channels[3]	= S3C2410_DCON_CH3_SPI | DMA_CH_VALID,
-		.hw_addr.to	= S3C2410_PA_SPI + 0x20 + S3C2410_SPTDAT,
-		.hw_addr.from	= S3C2410_PA_SPI + 0x20 + S3C2410_SPRDAT,
-	},
-	[DMACH_UART0] = {
-		.name		= "uart0",
-		.channels[0]	= S3C2410_DCON_CH0_UART0 | DMA_CH_VALID,
-		.hw_addr.to	= S3C2410_PA_UART0 + S3C2410_UTXH,
-		.hw_addr.from	= S3C2410_PA_UART0 + S3C2410_URXH,
-	},
-	[DMACH_UART1] = {
-		.name		= "uart1",
-		.channels[1]	= S3C2410_DCON_CH1_UART1 | DMA_CH_VALID,
-		.hw_addr.to	= S3C2410_PA_UART1 + S3C2410_UTXH,
-		.hw_addr.from	= S3C2410_PA_UART1 + S3C2410_URXH,
-	},
-      	[DMACH_UART2] = {
-		.name		= "uart2",
-		.channels[3]	= S3C2410_DCON_CH3_UART2 | DMA_CH_VALID,
-		.hw_addr.to	= S3C2410_PA_UART2 + S3C2410_UTXH,
-		.hw_addr.from	= S3C2410_PA_UART2 + S3C2410_URXH,
-	},
-	[DMACH_TIMER] = {
-		.name		= "timer",
-		.channels[0]	= S3C2410_DCON_CH0_TIMER | DMA_CH_VALID,
-		.channels[2]	= S3C2410_DCON_CH2_TIMER | DMA_CH_VALID,
-		.channels[3]	= S3C2410_DCON_CH3_TIMER | DMA_CH_VALID,
-	},
-	[DMACH_I2S_IN] = {
-		.name		= "i2s-sdi",
-		.channels[1]	= S3C2410_DCON_CH1_I2SSDI | DMA_CH_VALID,
-		.channels[2]	= S3C2410_DCON_CH2_I2SSDI | DMA_CH_VALID,
-		.hw_addr.from	= S3C2410_PA_IIS + S3C2410_IISFIFO,
-	},
-	[DMACH_I2S_OUT] = {
-		.name		= "i2s-sdo",
-		.channels[2]	= S3C2410_DCON_CH2_I2SSDO | DMA_CH_VALID,
-		.hw_addr.to	= S3C2410_PA_IIS + S3C2410_IISFIFO,
-	},
-	[DMACH_USB_EP1] = {
-		.name		= "usb-ep1",
-		.channels[0]	= S3C2410_DCON_CH0_USBEP1 | DMA_CH_VALID,
-	},
-	[DMACH_USB_EP2] = {
-		.name		= "usb-ep2",
-		.channels[1]	= S3C2410_DCON_CH1_USBEP2 | DMA_CH_VALID,
-	},
-	[DMACH_USB_EP3] = {
-		.name		= "usb-ep3",
-		.channels[2]	= S3C2410_DCON_CH2_USBEP3 | DMA_CH_VALID,
-	},
-	[DMACH_USB_EP4] = {
-		.name		= "usb-ep4",
-		.channels[3]	=S3C2410_DCON_CH3_USBEP4 | DMA_CH_VALID,
-	},
-};
-
-static void s3c2410_dma_select(struct s3c2410_dma_chan *chan,
-			       struct s3c24xx_dma_map *map)
-{
-	chan->dcon = map->channels[chan->number] & ~DMA_CH_VALID;
-}
-
-static struct s3c24xx_dma_selection __initdata s3c2410_dma_sel = {
-	.select		= s3c2410_dma_select,
-	.dcon_mask	= 7 << 24,
-	.map		= s3c2410_dma_mappings,
-	.map_size	= ARRAY_SIZE(s3c2410_dma_mappings),
-};
-
-static int s3c2410_dma_add(struct sys_device *sysdev)
-{
-	return s3c24xx_dma_init_map(&s3c2410_dma_sel);
-}
+#include "s3c2410-dmatab.h"
 
 static struct sysdev_driver s3c2410_dma_driver = {
 	.add	= s3c2410_dma_add,
@@ -141,18 +33,3 @@ static int __init s3c2410_dma_init(void)
 }
 
 arch_initcall(s3c2410_dma_init);
-
-/* S3C2442 DMA contains the same selection table as the S3C2410 */
-
-static struct sysdev_driver s3c2442_dma_driver = {
-	.add	= s3c2410_dma_add,
-};
-
-static int __init s3c2442_dma_init(void)
-{
-	return sysdev_driver_register(&s3c2442_sysclass, &s3c2442_dma_driver);
-}
-
-arch_initcall(s3c2442_dma_init);
-
-
diff -urpN -X linux-2.6.18-rmkdevel2-bjd1/Documentation/dontdiff linux-2.6.18-rmkdevel2-bjd1/arch/arm/mach-s3c2410/s3c2410-dmatab.c linux-2.6.18-rmkdevel2-bjd2-noifdef/arch/arm/mach-s3c2410/s3c2410-dmatab.c
--- linux-2.6.18-rmkdevel2-bjd1/arch/arm/mach-s3c2410/s3c2410-dmatab.c	1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-rmkdevel2-bjd2-noifdef/arch/arm/mach-s3c2410/s3c2410-dmatab.c	2006-09-25 10:10:45.000000000 +0100
@@ -0,0 +1,133 @@
+/* linux/arch/arm/mach-s3c2410/s3c2410-dmatab.c
+ *
+ * (c) 2006 Simtec Electronics
+ *	Ben Dooks <ben@simtec.co.uk>
+ *
+ * S3C2410 DMA selection table
+ *
+ * http://armlinux.simtec.co.uk/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/sysdev.h>
+
+#include <asm/dma.h>
+#include <asm/arch/dma.h>
+#include "dma.h"
+
+#include "cpu.h"
+#include "s3c2410-dmatab.h"
+
+#include <asm/arch/regs-serial.h>
+#include <asm/arch/regs-gpio.h>
+#include <asm/arch/regs-ac97.h>
+#include <asm/arch/regs-mem.h>
+#include <asm/arch/regs-lcd.h>
+#include <asm/arch/regs-sdi.h>
+#include <asm/arch/regs-iis.h>
+#include <asm/arch/regs-spi.h>
+
+static struct s3c24xx_dma_map __initdata s3c2410_dma_mappings[] = {
+	[DMACH_XD0] = {
+		.name		= "xdreq0",
+		.channels[0]	= S3C2410_DCON_CH0_XDREQ0 | DMA_CH_VALID,
+	},
+	[DMACH_XD1] = {
+		.name		= "xdreq1",
+		.channels[1]	= S3C2410_DCON_CH1_XDREQ1 | DMA_CH_VALID,
+	},
+	[DMACH_SDI] = {
+		.name		= "sdi",
+		.channels[0]	= S3C2410_DCON_CH0_SDI | DMA_CH_VALID,
+		.channels[2]	= S3C2410_DCON_CH2_SDI | DMA_CH_VALID,
+		.channels[3]	= S3C2410_DCON_CH3_SDI | DMA_CH_VALID,
+		.hw_addr.to	= S3C2410_PA_IIS + S3C2410_IISFIFO,
+		.hw_addr.from	= S3C2410_PA_IIS + S3C2410_IISFIFO,
+	},
+	[DMACH_SPI0] = {
+		.name		= "spi0",
+		.channels[1]	= S3C2410_DCON_CH1_SPI | DMA_CH_VALID,
+		.hw_addr.to	= S3C2410_PA_SPI + S3C2410_SPTDAT,
+		.hw_addr.from	= S3C2410_PA_SPI + S3C2410_SPRDAT,
+	},
+	[DMACH_SPI1] = {
+		.name		= "spi1",
+		.channels[3]	= S3C2410_DCON_CH3_SPI | DMA_CH_VALID,
+		.hw_addr.to	= S3C2410_PA_SPI + 0x20 + S3C2410_SPTDAT,
+		.hw_addr.from	= S3C2410_PA_SPI + 0x20 + S3C2410_SPRDAT,
+	},
+	[DMACH_UART0] = {
+		.name		= "uart0",
+		.channels[0]	= S3C2410_DCON_CH0_UART0 | DMA_CH_VALID,
+		.hw_addr.to	= S3C2410_PA_UART0 + S3C2410_UTXH,
+		.hw_addr.from	= S3C2410_PA_UART0 + S3C2410_URXH,
+	},
+	[DMACH_UART1] = {
+		.name		= "uart1",
+		.channels[1]	= S3C2410_DCON_CH1_UART1 | DMA_CH_VALID,
+		.hw_addr.to	= S3C2410_PA_UART1 + S3C2410_UTXH,
+		.hw_addr.from	= S3C2410_PA_UART1 + S3C2410_URXH,
+	},
+      	[DMACH_UART2] = {
+		.name		= "uart2",
+		.channels[3]	= S3C2410_DCON_CH3_UART2 | DMA_CH_VALID,
+		.hw_addr.to	= S3C2410_PA_UART2 + S3C2410_UTXH,
+		.hw_addr.from	= S3C2410_PA_UART2 + S3C2410_URXH,
+	},
+	[DMACH_TIMER] = {
+		.name		= "timer",
+		.channels[0]	= S3C2410_DCON_CH0_TIMER | DMA_CH_VALID,
+		.channels[2]	= S3C2410_DCON_CH2_TIMER | DMA_CH_VALID,
+		.channels[3]	= S3C2410_DCON_CH3_TIMER | DMA_CH_VALID,
+	},
+	[DMACH_I2S_IN] = {
+		.name		= "i2s-sdi",
+		.channels[1]	= S3C2410_DCON_CH1_I2SSDI | DMA_CH_VALID,
+		.channels[2]	= S3C2410_DCON_CH2_I2SSDI | DMA_CH_VALID,
+		.hw_addr.from	= S3C2410_PA_IIS + S3C2410_IISFIFO,
+	},
+	[DMACH_I2S_OUT] = {
+		.name		= "i2s-sdo",
+		.channels[2]	= S3C2410_DCON_CH2_I2SSDO | DMA_CH_VALID,
+		.hw_addr.to	= S3C2410_PA_IIS + S3C2410_IISFIFO,
+	},
+	[DMACH_USB_EP1] = {
+		.name		= "usb-ep1",
+		.channels[0]	= S3C2410_DCON_CH0_USBEP1 | DMA_CH_VALID,
+	},
+	[DMACH_USB_EP2] = {
+		.name		= "usb-ep2",
+		.channels[1]	= S3C2410_DCON_CH1_USBEP2 | DMA_CH_VALID,
+	},
+	[DMACH_USB_EP3] = {
+		.name		= "usb-ep3",
+		.channels[2]	= S3C2410_DCON_CH2_USBEP3 | DMA_CH_VALID,
+	},
+	[DMACH_USB_EP4] = {
+		.name		= "usb-ep4",
+		.channels[3]	=S3C2410_DCON_CH3_USBEP4 | DMA_CH_VALID,
+	},
+};
+
+static void s3c2410_dma_select(struct s3c2410_dma_chan *chan,
+			       struct s3c24xx_dma_map *map)
+{
+	chan->dcon = map->channels[chan->number] & ~DMA_CH_VALID;
+}
+
+static struct s3c24xx_dma_selection __initdata s3c2410_dma_sel = {
+	.select		= s3c2410_dma_select,
+	.dcon_mask	= 7 << 24,
+	.map		= s3c2410_dma_mappings,
+	.map_size	= ARRAY_SIZE(s3c2410_dma_mappings),
+};
+
+int s3c2410_dma_add(struct sys_device *sysdev)
+{
+	return s3c24xx_dma_init_map(&s3c2410_dma_sel);
+}
diff -urpN -X linux-2.6.18-rmkdevel2-bjd1/Documentation/dontdiff linux-2.6.18-rmkdevel2-bjd1/arch/arm/mach-s3c2410/s3c2410-dmatab.h linux-2.6.18-rmkdevel2-bjd2-noifdef/arch/arm/mach-s3c2410/s3c2410-dmatab.h
--- linux-2.6.18-rmkdevel2-bjd1/arch/arm/mach-s3c2410/s3c2410-dmatab.h	1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-rmkdevel2-bjd2-noifdef/arch/arm/mach-s3c2410/s3c2410-dmatab.h	2006-09-25 10:11:25.000000000 +0100
@@ -0,0 +1,15 @@
+/* arch/arm/mach-s3c2410/s3c2410-dmatab.h
+ *
+ * Copyright (c) 2006 Simtec Electronics
+ *	Ben Dooks <ben@simtec.co.uk>
+ *
+ * Header file for s3c2410 dma table
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+/* not for export outside core code */
+
+extern int s3c2410_dma_add(struct sys_device *sysdev);
diff -urpN -X linux-2.6.18-rmkdevel2-bjd1/Documentation/dontdiff linux-2.6.18-rmkdevel2-bjd1/arch/arm/mach-s3c2410/s3c2410-pm.c linux-2.6.18-rmkdevel2-bjd2-noifdef/arch/arm/mach-s3c2410/s3c2410-pm.c
--- linux-2.6.18-rmkdevel2-bjd1/arch/arm/mach-s3c2410/s3c2410-pm.c	2006-09-22 15:08:37.000000000 +0100
+++ linux-2.6.18-rmkdevel2-bjd2-noifdef/arch/arm/mach-s3c2410/s3c2410-pm.c	2006-09-25 09:35:25.000000000 +0100
@@ -26,51 +26,9 @@
 #include <linux/time.h>
 #include <linux/sysdev.h>
 
-#include <asm/hardware.h>
-#include <asm/io.h>
-
-#include <asm/arch/regs-gpio.h>
-
 #include "cpu.h"
 #include "pm.h"
-
-#ifdef CONFIG_S3C2410_PM_DEBUG
-extern void pm_dbg(const char *fmt, ...);
-#define DBG(fmt...) pm_dbg(fmt)
-#else
-#define DBG(fmt...) printk(KERN_DEBUG fmt)
-#endif
-
-static void s3c2410_pm_prepare(void)
-{
-	/* ensure at least GSTATUS3 has the resume address */
-
-	__raw_writel(virt_to_phys(s3c2410_cpu_resume), S3C2410_GSTATUS3);
-
-	DBG("GSTATUS3 0x%08x\n", __raw_readl(S3C2410_GSTATUS3));
-	DBG("GSTATUS4 0x%08x\n", __raw_readl(S3C2410_GSTATUS4));
-}
-
-int s3c2410_pm_resume(struct sys_device *dev)
-{
-	unsigned long tmp;
-
-	/* unset the return-from-sleep flag, to ensure reset */
-
-	tmp = __raw_readl(S3C2410_GSTATUS2);
-	tmp &= S3C2410_GSTATUS2_OFFRESET;
-	__raw_writel(tmp, S3C2410_GSTATUS2);
-
-	return 0;
-}
-
-static int s3c2410_pm_add(struct sys_device *dev)
-{
-	pm_cpu_prep = s3c2410_pm_prepare;
-	pm_cpu_sleep = s3c2410_cpu_suspend;
-
-	return 0;
-}
+#include "pm-s3c2410.h"
 
 static struct sysdev_driver s3c2410_pm_driver = {
 	.add		= s3c2410_pm_add,
@@ -86,26 +44,3 @@ static int __init s3c2410_pm_drvinit(voi
 
 arch_initcall(s3c2410_pm_drvinit);
 
-static struct sysdev_driver s3c2440_pm_driver = {
-	.add		= s3c2410_pm_add,
-	.resume		= s3c2410_pm_resume,
-};
-
-static int __init s3c2440_pm_drvinit(void)
-{
-	return sysdev_driver_register(&s3c2440_sysclass, &s3c2440_pm_driver);
-}
-
-arch_initcall(s3c2440_pm_drvinit);
-
-static struct sysdev_driver s3c2442_pm_driver = {
-	.add		= s3c2410_pm_add,
-	.resume		= s3c2410_pm_resume,
-};
-
-static int __init s3c2442_pm_drvinit(void)
-{
-	return sysdev_driver_register(&s3c2442_sysclass, &s3c2442_pm_driver);
-}
-
-arch_initcall(s3c2442_pm_drvinit);
diff -urpN -X linux-2.6.18-rmkdevel2-bjd1/Documentation/dontdiff linux-2.6.18-rmkdevel2-bjd1/arch/arm/mach-s3c2410/s3c2442-dma.c linux-2.6.18-rmkdevel2-bjd2-noifdef/arch/arm/mach-s3c2410/s3c2442-dma.c
--- linux-2.6.18-rmkdevel2-bjd1/arch/arm/mach-s3c2410/s3c2442-dma.c	1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-rmkdevel2-bjd2-noifdef/arch/arm/mach-s3c2410/s3c2442-dma.c	2006-09-25 10:16:42.000000000 +0100
@@ -0,0 +1,37 @@
+/* linux/arch/arm/mach-s3c2410/s3c2442-dma.c
+ *
+ * (c) 2006 Simtec Electronics
+ *	Ben Dooks <ben@simtec.co.uk>
+ *
+ * S3C2442 DMA selection
+ *
+ * http://armlinux.simtec.co.uk/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+#include <linux/kernel.h>
+#include <linux/init.h>
+#include <linux/sysdev.h>
+
+#include <asm/dma.h>
+#include <asm/arch/dma.h>
+
+#include "cpu.h"
+#include "dma.h"
+#include "s3c2410-dmatab.h"
+
+/* S3C2442 DMA contains the same selection table as the S3C2410 */
+
+static struct sysdev_driver s3c2442_dma_driver = {
+	.add	= s3c2410_dma_add,
+};
+
+static int __init s3c2442_dma_init(void)
+{
+	return sysdev_driver_register(&s3c2442_sysclass, &s3c2442_dma_driver);
+}
+
+arch_initcall(s3c2442_dma_init);
diff -urpN -X linux-2.6.18-rmkdevel2-bjd1/Documentation/dontdiff linux-2.6.18-rmkdevel2-bjd1/arch/arm/mach-s3c2410/s3c244x-pm.c linux-2.6.18-rmkdevel2-bjd2-noifdef/arch/arm/mach-s3c2410/s3c244x-pm.c
--- linux-2.6.18-rmkdevel2-bjd1/arch/arm/mach-s3c2410/s3c244x-pm.c	1970-01-01 01:00:00.000000000 +0100
+++ linux-2.6.18-rmkdevel2-bjd2-noifdef/arch/arm/mach-s3c2410/s3c244x-pm.c	2006-09-25 09:48:44.000000000 +0100
@@ -0,0 +1,55 @@
+/* linux/arch/arm/mach-s3c2410/s3c244x-pm.c
+ *
+ * Copyright (c) 2006 Simtec Electronics
+ *	Ben Dooks <ben@simtec.co.uk>
+ *
+ * S3C2440 Power Manager (Suspend-To-RAM) support
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+
+#include <linux/init.h>
+#include <linux/suspend.h>
+#include <linux/errno.h>
+#include <linux/time.h>
+#include <linux/sysdev.h>
+
+#include "cpu.h"
+#include "pm.h"
+#include "pm-s3c2410.h"
+
+static struct sysdev_driver s3c2440_pm_driver = {
+	.add		= s3c2410_pm_add,
+	.resume		= s3c2410_pm_resume,
+};
+
+static int __init s3c2440_pm_drvinit(void)
+{
+	return sysdev_driver_register(&s3c2440_sysclass, &s3c2440_pm_driver);
+}
+
+arch_initcall(s3c2440_pm_drvinit);
+
+static struct sysdev_driver s3c2442_pm_driver = {
+	.add		= s3c2410_pm_add,
+	.resume		= s3c2410_pm_resume,
+};
+
+static int __init s3c2442_pm_drvinit(void)
+{
+	return sysdev_driver_register(&s3c2442_sysclass, &s3c2442_pm_driver);
+}
+
+arch_initcall(s3c2442_pm_drvinit);

