From: Adrian Hunter <adrian.hunter@intel.com>
To: Ulf Hansson <ulf.hansson@linaro.org>, Chris Ball <chris@printf.net>
Cc: linux-mmc <linux-mmc@vger.kernel.org>
Subject: [PATCH 5/6] mmc: block: Fix SD card stop cmd response type
Date: Tue, 23 Sep 2014 23:00:29 +0300 [thread overview]
Message-ID: <1411502430-25535-6-git-send-email-adrian.hunter@intel.com> (raw)
In-Reply-To: <1411502430-25535-1-git-send-email-adrian.hunter@intel.com>
Nowhere in the SD Association Specifications does
it state that the stop command has an R1 response
type. It is always R1B. Change accordingly.
Note that, for SD cards, this puts the situation back
to what it was prior to commit
bcc3e1726d827c2d6f62f0e0e7bbc99eed7ad925.
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
---
drivers/mmc/card/block.c | 14 +++++++++++---
1 file changed, 11 insertions(+), 3 deletions(-)
diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
index c3770dd..0736efb 100644
--- a/drivers/mmc/card/block.c
+++ b/drivers/mmc/card/block.c
@@ -801,6 +801,9 @@ static int send_stop(struct mmc_card *card, unsigned int timeout_ms,
if (host->max_busy_timeout && (timeout_ms > host->max_busy_timeout))
use_r1b_resp = false;
+ if (!mmc_card_mmc(card))
+ use_r1b_resp = true;
+
cmd.opcode = MMC_STOP_TRANSMISSION;
if (use_r1b_resp) {
cmd.flags = MMC_RSP_SPI_R1B | MMC_RSP_R1B | MMC_CMD_AC;
@@ -1436,9 +1439,14 @@ static void mmc_blk_rw_rq_prep(struct mmc_queue_req *mqrq,
if (rq_data_dir(req) == READ) {
brq->cmd.opcode = readcmd;
brq->data.flags |= MMC_DATA_READ;
- if (brq->mrq.stop)
- brq->stop.flags = MMC_RSP_SPI_R1 | MMC_RSP_R1 |
- MMC_CMD_AC;
+ if (brq->mrq.stop) {
+ if (mmc_card_mmc(card))
+ brq->stop.flags = MMC_RSP_SPI_R1 | MMC_RSP_R1 |
+ MMC_CMD_AC;
+ else
+ brq->stop.flags = MMC_RSP_SPI_R1 | MMC_RSP_R1B |
+ MMC_CMD_AC;
+ }
} else {
brq->cmd.opcode = writecmd;
brq->data.flags |= MMC_DATA_WRITE;
--
1.8.3.2
next prev parent reply other threads:[~2014-09-23 20:02 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-23 20:00 [PATCH 0/6] mmc: Some misc patches Adrian Hunter
2014-09-23 20:00 ` [PATCH 1/6] mmc: Fix use of wrong device in mmc_gpiod_free_cd() Adrian Hunter
2014-09-29 9:44 ` Ulf Hansson
2014-09-23 20:00 ` [PATCH 2/6] mmc: Fix incorrect warning when setting 0 Hz via debugfs Adrian Hunter
2014-09-29 9:44 ` Ulf Hansson
2014-09-23 20:00 ` [PATCH 3/6] mmc: It is not an error for the card to be removed while suspended Adrian Hunter
2014-09-25 8:27 ` Ulf Hansson
2014-09-25 9:26 ` Adrian Hunter
2014-09-23 20:00 ` [PATCH 4/6] mmc: block: Fix error recovery stop cmd timeout calculation Adrian Hunter
2014-09-25 8:37 ` Ulf Hansson
2014-09-23 20:00 ` Adrian Hunter [this message]
2014-09-25 9:20 ` [PATCH 5/6] mmc: block: Fix SD card stop cmd response type Ulf Hansson
2014-09-30 11:21 ` Adrian Hunter
2014-09-30 12:09 ` Ulf Hansson
2014-09-30 12:41 ` Adrian Hunter
2014-10-01 8:36 ` Ulf Hansson
2014-09-23 20:00 ` [PATCH 6/6] mmc: sdhci: Transfer Complete has higher priority than Data Timeout Error Adrian Hunter
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1411502430-25535-6-git-send-email-adrian.hunter@intel.com \
--to=adrian.hunter@intel.com \
--cc=chris@printf.net \
--cc=linux-mmc@vger.kernel.org \
--cc=ulf.hansson@linaro.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox