Messages in this thread |  | | | Date | Wed, 11 Feb 2009 15:56:30 +0200 | | From | Adrian Hunter <> | | Subject | Re: [PATCH] mmc_core: fix data timeout for SEND_EXT_CSD |
| |
Matt Fleming wrote: > On Tue, Feb 10, 2009 at 05:40:59PM +0200, Adrian Hunter wrote: >> diff --git a/drivers/mmc/core/mmc_ops.c b/drivers/mmc/core/mmc_ops.c >> index 9c50e6f..418a270 100644 >> --- a/drivers/mmc/core/mmc_ops.c >> +++ b/drivers/mmc/core/mmc_ops.c >> @@ -248,12 +248,16 @@ mmc_send_cxd_data(struct mmc_card *card, struct mmc_host *host, >> >> sg_init_one(&sg, data_buf, len); >> >> - /* >> - * The spec states that CSR and CID accesses have a timeout >> - * of 64 clock cycles. >> - */ >> - data.timeout_ns = 0; >> - data.timeout_clks = 64; >> + if (!mmc_host_is_spi(card->host) && opcode == MMC_SEND_EXT_CSD) >> + mmc_set_data_timeout(&data, card); >> + else { >> + /* >> + * The spec states that CSR and CID accesses have a timeout >> + * of 64 clock cycles (8 for SPI). >> + */ >> + data.timeout_ns = 0; >> + data.timeout_clks = 64; >> + } >> >> mmc_wait_for_req(host, &mrq); >> > > Doh! You're right, I did inadvertently break this. Your fix looks good. >
Actually looking at it now, it seems to have an error, because card may be NULL in the MMC_SEND_CID case.
Should be
if (!mmc_host_is_spi(host) && opcode == MMC_SEND_EXT_CSD) I will resend.
|  |