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

Reply via email to