linux-mmc.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Pali Rohár" <pali.rohar@gmail.com>
To: Chris Ball <chris@printf.net>, Ulf Hansson <ulf.hansson@linaro.org>
Cc: linux-mmc@vger.kernel.org, linux-kernel@vger.kernel.org,
	Pavel Machek <pavel@ucw.cz>,
	Ivaylo Dimitrov <ivo.g.dimitrov.75@gmail.com>,
	Sebastian Reichel <sre@kernel.org>,
	Aaro Koskinen <aaro.koskinen@iki.fi>
Subject: mmc does not work in qemu n900
Date: Mon, 26 Jan 2015 22:04:59 +0100	[thread overview]
Message-ID: <201501262204.59305@pali> (raw)

[-- Attachment #1: Type: Text/Plain, Size: 1661 bytes --]

Hello,

for unknown reason kernel in qemu n900 machine is not able to 
detect internal eMMC memory. External SD card is detected without 
problem.

If I apply this one-line patch eMMC in qemu start working:

diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
index 9584bff..0d4461c 100644
--- a/drivers/mmc/core/core.c
+++ b/drivers/mmc/core/core.c
@@ -2337,6 +2337,9 @@ static int mmc_rescan_try_freq(
 		return 0;
 	if (!mmc_attach_sd(host))
 		return 0;
+
+	mmc_go_idle(host);
+
 	if (!mmc_attach_mmc(host))
 		return 0;

I played with mmc and qemu n900 a bit and also this simple patch 
(without first) fix problem (that mmc is not detected by kernel):

diff --git a/drivers/mmc/core/mmc_ops.c 
b/drivers/mmc/core/mmc_ops.c
index 3b044c5..0c93a2c 100644
--- a/drivers/mmc/core/mmc_ops.c
+++ b/drivers/mmc/core/mmc_ops.c
@@ -157,6 +157,10 @@ int mmc_send_op_cond(
 
 	BUG_ON(!host);
 
+	/* reset mmc before calling op_cond */
+	memset(&cmd, 0, sizeof(struct mmc_command));
+	mmc_wait_for_cmd(host, &cmd, MMC_CMD_RETRIES);
+
 	cmd.opcode = MMC_SEND_OP_COND;
 	cmd.arg = mmc_host_is_spi(host) ? 0 : ocr;
 	cmd.flags = MMC_RSP_SPI_R1 | MMC_RSP_R3 | MMC_CMD_BCR;
 

I have no idea where is problem. I also do not understand mmc 
kernel code, but second patch I have on my HDD since 2.6.37.

Can somebody with knowledge of mmc subsystem look at this 
problem? Why any of these two patches fix problem when mmc is not 
detected by kernel in qemu (machine n900)? Detection of mmc fails 
because function mmc_send_op_cond() without one of above patches 
fails.

-- 
Pali Rohár
pali.rohar@gmail.com

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 198 bytes --]

             reply	other threads:[~2015-01-26 21:05 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-01-26 21:04 Pali Rohár [this message]
2015-01-26 23:21 ` mmc does not work in qemu n900 Aaro Koskinen
2015-01-27  9:17   ` Pali Rohár
2015-01-30 14:23     ` Pali Rohár
2015-02-07 23:02       ` Pali Rohár
2016-12-14 21:25       ` Pali Rohár
2015-12-25 12:57 ` Pali Rohár

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=201501262204.59305@pali \
    --to=pali.rohar@gmail.com \
    --cc=aaro.koskinen@iki.fi \
    --cc=chris@printf.net \
    --cc=ivo.g.dimitrov.75@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=pavel@ucw.cz \
    --cc=sre@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).