Messages in this thread | | | Date | Sat, 4 Dec 2010 22:33:48 +0100 | From | Wolfram Sang <> | Subject | Re: [PATCH v3 2/3]set timeout control reg for such SDHCI host |
| |
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/ | [unhandled content-type:application/pgp-signature] | |