[MTD] [NAND] atmel_nand speedup via {read,write}s{b,w}()
authorDavid Brownell <david-b@pacbell.net>
Fri, 4 Jul 2008 06:40:16 +0000 (23:40 -0700)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Fri, 11 Jul 2008 13:51:21 +0000 (14:51 +0100)
commit23a346ca4a5a6f50f81062456af955155f68e313
treed2e37dfb9bdc350aab668ee0cac9168a43cc78ea
parent175428b2b3eeacf90dcc171d5915d6b4dc86e917
[MTD] [NAND] atmel_nand speedup via {read,write}s{b,w}()

This uses __raw_{read,write}s{b,w}() primitives to access data on NAND
chips for more efficient I/O.

On an arm926 with memory clocked at 100 MHz, this reduced the elapsed time
for a 64 MiB read by 16%.  ("dd" /dev/mtd0 to /dev/null, with an 8-bit
NAND using hardware ECC and 128KiB blocksize.)

Also some minor section tweaks:

  - Use platform_driver_probe() so no pointer to probe() lingers
    after that code has been removed at run-time.

  - Use __exit and __exit_p so the remove() code will normally be
    removed by the linker.

Since these buffer read/write calls are new, this increases the runtime
code footprint (by 88 bytes on my build, after the section tweaks).

[haavard.skinnemoen@atmel.com: rebase onto atmel_nand rename]
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: HÃ¥vard Skinnemoen <haavard.skinnemoen@atmel.com>
Acked-by: Andrew Victor <linux@maxim.org.za>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
drivers/mtd/nand/atmel_nand.c