From: "Joe Woodward" <jw@terrafix.co.uk>
To: Ohad Ben-Cohen <ohad@wizery.com>, Daniel Drake <dsd@laptop.org>
Cc: linux-mmc@vger.kernel.org, Chris Ball <cjb@laptop.org>
Subject: Re: mmc: sdio: runtime PM and 8686 problems
Date: Wed, 30 Nov 2011 15:00:51 +0000 [thread overview]
Message-ID: <WC20111130150051.910209@terrafix.co.uk> (raw)
In-Reply-To: <CAK=WgbYRvsOur6RmAYMEAf-01e-paGinPU4G_0VesacPGBD5GA@mail.gmail.com>
(For reference I have a Gumstix Fire (OMAP3530) revision R3118 plugged in to a PALO43 expansion board. The Gumstix Fire contains a W2CBW003, which in
turn contains a Marvell 8686 SDIO WiFi).
Running linux-3.2-rc2 built with the omap2plus_defconfig (with a few features minor tweaks).
With the "stock" kernel I get:
# modprobe libertas_sdio
[ 25.813598] lib80211: common routines for IEEE802.11 drivers
[ 26.141082] cfg80211: Calling CRDA to update world regulatory domain
[ 26.373718] libertas_sdio: Libertas SDIO driver
[ 26.378479] libertas_sdio: Copyright Pierre Ossman
[ 26.433105] libertas_sdio: probe of mmc1:0001:1 failed with error -16
So, I've enabled MMC_DEBUG (in Kconfig) and the DEBUG defines in libertas/defs.h, and now get:
[ 4.036682] mmc1: new SDIO card at address 0001
[ 4.042510] -
[ 4.052459] mmc1: mmc_power_save_host: powering down
[ 31.223724] libertas_sdio: Libertas SDIO driver
[ 31.228485] libertas_sdio: Copyright Pierre Ossman
[ 31.233703] mmc1: mmc_power_restore_host: powering up
[ 31.239074] mmc1: clock 0Hz busmode 2 powermode 1 cs 0 Vdd 20 width 0 timing 0
[ 31.239349] omap_hsmmc omap_hsmmc.1: context was not lost
[ 31.239379] omap_hsmmc omap_hsmmc.1: enabled
[ 31.239410] omap_hsmmc omap_hsmmc.1: Set clock to 0Hz
[ 31.243438] omap_hsmmc omap_hsmmc.1: disabled
[ 31.262451] mmc1: clock 400000Hz busmode 2 powermode 2 cs 0 Vdd 20 width 0 timing 0
[ 31.262725] omap_hsmmc omap_hsmmc.1: context was not lost
[ 31.262725] omap_hsmmc omap_hsmmc.1: enabled
[ 31.262786] omap_hsmmc omap_hsmmc.1: Set clock to 400000Hz
[ 31.263092] omap_hsmmc omap_hsmmc.1: disabled
[ 31.286163] omap_hsmmc omap_hsmmc.1: context was not lost
[ 31.286193] omap_hsmmc omap_hsmmc.1: enabled
[ 31.286224] mmc1: starting CMD52 arg 00000c00 flags 00000195
[ 31.286254] omap_hsmmc omap_hsmmc.1: mmc1: CMD52, argument 0x00000c00
[ 31.286590] omap_hsmmc omap_hsmmc.1: IRQ Status is 1
[ 31.286621] mmc1: req done (CMD52): 0: 00001000 00000000 00000000 00000000
[ 31.286682] mmc1: starting CMD52 arg 80000c08 flags 00000195
[ 31.286682] omap_hsmmc omap_hsmmc.1: mmc1: CMD52, argument 0x80000c08
[ 31.287017] omap_hsmmc omap_hsmmc.1: IRQ Status is 1
[ 31.287048] mmc1: req done (CMD52): 0: 00001008 00000000 00000000 00000000
[ 31.287109] mmc1: clock 400000Hz busmode 2 powermode 2 cs 1 Vdd 20 width 0 timing 0
[ 31.287109] omap_hsmmc omap_hsmmc.1: Set clock to 400000Hz
[ 31.288146] mmc1: starting CMD0 arg 00000000 flags 000000c0
[ 31.288177] omap_hsmmc omap_hsmmc.1: mmc1: CMD0, argument 0x00000000
[ 31.288330] omap_hsmmc omap_hsmmc.1: IRQ Status is 1
[ 31.288360] mmc1: req done (CMD0): 0: 00000000 00000000 00000000 00000000
[ 31.289398] mmc1: clock 400000Hz busmode 2 powermode 2 cs 0 Vdd 20 width 0 timing 0
[ 31.289428] omap_hsmmc omap_hsmmc.1: Set clock to 400000Hz
[ 31.290466] mmc1: starting CMD8 arg 000001aa flags 000002f5
[ 31.290466] omap_hsmmc omap_hsmmc.1: mmc1: CMD8, argument 0x000001aa
[ 31.290832] omap_hsmmc omap_hsmmc.1: IRQ Status is 18000
[ 31.290863] omap_hsmmc omap_hsmmc.1: MMC IRQ 0x18000 : ERRI CTO
[ 31.290893] mmc1: req done (CMD8): -110: 00000000 00000000 00000000 00000000
[ 31.290924] mmc1: starting CMD5 arg 00000000 flags 000002e1
[ 31.290954] omap_hsmmc omap_hsmmc.1: mmc1: CMD5, argument 0x00000000
[ 31.291290] omap_hsmmc omap_hsmmc.1: IRQ Status is 18000
[ 31.291320] omap_hsmmc omap_hsmmc.1: MMC IRQ 0x18000 : ERRI CTO
[ 31.291381] mmc1: req failed (CMD5): -110, retrying...
[ 31.291412] omap_hsmmc omap_hsmmc.1: mmc1: CMD5, argument 0x00000000
[ 31.291748] omap_hsmmc omap_hsmmc.1: IRQ Status is 18000
[ 31.291778] omap_hsmmc omap_hsmmc.1: MMC IRQ 0x18000 : ERRI CTO
[ 31.291839] mmc1: req failed (CMD5): -110, retrying...
[ 31.291870] omap_hsmmc omap_hsmmc.1: mmc1: CMD5, argument 0x00000000
[ 31.292205] omap_hsmmc omap_hsmmc.1: IRQ Status is 18000
[ 31.292236] omap_hsmmc omap_hsmmc.1: MMC IRQ 0x18000 : ERRI CTO
[ 31.292266] mmc1: req failed (CMD5): -110, retrying...
[ 31.292297] omap_hsmmc omap_hsmmc.1: mmc1: CMD5, argument 0x00000000
[ 31.292633] omap_hsmmc omap_hsmmc.1: IRQ Status is 18000
[ 31.292663] omap_hsmmc omap_hsmmc.1: MMC IRQ 0x18000 : ERRI CTO
[ 31.292694] mmc1: req done (CMD5): -110: 00000000 00000000 00000000 00000000
[ 31.292877] libertas_sdio: probe of mmc1:0001:1 failed with error -16
[ 31.387481] omap_hsmmc omap_hsmmc.1: disabled
Is this useful?
It seems CMD5 fails (which seems to be what the workarounds were aiming to fix).
I'm afraid I may not be of much more use as Gumstix (annoyingly) don't release schematics of their COMs, so actually probing any signals isn't really possible.
Cheers,
Joe
-----Original Message-----
From: Ohad Ben-Cohen <ohad@wizery.com>
To: Daniel Drake <dsd@laptop.org>
Cc: Joe Woodward <jw@terrafix.co.uk>, linux-mmc@vger.kernel.org, Chris Ball <cjb@laptop.org>
Date: Wed, 30 Nov 2011 16:29:21 +0200
Subject: Re: mmc: sdio: runtime PM and 8686 problems
> On Wed, Nov 30, 2011 at 4:12 PM, Daniel Drake <dsd@laptop.org> wrote:
> > My patch simply sets a flag to enable a whole load of code written by
> > you - code which I understand little about. I am now available to
> > help, but given that my understanding of mmc is limited, I didn't
> > write the code in question, and I also lack expert insight into 8686
> > powerup, I'm not sure how useful I can be.
>
> Let's revert 08da834 then.
>
> When SDIO runtime PM was originally introduced, we immediately faced
> two regressions with two different chipsets, and in response decided
> not to enable it by default.
>
> With your work on the 8686 we hoped we found all the gotchas, so
> 08da834 did make sense (at least experimentally).
>
> Unfortunately we now see that some setups out there still refuse to
> work when SDIO runtime PM is enabled by default, and obviously we
> can't live with these kind of regressions.
>
> commit fd9fec7a00f58a16803e37a99a014ef82543ef6f
> Author: Ohad Ben-Cohen <ohad@wizery.com>
> Date: Wed Nov 30 16:22:13 2011 +0200
>
> Revert "mmc: enable runtime PM by default"
>
> When SDIO runtime PM was originally introduced, we immediately
> faced
> two regressions with two different chipsets, and in response
> decided
> not to enable it by default.
>
> With the recent work on the 8686 we hoped we found all the gotchas,
> so 08da834 did make sense (at least experimentally).
>
> Unfortunately we now see that some setups out there still refuse to
> work
> when SDIO runtime PM is enabled by default (see
> http://www.spinics.net/lists/linux-mmc/msg11161.html), and
> obviously we
> can't live with these kind of regressions.
>
> This reverts commit 08da834a24312157f512224691ad1fddd11c1073.
>
> Signed-off-by: Ohad Ben-Cohen <ohad@wizery.com>
> Cc: Daniel Drake <dsd@laptop.org>
>
> diff --git a/drivers/mmc/core/host.c b/drivers/mmc/core/host.c
> index e8a5eb3..d31c78b 100644
> --- a/drivers/mmc/core/host.c
> +++ b/drivers/mmc/core/host.c
> @@ -302,17 +302,6 @@ struct mmc_host *mmc_alloc_host(int extra, struct
> device *dev)
> host->max_blk_size = 512;
> host->max_blk_count = PAGE_CACHE_SIZE / 512;
>
> - /*
> - * Enable runtime power management by default. This flag was added
> due
> - * to runtime power management causing disruption for some users, but
> - * the power on/off code has been improved since then.
> - *
> - * We'll enable this flag by default as an experiment, and if no
> - * problems are reported, we will follow up later and remove the flag
> - * altogether.
> - */
> - host->caps = MMC_CAP_POWER_OFF_CARD;
> -
> return host;
>
> free:
next prev parent reply other threads:[~2011-11-30 15:01 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-11-18 8:53 mmc: sdio: runtime PM and 8686 problems Joe Woodward
2011-11-18 9:06 ` Ohad Ben-Cohen
2011-11-18 10:00 ` Joe Woodward
2011-11-18 12:15 ` Ohad Ben-Cohen
2011-11-29 11:17 ` Joe Woodward
2011-11-29 12:43 ` Ohad Ben-Cohen
2011-11-29 21:42 ` Daniel Drake
2011-11-30 10:36 ` Ohad Ben-Cohen
2011-11-30 14:12 ` Daniel Drake
2011-11-30 14:29 ` Ohad Ben-Cohen
2011-11-30 14:57 ` Daniel Drake
2011-12-01 7:50 ` Ohad Ben-Cohen
2011-11-30 15:00 ` Joe Woodward [this message]
2011-12-01 8:07 ` Ohad Ben-Cohen
2011-12-01 11:28 ` Joe Woodward
2011-12-03 16:44 ` Daniel Drake
2011-12-03 16:45 ` Daniel Drake
2011-12-07 12:28 ` Joe Woodward
2011-12-19 9:10 ` Ohad Ben-Cohen
2011-12-19 9:22 ` Ohad Ben-Cohen
2012-04-26 23:51 ` Steve Sakoman
2012-04-27 8:26 ` Joe Woodward
2012-04-28 9:51 ` NeilBrown
-- strict thread matches above, loose matches on Subject: below --
2011-12-01 11:29 Joe Woodward
2011-12-01 11:29 Joe Woodward
2011-11-11 7:26 [PATCH 2/2] mmc: core: Support packed command for eMMC4.5 device Seungwon Jeon
2011-11-11 9:38 ` S, Venkatraman
2011-11-11 19:01 ` merez
2011-11-14 9:46 ` Seungwon Jeon
2011-11-15 12:48 ` merez
2011-11-17 2:02 ` Seungwon Jeon
2011-11-17 9:16 ` mmc: sdio: runtime PM and 8686 problems Joe Woodward
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=WC20111130150051.910209@terrafix.co.uk \
--to=jw@terrafix.co.uk \
--cc=cjb@laptop.org \
--cc=dsd@laptop.org \
--cc=linux-mmc@vger.kernel.org \
--cc=ohad@wizery.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.