tifm_sd: implement software scatter-gather

It was found that delays associated with issue and completion of the commands
severely limit performance of the new, fast SD cards. To alleviate this issue
scatter-gather emulation in software is implemented for both dma and pio
transfer modes. Non-block aligned and high memory sg entries are accounted
for.

Signed-off-by: Alex Dubov <oakad@yahoo.com>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
diff --git a/include/linux/tifm.h b/include/linux/tifm.h
index c8449fc..7ccad07 100644
--- a/include/linux/tifm.h
+++ b/include/linux/tifm.h
@@ -74,6 +74,7 @@
 #define TIFM_DMA_RESET            0x00000002 /* Meaning of this constant is unverified */
 #define TIFM_DMA_TX               0x00008000 /* Meaning of this constant is unverified */
 #define TIFM_DMA_EN               0x00000001 /* Meaning of this constant is unverified */
+#define TIFM_DMA_TSIZE            0x0000007f
 
 #define TIFM_TYPE_XD 1
 #define TIFM_TYPE_MS 2