diff -r 27e0e0acc9b3 cpu/arm920t/s3c24x0/mmc.c
--- a/cpu/arm920t/s3c24x0/mmc.c	Sat Mar 14 22:42:47 2009 +0100
+++ b/cpu/arm920t/s3c24x0/mmc.c	Sat Mar 14 21:59:38 2009 +0000
@@ -135,6 +135,9 @@
 
 	debug("mmc_block_rd dst %lx src %lx len %d\n", (ulong)dst, src, len);
 
+	/* Set up time - ref S3C2410A page 440 (19-4) */
+	sdi->SDIDTIMER = 0xffff;
+
 	/* set block len */
 	resp = mmc_cmd(MMC_CMD_SET_BLOCKLEN, len, CMD_F_RESP);
 	sdi->SDIBSIZE = len;
@@ -186,6 +189,8 @@
 
 	if (!(sdi->SDIDSTA & S3C2410_SDIDSTA_XFERFINISH))
 		debug("mmc_block_read; transfer not finished!\n");
+
+	sdi->SDIDSTA = S3C2410_SDIDSTA_XFERFINISH;
 
 	return 0;
 }
