Commit 7225b3fd authored by Pierre Ossman's avatar Pierre Ossman Committed by Russell King

[MMC] Indicate that R1/R1b contains command opcode

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: default avatarPierre Ossman <drzeus@drzeus.cx>
parent 788ee7b0
...@@ -27,14 +27,15 @@ struct mmc_command { ...@@ -27,14 +27,15 @@ struct mmc_command {
#define MMC_RSP_MASK (3 << 0) #define MMC_RSP_MASK (3 << 0)
#define MMC_RSP_CRC (1 << 3) /* expect valid crc */ #define MMC_RSP_CRC (1 << 3) /* expect valid crc */
#define MMC_RSP_BUSY (1 << 4) /* card may send busy */ #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 * These are the response types, and correspond to valid bit
* patterns of the above flags. One additional valid pattern * patterns of the above flags. One additional valid pattern
* is all zeros, which means we don't expect a response. * is all zeros, which means we don't expect a response.
*/ */
#define MMC_RSP_R1 (MMC_RSP_SHORT|MMC_RSP_CRC) #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_BUSY) #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_R2 (MMC_RSP_LONG|MMC_RSP_CRC)
#define MMC_RSP_R3 (MMC_RSP_SHORT) #define MMC_RSP_R3 (MMC_RSP_SHORT)
#define MMC_RSP_R6 (MMC_RSP_SHORT|MMC_RSP_CRC) #define MMC_RSP_R6 (MMC_RSP_SHORT|MMC_RSP_CRC)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment