On Mon, 31 Jan 2011, Philip Rakity wrote:

> The transcend mmc card does not have the PHYSICAL pins for 4 bit mode; only 1 
> bit can be supported.
> 
> Testing the bus width is the recommend way to find out the bus width.  The 
> current behavior when the
> QUIRK is not defined is to default to 4 bit mode (same as has been done 
> historically).
> 
> The only way to guarantee that cards really do work would be to default to 1 
> bit mode but this has a
> 4x performance degradation.
> 
> One possible solution would be to try to do a test read operation on the mmc 
> card if the bus test failed
> and see if there is an error.  In this case change the bus width to 1 bit.
> 
> a) Do you think this is a good idea?  --
> b) How to plumb it in ?  -- can you sketch something out and I will try to 
> implement it.

Sure.  This is probably a good thing to attempt lowering the bus width 
on errors.  In mmc_request_done() you could attempt switching to a 
narrower bus width and reattempt the failed command if that command was 
about some data transfer and the error was -ETIMEDOUT.


Nicolas
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to