Re: [PATCH] [MTD] [NAND] GPIO NAND flash driver

Mike Rapoport
2008-10-08T08:28:20Z

Mike Frysinger wrote:
> On Wed, Oct 8, 2008 at 03:28, Russell King - ARM Linux wrote:
>> On Wed, Oct 08, 2008 at 02:20:13AM -0400, Mike Frysinger wrote:
>>> On Wed, Oct 8, 2008 at 02:01, Mike Rapoport wrote:
>>>> +/* gpio_nand_dosync()
>>>> + *
>>>> + * needed due to bus-reordering within the PXA itself (see section on
>>>> + * I/O ordering in PXA manual (section 2.3, p35)
>>>> + */
>>>> +static void gpio_nand_dosync(struct gpiomtd *gpiomtd)
>>>> +{
>>>> + unsigned long tmp;
>>>> +
>>>> + if (gpiomtd->io_sync) {
>>>> + /*
>>>> + * this should generate the read, followed by
>>>> + * something that depends on the read
>>>> + */
>>>> + tmp = readl(gpiomtd->io_sync);
>>>> + asm volatile("mov %1, %0\n" : "=r" (tmp) : "r" (tmp));
>>>> + }
>>>> +}
>>> there isnt much point in attempting to write a generic solution if
>>> you're just going to turn around and stick straight assembly in the
>>> middle of it. why not use a real arch-generic method like a memory
>>> barrier.
>> Linux memory barriers don't cater for what's required here. What's
>> required is what's there - a read from a separate region with a
>> dependency on that read. Linux has no such barrier.
>
> thanks, this kind of comment in the source would be useful ... but
> what is also needed is '#ifdef __arm__'

If '#ifdef' is preferable than 'depend on ARM' I can send an updated patch.

> -mike
>
> ______________________________________________________
> Linux MTD discussion mailing list
> http://lists.infradead.org/mailman/listinfo/linux-mtd/
>

--
Sincerely yours,
Mike.