r2405 - branches/src/target/kernel/2.6.22.x/patches

shoragan at sita.openmoko.org shoragan at sita.openmoko.org
Fri Jul 27 01:00:23 CEST 2007


Author: shoragan
Date: 2007-07-27 01:00:22 +0200 (Fri, 27 Jul 2007)
New Revision: 2405

Added:
   branches/src/target/kernel/2.6.22.x/patches/missing_defs.patch
Modified:
   branches/src/target/kernel/2.6.22.x/patches/gta01-core.patch
   branches/src/target/kernel/2.6.22.x/patches/s3c_mci.patch
   branches/src/target/kernel/2.6.22.x/patches/s3c_mci_platform.patch
   branches/src/target/kernel/2.6.22.x/patches/series
Log:
Use better patch for MMC by Felix "nbd" Fietkau.


Modified: branches/src/target/kernel/2.6.22.x/patches/gta01-core.patch
===================================================================
--- branches/src/target/kernel/2.6.22.x/patches/gta01-core.patch	2007-07-26 20:53:24 UTC (rev 2404)
+++ branches/src/target/kernel/2.6.22.x/patches/gta01-core.patch	2007-07-26 23:00:22 UTC (rev 2405)
@@ -1,6 +1,8 @@
 This patch adds support for the FIC GTA01 machine type to the ARM port of
 the linux kernel.
 
+Index: linux-2.6.22.1/arch/arm/mach-s3c2410/Kconfig
+===================================================================
 --- linux-2.6.22.1.orig/arch/arm/mach-s3c2410/Kconfig
 +++ linux-2.6.22.1/arch/arm/mach-s3c2410/Kconfig
 @@ -109,5 +109,12 @@
@@ -16,6 +18,8 @@
 +
  endmenu
  
+Index: linux-2.6.22.1/arch/arm/mach-s3c2410/Makefile
+===================================================================
 --- linux-2.6.22.1.orig/arch/arm/mach-s3c2410/Makefile
 +++ linux-2.6.22.1/arch/arm/mach-s3c2410/Makefile
 @@ -29,3 +29,4 @@
@@ -23,9 +27,11 @@
  obj-$(CONFIG_MACH_VR1000)	+= mach-vr1000.o usb-simtec.o
  obj-$(CONFIG_MACH_QT2410)	+= mach-qt2410.o
 +obj-$(CONFIG_MACH_NEO1973_GTA01)+= mach-gta01.o
+Index: linux-2.6.22.1/arch/arm/mach-s3c2410/mach-gta01.c
+===================================================================
 --- /dev/null
 +++ linux-2.6.22.1/arch/arm/mach-s3c2410/mach-gta01.c
