[MMC] Indicate that R1/R1b contains command opcode
authorPierre Ossman <drzeus@drzeus.cx>
Mon, 9 Jan 2006 22:51:46 +0000 (22:51 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Mon, 9 Jan 2006 22:51:46 +0000 (22:51 +0000)
Some controllers actually check the first byte of the response (most
don't).  This byte contains the command opcode for R1/R1b and all 1:s
for other types. The difference must be indicated to the controller
so it knows which reply to expect.

Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
include/linux/mmc/mmc.h

index 86d491b..ccd3e13 100644 (file)
@@ -27,14 +27,15 @@ struct mmc_command {
 #define MMC_RSP_MASK   (3 << 0)
 #define MMC_RSP_CRC    (1 << 3)                /* expect valid crc */
 #define MMC_RSP_BUSY   (1 << 4)                /* card may send busy */
+#define MMC_RSP_OPCODE (1 << 5)                /* response contains opcode */
 
 /*
  * These are the response types, and correspond to valid bit
  * patterns of the above flags.  One additional valid pattern
  * is all zeros, which means we don't expect a response.
  */
-#define MMC_RSP_R1     (MMC_RSP_SHORT|MMC_RSP_CRC)
-#define MMC_RSP_R1B    (MMC_RSP_SHORT|MMC_RSP_CRC|MMC_RSP_BUSY)
+#define MMC_RSP_R1     (MMC_RSP_SHORT|MMC_RSP_CRC|MMC_RSP_OPCODE)
+#define MMC_RSP_R1B    (MMC_RSP_SHORT|MMC_RSP_CRC|MMC_RSP_OPCODE|MMC_RSP_BUSY)
 #define MMC_RSP_R2     (MMC_RSP_LONG|MMC_RSP_CRC)
 #define MMC_RSP_R3     (MMC_RSP_SHORT)
 #define MMC_RSP_R6     (MMC_RSP_SHORT|MMC_RSP_CRC)