On Fri, 19 Jun 2009 16:31:41 -0400 Bob Copeland wrote: > On Fri, Jun 19, 2009 at 3:24 PM, Pierre Ossman wrote: > > I'm afraid I don't understand the problem. If you power up the card > > before the MMC system has started, it should still properly find the > > card and activate the wl12xx driver once things are in sync. > > Okay a little more background: > > This is with the out-of-tree Android msm_sdcc host driver. There are > various implicit assumptions in module ordering. For example, one of > the platform callbacks sets a "virtual card select" flag, and then > tries to notify the MMC host via another callback to do > mmc_detect_change(). But that code runs before the MMC driver is > loaded so the callback isn't yet registered and no one gets the > notification. > This does not sound very Linux:y. Module loading order should not foul up things. If it does, then there is some missing dependency somewhere. > > Do you want me to merge it? > > It can go via the wireless tree if that's ok with you, since the > SPI driver already lives there and this all needs to be rebased > on Kalle Valo's latest changes anyway. > > It'd be nice to get msm_sdcc upstream though. > Yeah, sorry. Of course it should go through wireless. I was just in merge-mode from all the MMC patches thrown my way. :) I noticed one more thing though. You call wl12xx_irq() on interrupts, and that's all you do. So I have to assume that calls back to wl12xx_sdio_read(). That in turn calls sdio_claim_host(), which will cause the system to deadlock as that lock is not recursive (yeah I know, patches welcome). Has this code actually been tested? It doesn't seem like it can work to me. Rgds -- -- Pierre Ossman WARNING: This correspondence is being monitored by the Swedish government. Make sure your server uses encryption for SMTP traffic and consider using PGP for end-to-end encryption.