-@@ -0,0 +1,747 @@
+@@ -0,0 +1,755 @@
 +/*
 + * linux/arch/arm/mach-s3c2410/mach-gta01.c
 + *
@@ -63,6 +69,7 @@
 +#include <linux/serial_core.h>
 +#include <linux/spi/spi.h>
 +#include <linux/spi/spi_bitbang.h>
++#include <linux/mmc/mmc.h>
 +#include <linux/mmc/host.h>
 +
 +#include <linux/mtd/mtd.h>
@@ -414,7 +421,14 @@
 +};
 +
 +static unsigned int mmc_millivolts[] = {
-+	[MMC_VDD_165_195]	= 2000, // TODO is this correct?
++	[MMC_VDD_145_150]	= 1500,
++	[MMC_VDD_150_155]	= 1500,
++	[MMC_VDD_155_160]	= 1600,
++	[MMC_VDD_160_165]	= 1600,
++	[MMC_VDD_165_170]	= 1700,
++	[MMC_VDD_17_18]		= 1800,
++	[MMC_VDD_18_19]		= 1900,
++	[MMC_VDD_19_20]		= 2000,
 +	[MMC_VDD_20_21]		= 2100,
 +	[MMC_VDD_21_22]		= 2200,
 +	[MMC_VDD_22_23]		= 2300,
@@ -752,7 +766,7 @@
 +	platform_device_register(&gta01_pmu_dev);
 +	platform_device_register(&gta01_led_dev);
 +
-+    platform_add_devices(gta01_devices, ARRAY_SIZE(gta01_devices));
++	platform_add_devices(gta01_devices, ARRAY_SIZE(gta01_devices));
 +
 +	s3c2410_pm_init();
 +
@@ -773,6 +787,8 @@
 +MACHINE_END
 +
 +
+Index: linux-2.6.22.1/include/asm-arm/arch-s3c2410/gta01.h
+===================================================================
 --- /dev/null
 +++ linux-2.6.22.1/include/asm-arm/arch-s3c2410/gta01.h
 @@ -0,0 +1,70 @@

Added: branches/src/target/kernel/2.6.22.x/patches/missing_defs.patch
===================================================================
--- branches/src/target/kernel/2.6.22.x/patches/missing_defs.patch	2007-07-26 20:53:24 UTC (rev 2404)
+++ branches/src/target/kernel/2.6.22.x/patches/missing_defs.patch	2007-07-26 23:00:22 UTC (rev 2405)
@@ -0,0 +1,134 @@
+Index: linux-2.6.22.1/include/linux/mmc/core.h
+===================================================================
+--- linux-2.6.22.1.orig/include/linux/mmc/core.h	2007-07-19 00:30:53.705721081 +0200
++++ linux-2.6.22.1/include/linux/mmc/core.h	2007-07-19 00:30:57.097914392 +0200
+@@ -56,12 +56,15 @@
+ 	unsigned int		retries;	/* max number of retries */
+ 	unsigned int		error;		/* command error */
+ 
+-#define MMC_ERR_NONE	0
+-#define MMC_ERR_TIMEOUT	1
+-#define MMC_ERR_BADCRC	2
+-#define MMC_ERR_FIFO	3
+-#define MMC_ERR_FAILED	4
+-#define MMC_ERR_INVALID	5
++#define MMC_ERR_NONE		0
++#define MMC_ERR_TIMEOUT		1
++#define MMC_ERR_BADCRC		2
++#define MMC_ERR_FIFO		3
++#define MMC_ERR_DMA		4
++#define MMC_ERR_BUSY		5
++#define MMC_ERR_FAILED		6
++#define MMC_ERR_INVALID		7
++#define MMC_ERR_CANCELED	8
+ 
+ 	struct mmc_data		*data;		/* data segment associated with cmd */
+ 	struct mmc_request	*mrq;		/* associated request */
+Index: linux-2.6.22.1/include/linux/mmc/mmc.h
+===================================================================
+--- linux-2.6.22.1.orig/include/linux/mmc/mmc.h	2007-07-19 00:30:50.197521158 +0200
++++ linux-2.6.22.1/include/linux/mmc/mmc.h	2007-07-19 00:30:57.133916442 +0200
+@@ -78,6 +78,21 @@
+ #define MMC_APP_CMD              55   /* ac   [31:16] RCA        R1  */
+ #define MMC_GEN_CMD              56   /* adtc [0] RD/WR          R1  */
+ 
++/* SD commands                           type  argument     response */
++  /* class 0 */
++/* This is basically the same command as for MMC with some quirks. */
++#define SD_SEND_RELATIVE_ADDR     3   /* bcr                     R6  */
++#define SD_SEND_IF_COND           8   /* bcr  [11:0] See below   R7  */
++
++  /* class 10 */
++#define SD_SWITCH                 6   /* adtc [31:0] See below   R1  */
++
++  /* Application commands */
++#define SD_APP_SET_BUS_WIDTH      6   /* ac   [1:0] bus width    R1  */
++#define SD_APP_SEND_NUM_WR_BLKS  22   /* adtc                    R1  */
++#define SD_APP_OP_COND           41   /* bcr  [31:0] OCR         R3  */
++#define SD_APP_SEND_SCR          51   /* adtc                    R1  */
++
+ /*
+  * MMC_SWITCH argument format:
+  *
+@@ -90,6 +105,27 @@
+  */
+ 
+ /*
++ * SD_SWITCH argument format:
++ *
++ *      [31] Check (0) or switch (1)
++ *      [30:24] Reserved (0)
++ *      [23:20] Function group 6
++ *      [19:16] Function group 5
++ *      [15:12] Function group 4
++ *      [11:8] Function group 3
++ *      [7:4] Function group 2
++ *      [3:0] Function group 1
++ */
++
++/*
++ * SD_SEND_IF_COND argument format:
++ *
++ *	[31:12] Reserved (0)
++ *	[11:8] Host Voltage Supply Flags
++ *	[7:0] Check Pattern (0xAA)
++ */
++
++/*
+   MMC status in R1
+   Type
+   	e : error bit
+@@ -172,9 +208,30 @@
+ 	u8  ecc;
+ };
+ 
+-/*
+- * OCR bits are mostly in host.h
+- */
++#define MMC_VDD_145_150	0x00000001	/* VDD voltage 1.45 - 1.50 */
++#define MMC_VDD_150_155	0x00000002	/* VDD voltage 1.50 - 1.55 */
++#define MMC_VDD_155_160	0x00000004	/* VDD voltage 1.55 - 1.60 */
++#define MMC_VDD_160_165	0x00000008	/* VDD voltage 1.60 - 1.65 */
++#define MMC_VDD_165_170	0x00000010	/* VDD voltage 1.65 - 1.70 */
++#define MMC_VDD_17_18	0x00000020	/* VDD voltage 1.7 - 1.8 */
++#define MMC_VDD_18_19	0x00000040	/* VDD voltage 1.8 - 1.9 */
++#define MMC_VDD_19_20	0x00000080	/* VDD voltage 1.9 - 2.0 */
++#define MMC_VDD_20_21	0x00000100	/* VDD voltage 2.0 ~ 2.1 */
++#define MMC_VDD_21_22	0x00000200	/* VDD voltage 2.1 ~ 2.2 */
++#define MMC_VDD_22_23	0x00000400	/* VDD voltage 2.2 ~ 2.3 */
++#define MMC_VDD_23_24	0x00000800	/* VDD voltage 2.3 ~ 2.4 */
++#define MMC_VDD_24_25	0x00001000	/* VDD voltage 2.4 ~ 2.5 */
++#define MMC_VDD_25_26	0x00002000	/* VDD voltage 2.5 ~ 2.6 */
++#define MMC_VDD_26_27	0x00004000	/* VDD voltage 2.6 ~ 2.7 */
++#define MMC_VDD_27_28	0x00008000	/* VDD voltage 2.7 ~ 2.8 */
++#define MMC_VDD_28_29	0x00010000	/* VDD voltage 2.8 ~ 2.9 */
++#define MMC_VDD_29_30	0x00020000	/* VDD voltage 2.9 ~ 3.0 */
++#define MMC_VDD_30_31	0x00040000	/* VDD voltage 3.0 ~ 3.1 */
++#define MMC_VDD_31_32	0x00080000	/* VDD voltage 3.1 ~ 3.2 */
++#define MMC_VDD_32_33	0x00100000	/* VDD voltage 3.2 ~ 3.3 */
++#define MMC_VDD_33_34	0x00200000	/* VDD voltage 3.3 ~ 3.4 */
++#define MMC_VDD_34_35	0x00400000	/* VDD voltage 3.4 ~ 3.5 */
++#define MMC_VDD_35_36	0x00800000	/* VDD voltage 3.5 ~ 3.6 */
+ #define MMC_CARD_BUSY	0x80000000	/* Card Power up status bit */
+ 
+ /*
+@@ -253,5 +310,19 @@
+ #define MMC_SWITCH_MODE_CLEAR_BITS	0x02	/* Clear bits which are 1 in value */
+ #define MMC_SWITCH_MODE_WRITE_BYTE	0x03	/* Set target to value */
+ 
++/*
++ * SCR field definitions
++ */
++
++#define SCR_SPEC_VER_0      0           /* Implements system specification 1.0 - 1.01 */
++#define SCR_SPEC_VER_1      1           /* Implements system specification 1.10 */
++#define SCR_SPEC_VER_2      2           /* Implements system specification 2.00 */
++
++/*
++ * SD bus widths
++ */
++#define SD_BUS_WIDTH_1      0
++#define SD_BUS_WIDTH_4      2
++
+ #endif  /* MMC_MMC_PROTOCOL_H */
+ 

