linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/16] mtd: nand: sunxi: various improvements/fixes
@ 2016-03-07 16:18 Boris Brezillon
  2016-03-07 16:18 ` [PATCH 01/16] mtd: nand: sunxi: fix call order in sunxi_nand_chip_init() Boris Brezillon
                   ` (10 more replies)
  0 siblings, 11 replies; 20+ messages in thread
From: Boris Brezillon @ 2016-03-07 16:18 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

This patchset aims at fixing a few minor bugs, and improving performances
of NAND accesses going through the sunxi NAND controller.

Note that patch 5 exports functions provided by the core which are needed
in patch 6 to still support raw OOB accesses. Other patches are just
fixes or improvements only touching the sunxi driver itself.

Here are the main improvements:
- queue CLE/ALE requests instead of forcing the controller to issue each
  cmd and address cycle separately
- benefit from ECC correction on protected OOB bytes
- use polling instead of interrupt-based waiting (avoid scheduling
  overhead for short wait period)

I'm preparing another series based on this one to add page operations
and DMA support, which, according to my first tests will bring a huge
speed improvement (at least x2 on read accesses, and even more when
ONFI timing mode > 0 is used).

Stay tuned.

Best Regards,

Boris

Boris Brezillon (16):
  mtd: nand: sunxi: fix call order in sunxi_nand_chip_init()
  mtd: nand: sunxi: fix clk rate calculation
  mtd: nand: sunxi: fix EDO mode selection
  mtd: nand: sunxi: adapt clk_rate to tWB, tADL, tWHR and tRHW timings
  mtd: nand: export default read/write oob functions
  mtd: nand: sunxi: implement ->read_oob()/->write_oob()
  mtd: nand: sunxi: implement ->read_subpage()
  mtd: nand: sunxi: improve ->cmd_ctrl() function
  mtd: nand: sunxi: let the NAND controller control the CE line
  mtd: nand: sunxi: fix the NFC_ECC_ERR_CNT() macro
  mtd: nand: sunxi: fix NFC_CTL setting
  mtd: nand: sunxi: disable clks on device removal
  mtd: nand: enable ECC pipelining
  mtd: nand: sunxi: fix ->dev_ready() implementation
  mtd: nand: sunxi: make use of readl_poll_timeout()
  mtd: nand: sunxi: poll for events instead of using interrupts

 drivers/mtd/nand/nand_base.c  |  18 +--
 drivers/mtd/nand/sunxi_nand.c | 293 ++++++++++++++++++++++++++++++------------
 include/linux/mtd/nand.h      |  14 ++
 3 files changed, 233 insertions(+), 92 deletions(-)

-- 
2.1.4

^ permalink raw reply	[flat|nested] 20+ messages in thread

end of thread, other threads:[~2016-04-13 15:27 UTC | newest]

Thread overview: 20+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-03-07 16:18 [PATCH 00/16] mtd: nand: sunxi: various improvements/fixes Boris Brezillon
2016-03-07 16:18 ` [PATCH 01/16] mtd: nand: sunxi: fix call order in sunxi_nand_chip_init() Boris Brezillon
2016-03-07 16:18 ` [PATCH 02/16] mtd: nand: sunxi: fix clk rate calculation Boris Brezillon
2016-03-08 14:58   ` Thomas Petazzoni
2016-03-08 15:20     ` Boris Brezillon
2016-03-07 16:18 ` [PATCH 03/16] mtd: nand: sunxi: fix EDO mode selection Boris Brezillon
2016-03-07 16:18 ` [PATCH 04/16] mtd: nand: sunxi: adapt clk_rate to tWB, tADL, tWHR and tRHW timings Boris Brezillon
2016-03-07 16:18 ` [PATCH 05/16] mtd: nand: export default read/write oob functions Boris Brezillon
2016-03-07 16:18 ` [PATCH 06/16] mtd: nand: sunxi: implement ->read_oob()/->write_oob() Boris Brezillon
2016-03-07 16:18 ` [PATCH 07/16] mtd: nand: sunxi: implement ->read_subpage() Boris Brezillon
2016-03-07 16:20 ` [PATCH 08/16] mtd: nand: sunxi: improve ->cmd_ctrl() function Boris Brezillon
2016-03-07 16:20 ` [PATCH 09/16] mtd: nand: sunxi: let the NAND controller control the CE line Boris Brezillon
2016-03-07 16:21 ` [PATCH 10/16] mtd: nand: sunxi: fix the NFC_ECC_ERR_CNT() macro Boris Brezillon
2016-03-07 16:21   ` [PATCH 11/16] mtd: nand: sunxi: fix NFC_CTL setting Boris Brezillon
2016-03-07 16:21   ` [PATCH 12/16] mtd: nand: sunxi: disable clks on device removal Boris Brezillon
2016-03-07 16:21   ` [PATCH 13/16] mtd: nand: enable ECC pipelining Boris Brezillon
2016-03-07 16:21   ` [PATCH 14/16] mtd: nand: sunxi: fix ->dev_ready() implementation Boris Brezillon
2016-03-07 16:21   ` [PATCH 15/16] mtd: nand: sunxi: make use of readl_poll_timeout() Boris Brezillon
2016-03-07 16:21   ` [PATCH 16/16] mtd: nand: sunxi: poll for events instead of using interrupts Boris Brezillon
2016-04-13 15:27 ` [PATCH 00/16] mtd: nand: sunxi: various improvements/fixes Boris Brezillon

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).