diff -Naur a/arch/arm/mach-s3c2442/mach-rx1950.c b/arch/arm/mach-s3c2442/mach-rx1950.c
--- a/arch/arm/mach-s3c2442/mach-rx1950.c	2007-05-31 10:11:47.000000000 +0200
+++ b/arch/arm/mach-s3c2442/mach-rx1950.c	2007-06-27 11:21:59.000000000 +0200
@@ -27,6 +27,7 @@
 #include <linux/mtd/nand_ecc.h>
 #include <linux/mtd/partitions.h>
 
+#include <linux/mmc/host.h>
 #include <linux/mmc/protocol.h>
 
 #include <linux/input_pda.h>
@@ -47,7 +48,7 @@
 #include <asm/arch/regs-irq.h>
 #include <asm/arch/regs-timer.h>
 #include <asm/arch/ts.h>
-#include <asm/arch/mmc.h>
+#include <asm/arch/mci.h>
 #include <asm/arch/fb.h>
 #include <asm/arch/lcd.h>
 #include <asm/arch/udc.h>
@@ -265,21 +266,24 @@
 	.lcd_power		= rx1950_lcd_power
 };
 
-static void s3c2410_mmc_def_setpower(unsigned int to)
+static void s3c2410_mmc_def_setpower(unsigned char power_mode, unsigned short vdd)
 {
 	s3c2410_gpio_cfgpin(S3C2410_GPH8, S3C2410_GPIO_OUTPUT);
-	s3c2410_gpio_setpin(S3C2410_GPH8, to);
+
+        switch (power_mode) {
+        case MMC_POWER_OFF:
+		s3c2410_gpio_setpin(S3C2410_GPH8, 0);
+                break;
+        case MMC_POWER_ON:
+		s3c2410_gpio_setpin(S3C2410_GPH8, 1);
+                break;
+        }
 }
 
-static struct s3c24xx_mmc_platdata rx1950_mmc_cfg = {
-	/* please comment MMC_CAP_MULTIWRITE in drivers/mmc/s3c2440mci.c avoid kernel hang
-	 * and set mmc->max_blk_size = 512 instead of 64 in drivers/mmc/s3c2440mci.c
-	 * othewise we have kernel BUG() in drivers/mmc/mmc.c with ext2 fs
-	 */
+static struct s3c24xx_mci_pdata rx1950_mmc_cfg = {
 	.gpio_detect  = S3C2410_GPF5,
 	.set_power  = s3c2410_mmc_def_setpower,
 	.ocr_avail  = MMC_VDD_32_33,
-	.f_max = 3000000,
 };
 
 static struct mtd_partition rx1950_nand_part[] = {

