On Fri, Dec 03, 2010 at 10:38:59AM +0800, Dong, Chuanxiao wrote: > > > > On Thu, Dec 02, 2010 at 07:26:13PM +0800, Chuanxiao Dong wrote: > > > > > + if (host->quirks & SDHCI_QUIRK_FORCE_ERASE_SINGLE) { > > > + /* Set the timeout to be the maximum value */ > > > + if (cmd->erase_timeout) > > > + sdhci_writeb(host, 0xE, SDHCI_TIMEOUT_CONTROL); > > > + } > > > + > > > sdhci_writew(host, SDHCI_MAKE_CMD(cmd->opcode, flags), > > > SDHCI_COMMAND); > > > > Hmm, this looks like another argument for Philip's idea to always use the maximum > > timeout value and skip the quirks related to it? > > Yes, if always using the maximum timeout value is OK for other command, the patch2 can be removed I think. > The new added quirk in the serials patches is used to set the limitation of request queue, not only just to set the timeout control reg. > Even the timeout value was set to be 0xE (the maximum value), erasing too many sectors can still be failed since the timeout time was still not longer enough. > So the count of erased sectors passed down by request queue should be reduced by using this quirk. Yes, I think I understand the issue. Have you tried adding a callback, so we don't have the options between MAX_UINT and '1' but rather MAX_UINT and return value of the callback? Regards, Wolfram -- Pengutronix e.K. | Wolfram Sang | Industrial Linux Solutions | http://www.pengutronix.de/ |
Attachment:
signature.asc
Description: Digital signature