From patchwork Tue Sep 23 20:00:29 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adrian Hunter X-Patchwork-Id: 4959601 Return-Path: X-Original-To: patchwork-linux-mmc@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.19.201]) by patchwork2.web.kernel.org (Postfix) with ESMTP id CC81DBEEA5 for ; Tue, 23 Sep 2014 20:02:21 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id AD4A62016C for ; Tue, 23 Sep 2014 20:02:20 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id EF367202B4 for ; Tue, 23 Sep 2014 20:02:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756782AbaIWUCE (ORCPT ); Tue, 23 Sep 2014 16:02:04 -0400 Received: from mga14.intel.com ([192.55.52.115]:41324 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756188AbaIWUCB (ORCPT ); Tue, 23 Sep 2014 16:02:01 -0400 Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by fmsmga103.fm.intel.com with ESMTP; 23 Sep 2014 12:52:54 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.04,582,1406617200"; d="scan'208";a="595790537" Received: from ahunter-desktop.fi.intel.com ([10.237.72.97]) by fmsmga001.fm.intel.com with ESMTP; 23 Sep 2014 13:01:59 -0700 From: Adrian Hunter To: Ulf Hansson , Chris Ball Cc: linux-mmc Subject: [PATCH 5/6] mmc: block: Fix SD card stop cmd response type Date: Tue, 23 Sep 2014 23:00:29 +0300 Message-Id: <1411502430-25535-6-git-send-email-adrian.hunter@intel.com> X-Mailer: git-send-email 1.8.3.2 In-Reply-To: <1411502430-25535-1-git-send-email-adrian.hunter@intel.com> References: <1411502430-25535-1-git-send-email-adrian.hunter@intel.com> Sender: linux-mmc-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-mmc@vger.kernel.org X-Spam-Status: No, score=-7.6 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, RP_MATCHES_RCVD, UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP 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 --- 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;