[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <477F20668A386D41ADCC57781B1F704308185E330B@SC-VEXCH1.marvell.com>
Date: Wed, 14 Dec 2011 23:35:03 -0800
From: Bing Zhao <bzhao@...vell.com>
To: Ohad Ben-Cohen <ohad@...ery.com>, NeilBrown <neilb@...e.de>
CC: "linux-mmc@...r.kernel.org" <linux-mmc@...r.kernel.org>,
lkml <linux-kernel@...r.kernel.org>,
Daniel Drake <dsd@...top.org>,
Joe Woodward <jw@...rafix.co.uk>, Chris Ball <cjb@...top.org>
Subject: RE: [PATCH] mmc/sdio: don't allow interface to runtime-suspend
until probe is finished.
Hi Ohad,
> > But shortly there after the extra tracing I put in shows that mmc_power_off
> > is called,
>
> Probably right after libertas' if_sdio_probe() returns ?
>
> > then mmc_sdio_power_restore calls mmc_send_io_op_cond
>
> Is that as a result of libertas' if_sdio_power_restore() being called
> (i.e. someone/something called 'ifconfig up') ?
>
> > which again
> > returns -110, but now it isn't a problem and the wifi chip keeps working.
>
> if_sdio_power_restore doesn't check the return value of
> pm_runtime_get_sync, so it won't error out, but I wonder how come the
> chip still works.
>
> > So maybe the fact that we error-out in the first case is a problem??
>
> It might be nice if Marvell could comment on this, though we can
> probably empirically deduce this too.
We will get CMD5 R4 only after a PDn (power down line) or RESETn (reset line) toggling.
Was it timed out on CMD5 or CMD52? The 2nd enumeration will result CMD5 timeout if SD8686 has been initialized (with CMD5,5,3,7 sequence) already. The 2nd CMD5 timeout should not cause any side effect though.
>
> > I found that if I pull the reset line down and then let it back up then it
> > all works.
>
> Nice. Joe, did this work out for you too ?
>
> > So I have run out of ideas. I can make it work by reseting the chip during
> > mmc_power_up but I have no idea what is causing the chip to need a reset.
>
> I wonder why the sdio reset command isn't helpful for you - it did
> seem to resolve some issues for Daniel. Maybe you have two different
> hardware revisions of the 8686 which behave differently in this
> respect ?
CMD52 Card Reset (writing bit3=1 to CCCR 0x06) may not reset the SD8686 properly for some systems. The reliable way to reset SD8686 is via RESETn toggling.
Regards,
Bing
>
> > However for now I think I'll go with my 'remux' hack.
>
> Feel free to post it so we can take a look.
>
> Thanks,
> Ohad.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists