All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4] mtd: nand: automate NAND timings selection
@ 2016-09-09 12:05 ` Sascha Hauer
  0 siblings, 0 replies; 34+ messages in thread
From: Sascha Hauer @ 2016-09-09 12:05 UTC (permalink / raw)
  To: linux-mtd; +Cc: Boris Brezillon, linux-arm-kernel, kernel


This series aims at automating the NAND timings selection which is
currently supposed to be done in each NAND controller driver, thus
simplifying drivers implementation.

As suggested by Boris this version of the series introduces a nand_reset()
function which replaces the several open coded NAND_CMD_RESET commands
in the code. This makes sure we can apply the timing each time after
after reset.

Also I have brought back the conversion patch for teh sunxi driver whic
was part of Boris initial posting. It's untested due to the lack of hardware,
so please test before applying.

Sascha

Changes since v3:
- Bring back patch dropped in v3
- Use statically allocated default timing for all chips and store one
  optimized timing in struct nand_chip

Changes since v2:
- Add accessor function to get the SDR timing from struct nand_data_interface
- Change nand_reset() argument to struct nand_chip
- Drop conversion of nand_timing array to struct nand_data_interface
- Recalculate timing whenever needed instead of storing a pointer in struct
  nand_chip
- some more refactoring

Changes since v1:
- create a nand_reset() function to create a single place to reset NAND
  chips and to apply timings
- Add patch to convert sunxi driver for automated timing setup
- split into more patches

Changes since the initial posting from Boris:

- Integrate Feedback from Ezequiel Garcia
- When iterating over the chips calling onfi_set_features() for each
  bail out when any of the calls fail, not only the last one.
- When one of the onfi_set_features() calls fail then reset the chipi
  afterwards.
- Drop Sunxi example, add patch for the mxc_nand controller instead.

----------------------------------------------------------------

Boris Brezillon (1):
      mtd: nand: automate NAND timings selection

Sascha Hauer (8):
      mtd: nand: Create a NAND reset function
      mtd: nand: Introduce nand_data_interface
      mtd: nand: convert ONFI mode into data interface
      mtd: nand: Add function to convert ONFI mode to data_interface
      mtd: nand: Expose data interface for ONFI mode 0
      mtd: nand: sunxi: switch from manual to automated timing config
      mtd: nand: mxc: implement onfi get/set features
      mtd: nand: mxc: Add timing setup for v2 controllers

 drivers/mtd/nand/mxc_nand.c     | 133 ++++++++++++
 drivers/mtd/nand/nand_base.c    | 178 +++++++++++++++-
 drivers/mtd/nand/nand_timings.c | 457 ++++++++++++++++++++++------------------
 drivers/mtd/nand/sunxi_nand.c   |  76 ++-----
 include/linux/mtd/nand.h        | 187 +++++++++++-----
 5 files changed, 705 insertions(+), 326 deletions(-)

^ permalink raw reply	[flat|nested] 34+ messages in thread
* [PATCH v4] mtd: nand: automate NAND timings selection
@ 2016-09-15  8:32 Sascha Hauer
  2016-09-15  8:32   ` Sascha Hauer
  0 siblings, 1 reply; 34+ messages in thread
From: Sascha Hauer @ 2016-09-15  8:32 UTC (permalink / raw)
  To: linux-mtd; +Cc: Boris Brezillon, kernel, linux-arm-kernel


This series aims at automating the NAND timings selection which is
currently supposed to be done in each NAND controller driver, thus
simplifying drivers implementation.

As suggested by Boris this version of the series introduces a nand_reset()
function which replaces the several open coded NAND_CMD_RESET commands
in the code. This makes sure we can apply the timing each time after
after reset.

Also I have brought back the conversion patch for teh sunxi driver whic
was part of Boris initial posting. It's untested due to the lack of hardware,
so please test before applying.

Sascha

Changes since v4:
- Change onfi_init_data_interface() prototype to be more future proof as
  requested by Boris

Changes since v3:
- Bring back patch dropped in v3
- Use statically allocated default timing for all chips and store one
  optimized timing in struct nand_chip

Changes since v2:
- Add accessor function to get the SDR timing from struct nand_data_interface
- Change nand_reset() argument to struct nand_chip
- Drop conversion of nand_timing array to struct nand_data_interface
- Recalculate timing whenever needed instead of storing a pointer in struct
  nand_chip
- some more refactoring

Changes since v1:
- create a nand_reset() function to create a single place to reset NAND
  chips and to apply timings