Modified: branches/src/target/kernel/2.6.22.x/patches/s3c_mci.patch
===================================================================
--- branches/src/target/kernel/2.6.22.x/patches/s3c_mci.patch	2007-07-26 20:53:24 UTC (rev 2404)
+++ branches/src/target/kernel/2.6.22.x/patches/s3c_mci.patch	2007-07-26 23:00:22 UTC (rev 2405)
@@ -1,8 +1,81 @@
 This is the latest S3C MMC/SD driver by Thomas Kleffel
 
---- /dev/null
-+++ linux-2.6.22.1/drivers/mmc/mmc_debug.c
-@@ -0,0 +1,60 @@
+Index: linux-2.6.22.1/include/asm-arm/arch-s3c2410/regs-sdi.h
+===================================================================
+--- linux-2.6.22.1.orig/include/asm-arm/arch-s3c2410/regs-sdi.h	2007-07-19 01:10:32.537282965 +0200
++++ linux-2.6.22.1/include/asm-arm/arch-s3c2410/regs-sdi.h	2007-07-19 01:10:38.565626502 +0200
+@@ -28,9 +28,15 @@
+ #define S3C2410_SDIDCNT               (0x30)
+ #define S3C2410_SDIDSTA               (0x34)
+ #define S3C2410_SDIFSTA               (0x38)
++
+ #define S3C2410_SDIDATA               (0x3C)
+ #define S3C2410_SDIIMSK               (0x40)
+ 
++#define S3C2440_SDIDATA               (0x40)
++#define S3C2440_SDIIMSK               (0x3C)
++
++#define S3C2440_SDICON_SDRESET        (1<<8)
++#define S3C2440_SDICON_MMCCLOCK       (1<<5)
+ #define S3C2410_SDICON_BYTEORDER      (1<<4)
+ #define S3C2410_SDICON_SDIOIRQ        (1<<3)
+ #define S3C2410_SDICON_RWAITEN        (1<<2)
+@@ -42,7 +48,8 @@
+ #define S3C2410_SDICMDCON_LONGRSP     (1<<10)
+ #define S3C2410_SDICMDCON_WAITRSP     (1<<9)
+ #define S3C2410_SDICMDCON_CMDSTART    (1<<8)
+-#define S3C2410_SDICMDCON_INDEX       (0xff)
++#define S3C2410_SDICMDCON_SENDERHOST  (1<<6)
++#define S3C2410_SDICMDCON_INDEX       (0x3f)
+ 
+ #define S3C2410_SDICMDSTAT_CRCFAIL    (1<<12)
+ #define S3C2410_SDICMDSTAT_CMDSENT    (1<<11)
+@@ -51,6 +58,9 @@
+ #define S3C2410_SDICMDSTAT_XFERING    (1<<8)
+ #define S3C2410_SDICMDSTAT_INDEX      (0xff)
+ 
++#define S3C2440_SDIDCON_DS_BYTE       (0<<22)
++#define S3C2440_SDIDCON_DS_HALFWORD   (1<<22)
++#define S3C2440_SDIDCON_DS_WORD       (2<<22)
+ #define S3C2410_SDIDCON_IRQPERIOD     (1<<21)
+ #define S3C2410_SDIDCON_TXAFTERRESP   (1<<20)
+ #define S3C2410_SDIDCON_RXAFTERCMD    (1<<19)
+@@ -59,6 +69,7 @@
+ #define S3C2410_SDIDCON_WIDEBUS       (1<<16)
+ #define S3C2410_SDIDCON_DMAEN         (1<<15)
+ #define S3C2410_SDIDCON_STOP          (1<<14)
++#define S3C2440_SDIDCON_DATSTART      (1<<14)
+ #define S3C2410_SDIDCON_DATMODE	      (3<<12)
+ #define S3C2410_SDIDCON_BLKNUM        (0x7ff)
+ 
+@@ -68,6 +79,7 @@
+ #define S3C2410_SDIDCON_XFER_RXSTART  (2<<12)
+ #define S3C2410_SDIDCON_XFER_TXSTART  (3<<12)
+ 
++#define S3C2410_SDIDCON_BLKNUM_MASK   (0xFFF)
+ #define S3C2410_SDIDCNT_BLKNUM_SHIFT  (12)
+ 
+ #define S3C2410_SDIDSTA_RDYWAITREQ    (1<<10)
+@@ -82,10 +94,12 @@
+ #define S3C2410_SDIDSTA_TXDATAON      (1<<1)
+ #define S3C2410_SDIDSTA_RXDATAON      (1<<0)
+ 
++#define S3C2440_SDIFSTA_FIFORESET      (1<<16)
++#define S3C2440_SDIFSTA_FIFOFAIL       (3<<14)  /* 3 is correct (2 bits) */
+ #define S3C2410_SDIFSTA_TFDET          (1<<13)
+ #define S3C2410_SDIFSTA_RFDET          (1<<12)
+-#define S3C2410_SDIFSTA_TXHALF         (1<<11)
+-#define S3C2410_SDIFSTA_TXEMPTY        (1<<10)
++#define S3C2410_SDIFSTA_TFHALF         (1<<11)
++#define S3C2410_SDIFSTA_TFEMPTY        (1<<10)
+ #define S3C2410_SDIFSTA_RFLAST         (1<<9)
+ #define S3C2410_SDIFSTA_RFFULL         (1<<8)
+ #define S3C2410_SDIFSTA_RFHALF         (1<<7)
+Index: linux-2.6.22.1/drivers/mmc/host/mmc_debug.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.22.1/drivers/mmc/host/mmc_debug.c	2007-07-19 01:15:25.233962797 +0200
+@@ -0,0 +1,61 @@
 +/*
 + *  linux/drivers/mmc/mmc_debug.c
 + *
@@ -16,6 +89,7 @@
 + *
 + */
 +
