diff options
author | Philip Langdale <philipl@overt.org> | 2007-01-04 10:04:47 -0500 |
---|---|---|
committer | Pierre Ossman <drzeus@drzeus.cx> | 2007-01-15 00:44:03 -0500 |
commit | 6f949909e8f9e5d7e5584dc48d9a5e060c52aed1 (patch) | |
tree | 0ffeb53000ea8f003fdbf5dc68d41da43777cbfe | |
parent | 1b3b2631842ab60c1b7923bef102c610439ba3dd (diff) |
mmc: Correct definition of R6
During development of SDHC support, it was discovered that the definition
for R6 was incorrect. This patch fixes that and patches the drivers that
do switch on the response type.
Signed-off-by: Philip Langdale <philipl@overt.org>
Cc: Alex Dubov <oakad@yahoo.com>
Cc: Pavel Pisa <ppisa@pikron.com>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
-rw-r--r-- | drivers/mmc/imxmmc.c | 3 | ||||
-rw-r--r-- | drivers/mmc/omap.c | 5 | ||||
-rw-r--r-- | drivers/mmc/pxamci.c | 2 | ||||
-rw-r--r-- | drivers/mmc/tifm_sd.c | 3 | ||||
-rw-r--r-- | include/linux/mmc/mmc.h | 2 |
5 files changed, 3 insertions, 12 deletions
diff --git a/drivers/mmc/imxmmc.c b/drivers/mmc/imxmmc.c index 06e7fcd19221..bfb9ff693208 100644 --- a/drivers/mmc/imxmmc.c +++ b/drivers/mmc/imxmmc.c | |||
@@ -351,9 +351,6 @@ static void imxmci_start_cmd(struct imxmci_host *host, struct mmc_command *cmd, | |||
351 | case MMC_RSP_R3: /* short */ | 351 | case MMC_RSP_R3: /* short */ |
352 | cmdat |= CMD_DAT_CONT_RESPONSE_FORMAT_R3; | 352 | cmdat |= CMD_DAT_CONT_RESPONSE_FORMAT_R3; |
353 | break; | 353 | break; |
354 | case MMC_RSP_R6: /* short CRC */ | ||
355 | cmdat |= CMD_DAT_CONT_RESPONSE_FORMAT_R6; | ||
356 | break; | ||
357 | default: | 354 | default: |
358 | break; | 355 | break; |
359 | } | 356 | } |
diff --git a/drivers/mmc/omap.c b/drivers/mmc/omap.c index 1e5407d44dfd..d30540b27614 100644 --- a/drivers/mmc/omap.c +++ b/drivers/mmc/omap.c | |||
@@ -208,7 +208,7 @@ mmc_omap_start_command(struct mmc_omap_host *host, struct mmc_command *cmd) | |||
208 | break; | 208 | break; |
209 | case MMC_RSP_R1: | 209 | case MMC_RSP_R1: |
210 | case MMC_RSP_R1B: | 210 | case MMC_RSP_R1B: |
211 | /* resp 1, resp 1b */ | 211 | /* resp 1, 1b, 6, 7 */ |
212 | resptype = 1; | 212 | resptype = 1; |
213 | break; | 213 | break; |
214 | case MMC_RSP_R2: | 214 | case MMC_RSP_R2: |
@@ -217,9 +217,6 @@ mmc_omap_start_command(struct mmc_omap_host *host, struct mmc_command *cmd) | |||
217 | case MMC_RSP_R3: | 217 | case MMC_RSP_R3: |
218 | resptype = 3; | 218 | resptype = 3; |
219 | break; | 219 | break; |
220 | case MMC_RSP_R6: | ||
221 | resptype = 6; | ||
222 | break; | ||
223 | default: | 220 | default: |
224 | dev_err(mmc_dev(host->mmc), "Invalid response type: %04x\n", mmc_resp_type(cmd)); | 221 | dev_err(mmc_dev(host->mmc), "Invalid response type: %04x\n", mmc_resp_type(cmd)); |
225 | break; | 222 | break; |
diff --git a/drivers/mmc/pxamci.c b/drivers/mmc/pxamci.c index 45a9283ce498..6073d998b11f 100644 --- a/drivers/mmc/pxamci.c +++ b/drivers/mmc/pxamci.c | |||
@@ -171,7 +171,7 @@ static void pxamci_start_cmd(struct pxamci_host *host, struct mmc_command *cmd, | |||
171 | 171 | ||
172 | #define RSP_TYPE(x) ((x) & ~(MMC_RSP_BUSY|MMC_RSP_OPCODE)) | 172 | #define RSP_TYPE(x) ((x) & ~(MMC_RSP_BUSY|MMC_RSP_OPCODE)) |
173 | switch (RSP_TYPE(mmc_resp_type(cmd))) { | 173 | switch (RSP_TYPE(mmc_resp_type(cmd))) { |
174 | case RSP_TYPE(MMC_RSP_R1): /* r1, r1b, r6 */ | 174 | case RSP_TYPE(MMC_RSP_R1): /* r1, r1b, r6, r7 */ |
175 | cmdat |= CMDAT_RESP_SHORT; | 175 | cmdat |= CMDAT_RESP_SHORT; |
176 | break; | 176 | break; |
177 | case RSP_TYPE(MMC_RSP_R3): | 177 | case RSP_TYPE(MMC_RSP_R3): |
diff --git a/drivers/mmc/tifm_sd.c b/drivers/mmc/tifm_sd.c index f18ad998b3cb..fa4a52886b97 100644 --- a/drivers/mmc/tifm_sd.c +++ b/drivers/mmc/tifm_sd.c | |||
@@ -173,9 +173,6 @@ static unsigned int tifm_sd_op_flags(struct mmc_command *cmd) | |||
173 | case MMC_RSP_R3: | 173 | case MMC_RSP_R3: |
174 | rc |= TIFM_MMCSD_RSP_R3; | 174 | rc |= TIFM_MMCSD_RSP_R3; |
175 | break; | 175 | break; |
176 | case MMC_RSP_R6: | ||
177 | rc |= TIFM_MMCSD_RSP_R6; | ||
178 | break; | ||
179 | default: | 176 | default: |
180 | BUG(); | 177 | BUG(); |
181 | } | 178 | } |
diff --git a/include/linux/mmc/mmc.h b/include/linux/mmc/mmc.h index a3594dfd6963..bcf24909d677 100644 --- a/include/linux/mmc/mmc.h +++ b/include/linux/mmc/mmc.h | |||
@@ -42,7 +42,7 @@ struct mmc_command { | |||
42 | #define MMC_RSP_R1B (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE|MMC_RSP_BUSY) | 42 | #define MMC_RSP_R1B (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE|MMC_RSP_BUSY) |
43 | #define MMC_RSP_R2 (MMC_RSP_PRESENT|MMC_RSP_136|MMC_RSP_CRC) | 43 | #define MMC_RSP_R2 (MMC_RSP_PRESENT|MMC_RSP_136|MMC_RSP_CRC) |
44 | #define MMC_RSP_R3 (MMC_RSP_PRESENT) | 44 | #define MMC_RSP_R3 (MMC_RSP_PRESENT) |
45 | #define MMC_RSP_R6 (MMC_RSP_PRESENT|MMC_RSP_CRC) | 45 | #define MMC_RSP_R6 (MMC_RSP_PRESENT|MMC_RSP_CRC|MMC_RSP_OPCODE) |
46 | 46 | ||
47 | #define mmc_resp_type(cmd) ((cmd)->flags & (MMC_RSP_PRESENT|MMC_RSP_136|MMC_RSP_CRC|MMC_RSP_BUSY|MMC_RSP_OPCODE)) | 47 | #define mmc_resp_type(cmd) ((cmd)->flags & (MMC_RSP_PRESENT|MMC_RSP_136|MMC_RSP_CRC|MMC_RSP_BUSY|MMC_RSP_OPCODE)) |
48 | 48 | ||