dslinux/linux-2.6.x/drivers/mmc scsd_c.c scsd_s.S
amadeus
dslinux_amadeus at user.in-berlin.de
Tue Aug 15 10:27:17 CEST 2006
Update of /cvsroot/dslinux/dslinux/linux-2.6.x/drivers/mmc
In directory antilope:/tmp/cvs-serv18275/linux-2.6.x/drivers/mmc
Modified Files:
scsd_c.c scsd_s.S
Log Message:
Untested support for supercard lite
Index: scsd_c.c
===================================================================
RCS file: /cvsroot/dslinux/dslinux/linux-2.6.x/drivers/mmc/scsd_c.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- scsd_c.c 15 Jul 2006 10:10:52 -0000 1.3
+++ scsd_c.c 15 Aug 2006 08:27:14 -0000 1.4
@@ -58,6 +58,9 @@
#define SC_SD_DATAWRITE 0x09000000
#define SC_SD_DATAREAD 0x09100000
+#define SC_SDL_DOWRITE 0x09440000
+ /* SC lite: write 0 before write command */
+
#define SC_SD_LOCK 0x09FFFFFE
/* bit 0: 1 */
/* bit 1: enable IO interface (SD,CF) */
@@ -495,8 +498,12 @@
/* do a retry for data I/O */
case MMC_READ_SINGLE_BLOCK:
case MMC_READ_MULTIPLE_BLOCK:
+ retry = 3;
+ break;
case MMC_WRITE_BLOCK:
case MMC_WRITE_MULTIPLE_BLOCK:
+ /* for SClite, switch to write mode */
+ writew(0, SC_SDL_DOWRITE);
retry = 3;
break;
/* check if we have an inactivation command */
Index: scsd_s.S
===================================================================
RCS file: /cvsroot/dslinux/dslinux/linux-2.6.x/drivers/mmc/scsd_s.S,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- scsd_s.S 27 Jun 2006 16:00:34 -0000 1.1
+++ scsd_s.S 15 Aug 2006 08:27:14 -0000 1.2
@@ -93,7 +93,8 @@
sd_data_write_loop:
ldrh r3,[r0],#2
add r3,r3,r3,lsl #20
- mov r4,r3,lsl #8
+ mov r4,r3,lsr #8 @ sclite
+@ mov r4,r3,lsl #8 @ sc, minisc
stmia r2,{r3-r4}
subs r1,r1,#2
bne sd_data_write_loop
More information about the dslinux-commit
mailing list