++#include <linux/module.h>
 +#include <linux/mmc/core.h>
 +#include <linux/mmc/mmc.h>
 +#include "mmc_debug.h"
@@ -63,8 +137,10 @@
 +	}
 +}
 +EXPORT_SYMBOL(mmc_err2str);
---- /dev/null
-+++ linux-2.6.22.1/drivers/mmc/mmc_debug.h
+Index: linux-2.6.22.1/drivers/mmc/host/mmc_debug.h
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.22.1/drivers/mmc/host/mmc_debug.h	2007-07-19 01:10:38.597628323 +0200
 @@ -0,0 +1,7 @@
 +#ifndef MMC_DEBUG_H
 +#define MMC_DEBUG_H
@@ -73,120 +149,11 @@
 +char *mmc_err2str(int err);
 +
 +#endif /* MMC_DEBUG_H */
---- linux-2.6.22.1.orig/include/asm-arm/arch-s3c2410/regs-sdi.h
-+++ linux-2.6.22.1/include/asm-arm/arch-s3c2410/regs-sdi.h
-@@ -28,9 +28,15 @@
- #define S3C2410_SDIDCNT               (0x30)
- #define S3C2410_SDIDSTA               (0x34)
- #define S3C2410_SDIFSTA               (0x38)
-+
- #define S3C2410_SDIDATA               (0x3C)
- #define S3C2410_SDIIMSK               (0x40)
- 
-+#define S3C2440_SDIDATA               (0x40)
-+#define S3C2440_SDIIMSK               (0x3C)
-+
-+#define S3C2440_SDICON_SDRESET        (1<<8)
-+#define S3C2440_SDICON_MMCCLOCK       (1<<5)
- #define S3C2410_SDICON_BYTEORDER      (1<<4)
- #define S3C2410_SDICON_SDIOIRQ        (1<<3)
- #define S3C2410_SDICON_RWAITEN        (1<<2)
-@@ -42,7 +48,8 @@
- #define S3C2410_SDICMDCON_LONGRSP     (1<<10)
- #define S3C2410_SDICMDCON_WAITRSP     (1<<9)
- #define S3C2410_SDICMDCON_CMDSTART    (1<<8)
--#define S3C2410_SDICMDCON_INDEX       (0xff)
-+#define S3C2410_SDICMDCON_SENDERHOST  (1<<6)
-+#define S3C2410_SDICMDCON_INDEX       (0x3f)
- 
- #define S3C2410_SDICMDSTAT_CRCFAIL    (1<<12)
- #define S3C2410_SDICMDSTAT_CMDSENT    (1<<11)
-@@ -51,6 +58,9 @@
- #define S3C2410_SDICMDSTAT_XFERING    (1<<8)
- #define S3C2410_SDICMDSTAT_INDEX      (0xff)
- 
-+#define S3C2440_SDIDCON_DS_BYTE       (0<<22)
-+#define S3C2440_SDIDCON_DS_HALFWORD   (1<<22)
-+#define S3C2440_SDIDCON_DS_WORD       (2<<22)
- #define S3C2410_SDIDCON_IRQPERIOD     (1<<21)
- #define S3C2410_SDIDCON_TXAFTERRESP   (1<<20)
- #define S3C2410_SDIDCON_RXAFTERCMD    (1<<19)
-@@ -59,6 +69,7 @@
- #define S3C2410_SDIDCON_WIDEBUS       (1<<16)
- #define S3C2410_SDIDCON_DMAEN         (1<<15)
- #define S3C2410_SDIDCON_STOP          (1<<14)
-+#define S3C2440_SDIDCON_DATSTART      (1<<14)
- #define S3C2410_SDIDCON_DATMODE	      (3<<12)
- #define S3C2410_SDIDCON_BLKNUM        (0x7ff)
- 
-@@ -68,6 +79,7 @@
- #define S3C2410_SDIDCON_XFER_RXSTART  (2<<12)
- #define S3C2410_SDIDCON_XFER_TXSTART  (3<<12)
- 
-+#define S3C2410_SDIDCON_BLKNUM_MASK   (0xFFF)
- #define S3C2410_SDIDCNT_BLKNUM_SHIFT  (12)
- 
- #define S3C2410_SDIDSTA_RDYWAITREQ    (1<<10)
-@@ -82,10 +94,12 @@
- #define S3C2410_SDIDSTA_TXDATAON      (1<<1)
- #define S3C2410_SDIDSTA_RXDATAON      (1<<0)
- 
-+#define S3C2440_SDIFSTA_FIFORESET      (1<<16)
-+#define S3C2440_SDIFSTA_FIFOFAIL       (3<<14)  /* 3 is correct (2 bits) */
- #define S3C2410_SDIFSTA_TFDET          (1<<13)
- #define S3C2410_SDIFSTA_RFDET          (1<<12)
--#define S3C2410_SDIFSTA_TXHALF         (1<<11)
--#define S3C2410_SDIFSTA_TXEMPTY        (1<<10)
-+#define S3C2410_SDIFSTA_TFHALF         (1<<11)
-+#define S3C2410_SDIFSTA_TFEMPTY        (1<<10)
- #define S3C2410_SDIFSTA_RFLAST         (1<<9)
- #define S3C2410_SDIFSTA_RFFULL         (1<<8)
- #define S3C2410_SDIFSTA_RFHALF         (1<<7)
---- linux-2.6.22.1.orig/drivers/mmc/Makefile
-+++ linux-2.6.22.1/drivers/mmc/Makefile
-@@ -4,6 +4,7 @@
- 
- ifeq ($(CONFIG_MMC_DEBUG),y)
- 	EXTRA_CFLAGS		+= -DDEBUG
-+	obj-$(CONFIG_MMC)	+= mmc_debug.o
- endif
- 
- obj-$(CONFIG_MMC)		+= core/
---- linux-2.6.22.1.orig/drivers/mmc/host/Makefile
-+++ linux-2.6.22.1/drivers/mmc/host/Makefile
-@@ -15,4 +15,5 @@
- obj-$(CONFIG_MMC_OMAP)		+= omap.o
- obj-$(CONFIG_MMC_AT91)		+= at91_mci.o
- obj-$(CONFIG_MMC_TIFM_SD)	+= tifm_sd.o
-+obj-$(CONFIG_MMC_S3C)		+= s3cmci.o
- 
---- linux-2.6.22.1.orig/include/linux/mmc/core.h
-+++ linux-2.6.22.1/include/linux/mmc/core.h
-@@ -54,12 +54,15 @@
- 	unsigned int		retries;	/* max number of retries */
- 	unsigned int		error;		/* command error */
- 
--#define MMC_ERR_NONE	0
--#define MMC_ERR_TIMEOUT	1
--#define MMC_ERR_BADCRC	2
--#define MMC_ERR_FIFO	3
--#define MMC_ERR_FAILED	4
--#define MMC_ERR_INVALID	5
-+#define MMC_ERR_NONE        0
-+#define MMC_ERR_TIMEOUT     1
-+#define MMC_ERR_BADCRC      2
-+#define MMC_ERR_FIFO        3
-+#define MMC_ERR_DMA         4
-+#define MMC_ERR_BUSY        5
-+#define MMC_ERR_FAILED      6
-+#define MMC_ERR_INVALID     7
-+#define MMC_ERR_CANCELED    8
- 
- 	struct mmc_data		*data;		/* data segment associated with cmd */
- 	struct mmc_request	*mrq;		/* associated request */
---- /dev/null
-+++ linux-2.6.22.1/drivers/mmc/host/s3cmci.c
-@@ -0,0 +1,1340 @@
+Index: linux-2.6.22.1/drivers/mmc/host/s3cmci.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.22.1/drivers/mmc/host/s3cmci.c	2007-07-19 01:13:22.862989265 +0200
+@@ -0,0 +1,1341 @@
 +/*
 + *  linux/drivers/mmc/s3cmci.h - Samsung S3C MCI driver
 + *
@@ -200,6 +167,7 @@
 +#include <linux/module.h>
 +#include <linux/dma-mapping.h>
 +#include <linux/clk.h>
++#include <linux/mmc/mmc.h>
 +#include <linux/mmc/host.h>
 +#include <linux/platform_device.h>
 +#include <linux/irq.h>
@@ -211,7 +179,7 @@
 +#include <asm/arch/regs-sdi.h>
 +#include <asm/arch/regs-gpio.h>
 +
-+#include "../mmc_debug.h"
++#include "mmc_debug.h"
 +#include "s3cmci.h"
 +
 +#define DRIVER_NAME "s3c-mci"
@@ -1527,8 +1495,10 @@
 +MODULE_LICENSE("GPL");
 +MODULE_AUTHOR("Thomas Kleffel <tk at maintech.de>");
 +
---- /dev/null
-+++ linux-2.6.22.1/drivers/mmc/host/s3cmci.h
+Index: linux-2.6.22.1/drivers/mmc/host/s3cmci.h
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.22.1/drivers/mmc/host/s3cmci.h	2007-07-19 01:13:22.334959182 +0200
 @@ -0,0 +1,71 @@
 +/*
 + *  linux/drivers/mmc/s3cmci.h - Samsung S3C MCI driver
@@ -1601,3 +1571,33 @@
 +	unsigned int		ccnt, dcnt;
 +	struct tasklet_struct	pio_tasklet;
 +};
+Index: linux-2.6.22.1/drivers/mmc/host/Kconfig
+===================================================================
+--- linux-2.6.22.1.orig/drivers/mmc/host/Kconfig	2007-07-19 01:10:43.497907574 +0200
++++ linux-2.6.22.1/drivers/mmc/host/Kconfig	2007-07-19 01:11:57.214108422 +0200
+@@ -100,3 +100,14 @@
+           To compile this driver as a module, choose M here: the
+ 	  module will be called tifm_sd.
+ 
++config MMC_S3C
++	tristate "Samsung S3C SD/MMC Card Interface support"
++	depends on ARCH_S3C2410 && MMC
++	help
++	  This selects a driver for the MCI interface found in
++          Samsung's S3C2410, S3C2412, S3C2440, S3C2442 CPUs.
++	  If you have a board based on one of those and a MMC/SD
++	  slot, say Y or M here.
++
++	  If unsure, say N.
++
+Index: linux-2.6.22.1/drivers/mmc/host/Makefile
+===================================================================
+--- linux-2.6.22.1.orig/drivers/mmc/host/Makefile	2007-07-19 01:10:43.517908714 +0200
++++ linux-2.6.22.1/drivers/mmc/host/Makefile	2007-07-19 01:11:07.043249347 +0200
+@@ -15,4 +15,6 @@
+ obj-$(CONFIG_MMC_OMAP)		+= omap.o
+ obj-$(CONFIG_MMC_AT91)		+= at91_mci.o
+ obj-$(CONFIG_MMC_TIFM_SD)	+= tifm_sd.o
++obj-$(CONFIG_MMC_S3C)   	+= s3cmci.o
++obj-$(CONFIG_MMC)			+= mmc_debug.o
+ 

Modified: branches/src/target/kernel/2.6.22.x/patches/s3c_mci_platform.patch
===================================================================
--- branches/src/target/kernel/2.6.22.x/patches/s3c_mci_platform.patch	2007-07-26 20:53:24 UTC (rev 2404)
+++ branches/src/target/kernel/2.6.22.x/patches/s3c_mci_platform.patch	2007-07-26 23:00:22 UTC (rev 2405)
@@ -1,17 +1,19 @@
 This patch adds platform data support to the s3mci driver.  This allows
 flexible board-specific configuration of set_power, card detect and read only
 pins.
---- linux-2.6.22.1.orig/drivers/mmc/host/s3cmci.c
-+++ linux-2.6.22.1/drivers/mmc/host/s3cmci.c
-@@ -21,6 +21,7 @@
+Index: linux-2.6.22.1/drivers/mmc/host/s3cmci.c
+===================================================================
+--- linux-2.6.22.1.orig/drivers/mmc/host/s3cmci.c	2007-07-19 00:27:24.937824075 +0200
++++ linux-2.6.22.1/drivers/mmc/host/s3cmci.c	2007-07-19 00:27:45.823014255 +0200
+@@ -22,6 +22,7 @@
  #include <asm/io.h>
  #include <asm/arch/regs-sdi.h>
  #include <asm/arch/regs-gpio.h>
 +#include <asm/arch/mci.h>
  
- #include "../mmc_debug.h"
+ #include "mmc_debug.h"
  #include "s3cmci.h"
-@@ -1011,6 +1012,9 @@
+@@ -1012,6 +1013,9 @@
  			s3c2410_gpio_cfgpin(S3C2410_GPE9, S3C2410_GPE9_SDDAT2);
  			s3c2410_gpio_cfgpin(S3C2410_GPE10, S3C2410_GPE10_SDDAT3);
  
@@ -21,7 +23,7 @@
  			if (!host->is2440)
  				mci_con|=S3C2410_SDICON_FIFORESET;
  
-@@ -1021,6 +1025,9 @@
+@@ -1022,6 +1026,9 @@
  			s3c2410_gpio_setpin(S3C2410_GPE5, 0);
  			s3c2410_gpio_cfgpin(S3C2410_GPE5, S3C2410_GPE5_OUTP);
  
@@ -31,7 +33,7 @@
  			if (host->is2440)
  				mci_con|=S3C2440_SDICON_SDRESET;
  
-@@ -1074,9 +1081,26 @@
+@@ -1075,9 +1082,26 @@
  	writel(con, host->base + S3C2410_SDICON);
  }
  
@@ -58,7 +60,7 @@
  };
  
  static int s3cmci_probe(struct platform_device *pdev, int is2440)
-@@ -1096,6 +1120,12 @@
+@@ -1097,6 +1121,12 @@
  	host->mmc 	= mmc;
  	host->pdev	= pdev;
  
@@ -71,7 +73,7 @@
  	spin_lock_init(&host->complete_lock);
  	tasklet_init(&host->pio_tasklet, pio_tasklet, (unsigned long) host);
  	if (is2440) {
-@@ -1114,7 +1144,8 @@
+@@ -1115,7 +1145,8 @@
  	host->pio_active 	= XFER_NONE;
  
  	host->dma		= S3CMCI_DMA;
@@ -81,7 +83,7 @@
  
  	host->mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
  	if (!host->mem) {
-@@ -1156,7 +1187,7 @@
+@@ -1157,7 +1188,7 @@
  
  	disable_irq(host->irq);
  
@@ -90,7 +92,7 @@
  	set_irq_type(host->irq_cd, IRQT_BOTHEDGE);
  
  	if (request_irq(host->irq_cd, s3cmci_irq_cd, 0, DRIVER_NAME, host)) {
-@@ -1167,6 +1198,10 @@
+@@ -1168,6 +1199,10 @@
  		goto probe_free_irq;
  	}
  
@@ -101,7 +103,7 @@
  	if (s3c2410_dma_request(S3CMCI_DMA, &s3cmci_dma_client, NULL)) {
  		dev_err(&pdev->dev, "unable to get DMA channel.\n");
  		ret = -EBUSY;
-@@ -1189,7 +1224,7 @@
+@@ -1190,7 +1225,7 @@
  	host->clk_rate = clk_get_rate(host->clk);
  
  	mmc->ops 	= &s3cmci_ops;
@@ -110,8 +112,10 @@
  	mmc->caps	= MMC_CAP_4_BIT_DATA;
  	mmc->f_min 	= host->clk_rate / (host->clk_div * 256);
  	mmc->f_max 	= host->clk_rate / host->clk_div;
---- linux-2.6.22.1.orig/drivers/mmc/host/s3cmci.h
-+++ linux-2.6.22.1/drivers/mmc/host/s3cmci.h
+Index: linux-2.6.22.1/drivers/mmc/host/s3cmci.h
+===================================================================
+--- linux-2.6.22.1.orig/drivers/mmc/host/s3cmci.h	2007-07-19 00:25:34.647538991 +0200
++++ linux-2.6.22.1/drivers/mmc/host/s3cmci.h	2007-07-19 00:27:45.831014710 +0200
 @@ -22,6 +22,7 @@
  
  struct s3cmci_host {
@@ -120,8 +124,10 @@
  	struct mmc_host		*mmc;
  	struct resource		*mem;
  	struct clk		*clk;
---- /dev/null
-+++ linux-2.6.22.1/include/asm-arm/arch-s3c2410/mci.h
+Index: linux-2.6.22.1/include/asm-arm/arch-s3c2410/mci.h
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ linux-2.6.22.1/include/asm-arm/arch-s3c2410/mci.h	2007-07-19 00:27:45.859016308 +0200
 @@ -0,0 +1,12 @@
 +#ifndef _ARCH_MCI_H
 +#define _ARCH_MCI_H

Modified: branches/src/target/kernel/2.6.22.x/patches/series
===================================================================
--- branches/src/target/kernel/2.6.22.x/patches/series	2007-07-26 20:53:24 UTC (rev 2404)
+++ branches/src/target/kernel/2.6.22.x/patches/series	2007-07-26 23:00:22 UTC (rev 2405)
@@ -42,3 +42,4 @@
 pcf50606_fix.patch
 pcf50633_fix.patch
 hxd8-tsl256x_fix.patch
+missing_defs.patch





More information about the commitlog mailing list