diff -urpN -X ../dontdiff linux-2.6.20-rc6/arch/arm/mach-s3c2410/dma.c linux-2.6.20-rc6-dma-map/arch/arm/mach-s3c2410/dma.c
--- linux-2.6.20-rc6/arch/arm/mach-s3c2410/dma.c	2007-01-27 17:39:17.000000000 +0000
+++ linux-2.6.20-rc6-dma-map/arch/arm/mach-s3c2410/dma.c	2007-01-28 22:14:28.000000000 +0000
@@ -127,8 +127,27 @@ static struct s3c24xx_dma_selection __in
 	.map_size	= ARRAY_SIZE(s3c2410_dma_mappings),
 };
 
+static struct s3c24xx_dma_order __initdata s3c2410_dma_order = {
+	.channels	= {
+		[DMACH_SDI]	= {
+			.list	= {
+				[0]	= 3 | DMA_CH_VALID,
+				[1]	= 2 | DMA_CH_VALID,
+				[2]	= 0 | DMA_CH_VALID,
+			},
+		},
+		[DMACH_I2S_IN]	= {
+			.list	= {
+				[0]	= 1 | DMA_CH_VALID,
+				[1]	= 2 | DMA_CH_VALID,
+			},
+		},
+	},
+};
+
 static int s3c2410_dma_add(struct sys_device *sysdev)
 {
+	s3c24xx_dma_order_set(&s3c2410_dma_order);
 	return s3c24xx_dma_init_map(&s3c2410_dma_sel);
 }
 

