The GPMI nand driver suffers from very poor performance. The read performance can be roughly doubled with two steps: First is to use runtime PM for controlling the clocks which prevents the driver from spending a good amount of time en/disabling the clocks. The second step is to implement exec_op which allows us to combine the steps necessary to do a page read into a single DMA transaction. Sascha Sascha Hauer (10): mtd: rawnand: export nand operation tracer mtd: rawnand: fsmc: Use nand_op_trace for operation tracing mtd: rawnand: gpmi: move all driver code into single file mtd: rawnand: gpmi: remove unused variable mtd: rawnand: gpmi: Remove unnecessary variables mtd: rawnand: gpmi: read buf in nand_read_page_op mtd: rawnand: gpmi: remove unused parameters mtd: rawnand: gpmi: Drop unnecessary restoring of previous chipselection mtd: rawnand: gpmi: use runtime PM to manage clocks mtd: rawnand: gpmi: Implement exec_op drivers/dma/mxs-dma.c | 3 + drivers/mtd/nand/raw/fsmc_nand.c | 19 +- drivers/mtd/nand/raw/gpmi-nand/Makefile | 1 - drivers/mtd/nand/raw/gpmi-nand/gpmi-lib.c | 936 ----------- drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.c | 1694 ++++++++++++++------ drivers/mtd/nand/raw/gpmi-nand/gpmi-nand.h | 64 +- drivers/mtd/nand/raw/nand_base.c | 30 +- include/linux/mtd/rawnand.h | 37 + 8 files changed, 1236 insertions(+), 1548 deletions(-) delete mode 100644 drivers/mtd/nand/raw/gpmi-nand/gpmi-lib.c -- 2.20.1 ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/