]> git.baikalelectronics.ru Git - kernel.git/commit
[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)
commite47aa61049da8623aa7b61402a6da08f905e6b7e
treed2e37dfb9bdc350aab668ee0cac9168a43cc78ea
parentb96be95713374927a9b8fa4ac0c1e95f83ac7c8e
[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