- Add patch to convert sunxi driver for automated timing setup
- split into more patches

Changes since the initial posting from Boris:

- Integrate Feedback from Ezequiel Garcia
- When iterating over the chips calling onfi_set_features() for each
  bail out when any of the calls fail, not only the last one.
- When one of the onfi_set_features() calls fail then reset the chipi
  afterwards.
- Drop Sunxi example, add patch for the mxc_nand controller instead.

----------------------------------------------------------------

Boris Brezillon (1):
      mtd: nand: automate NAND timings selection

Sascha Hauer (8):
      mtd: nand: Create a NAND reset function
      mtd: nand: Introduce nand_data_interface
      mtd: nand: convert ONFI mode into data interface
      mtd: nand: Add function to convert ONFI mode to data_interface
      mtd: nand: Expose data interface for ONFI mode 0
      mtd: nand: sunxi: switch from manual to automated timing config
      mtd: nand: mxc: implement onfi get/set features
      mtd: nand: mxc: Add timing setup for v2 controllers

 drivers/mtd/nand/mxc_nand.c     | 133 ++++++++++++
 drivers/mtd/nand/nand_base.c    | 179 ++++++++++++++-
 drivers/mtd/nand/nand_timings.c | 469 ++++++++++++++++++++++------------------
 drivers/mtd/nand/sunxi_nand.c   |  76 ++-----
 include/linux/mtd/nand.h        | 190 +++++++++++-----
 5 files changed, 721 insertions(+), 326 deletions(-)

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

end of thread, other threads:[~2016-09-15  8:33 UTC | newest]

Thread overview: 34+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-09 12:05 [PATCH v4] mtd: nand: automate NAND timings selection Sascha Hauer
2016-09-09 12:05 ` Sascha Hauer
2016-09-09 12:05 ` [PATCH 1/9] mtd: nand: Create a NAND reset function Sascha Hauer
2016-09-09 12:05   ` Sascha Hauer
2016-09-09 12:15   ` Fabio Estevam
2016-09-09 12:15     ` Fabio Estevam
2016-09-09 12:26     ` Boris Brezillon
2016-09-09 12:26       ` Boris Brezillon
2016-09-09 19:24       ` Uwe Kleine-König
2016-09-09 19:24         ` Uwe Kleine-König
2016-09-09 12:05 ` [PATCH 2/9] mtd: nand: Introduce nand_data_interface Sascha Hauer
2016-09-09 12:05   ` Sascha Hauer
2016-09-09 12:05 ` [PATCH 3/9] mtd: nand: convert ONFI mode into data interface Sascha Hauer
2016-09-09 12:05   ` Sascha Hauer
2016-09-09 12:05 ` [PATCH 4/9] mtd: nand: Add function to convert ONFI mode to data_interface Sascha Hauer
2016-09-09 12:05   ` Sascha Hauer
2016-09-09 12:35   ` Boris Brezillon
2016-09-09 12:35     ` Boris Brezillon
2016-09-12  6:35     ` Sascha Hauer
2016-09-12  6:35       ` Sascha Hauer
2016-09-12 18:18       ` Boris Brezillon
2016-09-12 18:18         ` Boris Brezillon
2016-09-09 12:05 ` [PATCH 5/9] mtd: nand: Expose data interface for ONFI mode 0 Sascha Hauer
2016-09-09 12:05   ` Sascha Hauer
2016-09-09 12:05 ` [PATCH 6/9] mtd: nand: automate NAND timings selection Sascha Hauer
2016-09-09 12:05   ` Sascha Hauer
2016-09-09 12:05 ` [PATCH 7/9] mtd: nand: sunxi: switch from manual to automated timing config Sascha Hauer
2016-09-09 12:05   ` Sascha Hauer
2016-09-09 12:05 ` [PATCH 8/9] mtd: nand: mxc: implement onfi get/set features Sascha Hauer
2016-09-09 12:05   ` Sascha Hauer
2016-09-09 12:05 ` [PATCH 9/9] mtd: nand: mxc: Add timing setup for v2 controllers Sascha Hauer
2016-09-09 12:05   ` Sascha Hauer
2016-09-15  8:32 [PATCH v4] mtd: nand: automate NAND timings selection Sascha Hauer
2016-09-15  8:32 ` [PATCH 4/9] mtd: nand: Add function to convert ONFI mode to data_interface Sascha Hauer
2016-09-15  8:32   ` Sascha Hauer

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.