On Tue, 2019-05-21 at 07:06:43 UTC, Sascha Hauer wrote: > The gpmi driver performance suffers from NAND operations being split > in multiple small DMA transfers. This has been forced by the NAND layer > in the former days, but now with exec_op we can use the controller as > intended. > > With this patch gpmi_nfc_exec_op becomes the main entry point to NAND > operations. Here all instructions are collected and chained as separate > DMA transfers. In the end whole chain is fired and waited to be > finished. gpmi_nfc_exec_op only does the hardware operations, bad block > marker swapping and buffer scrambling is done by the callers. It's worth > noting that the nand_*_op functions always take the buffer lengths for > the data that the NAND chip actually transfers. When doing BCH we have > to calculate the net data size from the raw data size in some places. > > This patch has been tested with 2048/64 and 2048/128 byte NAND on > i.MX6q. mtd_oobtest, mtd_subpagetest and mtd_speedtest run without > errors. nandbiterrs, nandpagetest and nandsubpagetest userspace tests > from mtdutils run without errors and UBIFS can successfully be mounted. > > Signed-off-by: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> Applied to https://git.kernel.org/pub/scm/linux/kernel/git/mtd/linux.git nand/next, thanks. Miquel ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/