[PATCH] mtd: nand: docg4: add udelay(1) to polling loop
Mike Dunn
mikedunn at newsguy.com
Thu May 16 15:49:55 EDT 2013
On 05/16/2013 12:43 AM, Artem Bityutskiy wrote:
> On Mon, 2013-04-22 at 11:23 -0700, Mike Dunn wrote:
>> timeo = 1000;
>> do {
>> + udelay(1);
>> cpu_relax();
>> flash_status = readb(docptr + DOC_FLASHCONTROL);
>> } while (!(flash_status & DOC_CTRL_FLASHREADY) && --timeo);
>
> How about using jiffies instead? Something like:
>
> timeout = jiffies + msecs_to_jiffies(delay);
> do {
> } while (time_before(jiffies, timeout))
>
This works too (just tested it). But the reason I did not do this originally is
because the timeout is very short. With udelay(1) and timeo=1000, the timeout
is 1ms (plus processing time), and I think this is well in excess of the actual
time needed by the hardware. Using jiffies and with HZ=100, my minimum timeout
is 10ms. But there's no harm in having an excessive timeout since it's a
busy-wait loop, so your suggestion is probably fine.
Is use of udelay() frowned upon? Will using jiffies cause a problem with a
"tickless" configuration? Hoping to learn something...
Thanks Artem!
Mike
More information about the linux-mtd
mailing list