Re: [PATCH v3 2/3]set timeout control reg for such SDHCI host

From: Wolfram Sang
Date: Sat Dec 04 2010 - 16:34:03 EST


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