linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Peter Griffin <peter.griffin@linaro.org>
To: linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, kernel@stlinux.com,
	ulf.hansson@linaro.org, adrian.hunter@intel.com
Cc: peter.griffin@linaro.org, lee.jones@linaro.org,
	linux-mmc@vger.kernel.org, Arnd Bergmann <arnd@arndb.de>
Subject: [PATCH] mmc: core: Fix mmc_select_hs200() regression in v4.7-rc.
Date: Tue,  7 Jun 2016 14:02:23 +0100	[thread overview]
Message-ID: <1465304543-23988-1-git-send-email-peter.griffin@linaro.org> (raw)

mmc_select_bus_width() returns bus width (4 or 8) on success or
zero if unsupported. If bus width is set successfully we then wish
to switch to HS200 mode.

This avoids the following error message in v4.70-rc2

[    2.523674] mmc0: mmc_select_hs200 failed, error 3
[    2.528516] mmc0: error 3 whilst initialising MMC card

With this patch card is enumerated correctly

[    2.468065] mmc0: new HS200 MMC card at address 0001
[    2.468335] mmcblk0: mmc0:0001 P1XXXX 7.20 GiB
[    2.468441] mmcblk0boot0: mmc0:0001 P1XXXX partition 1 2.00 MiB
[    2.468552] mmcblk0boot1: mmc0:0001 P1XXXX partition 2 2.00 MiB
[    2.468651] mmcblk0rpmb: mmc0:0001 P1XXXX partition 3 128 KiB
[    2.469269]  mmcblk0: p1

Fixes: 287980e (remove lots of IS_ERR_VALUE abuses)
Signed-off-by: Peter Griffin <peter.griffin@linaro.org>
Cc: Arnd Bergmann <arnd@arndb.de>
---
 drivers/mmc/core/mmc.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c
index c984321..aafb73d 100644
--- a/drivers/mmc/core/mmc.c
+++ b/drivers/mmc/core/mmc.c
@@ -1276,7 +1276,7 @@ static int mmc_select_hs200(struct mmc_card *card)
 	 * switch to HS200 mode if bus width is set successfully.
 	 */
 	err = mmc_select_bus_width(card);
-	if (!err) {
+	if (err > 0) {
 		val = EXT_CSD_TIMING_HS200 |
 		      card->drive_strength << EXT_CSD_DRV_STR_SHIFT;
 		err = __mmc_switch(card, EXT_CSD_CMD_SET_NORMAL,
@@ -1583,7 +1583,7 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr,
 	} else if (mmc_card_hs(card)) {
 		/* Select the desired bus width optionally */
 		err = mmc_select_bus_width(card);
-		if (!err) {
+		if (err > 0) {
 			err = mmc_select_hs_ddr(card);
 			if (err)
 				goto free_card;
-- 
1.9.1

             reply	other threads:[~2016-06-07 13:02 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-07 13:02 Peter Griffin [this message]
2016-06-07 13:38 ` [PATCH] mmc: core: Fix mmc_select_hs200() regression in v4.7-rc Lee Jones
2016-06-07 13:57   ` Peter Griffin
2016-06-07 21:58     ` Ulf Hansson
2016-06-08 10:20       ` Peter Griffin

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=1465304543-23988-1-git-send-email-peter.griffin@linaro.org \
    --to=peter.griffin@linaro.org \
    --cc=adrian.hunter@intel.com \
    --cc=arnd@arndb.de \
    --cc=kernel@stlinux.com \
    --cc=lee.jones@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --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;
as well as URLs for NNTP newsgroup(s).