All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 00/37] mtd: nand: denali: 2nd round of Denali NAND IP patch bomb
@ 2017-03-30  6:45 ` Masahiro Yamada
  0 siblings, 0 replies; 64+ messages in thread
From: Masahiro Yamada @ 2017-03-30  6:45 UTC (permalink / raw)
  To: linux-mtd
  Cc: Enrico Jorns, Artem Bityutskiy, Dinh Nguyen, Boris Brezillon,
	Marek Vasut, Graham Moore, David Woodhouse, Masami Hiramatsu,
	Chuanxiao Dong, Jassi Brar, Masahiro Yamada, devicetree,
	linux-kernel, Brian Norris, Richard Weinberger, Cyrille Pitchen,
	Rob Herring, Mark Rutland


This driver includes many problems.

One of the biggest one is a bunch of hard-coded parameters.  This IP
has many parameters that can be customized when a delivery RTL is
generated.  However, this driver was upstreamed by Intel, with
Intel parameters hard-coded.  Later, Altera added denali_dt.c to use
this driver for embedded boards, but they did not fix the code in
denali.c  So, this driver has never worked.  Even some DT bindings
actually turned out wrong.

There are more problems: [1] The driver just retrieves the OOB area as-is
whereas the controller uses syndrome page layout. [2] Many NAND chip
specific parameters are hard-coded in the driver. [3] ONFi devices are
not working  [4] It can not read Bad Block Marker

This patch series intends to solve those problems.

Outstanding changes are:
- Fix raw/oob callbacks for syndrome page layout
- Implement setup_data_interface() callback
- Fix/implement more commands for ONFi devices
- Allow to skip the driver internal bounce buffer
- Support PIO in case DMA is not supported
- Switch from ->cmdfunc over to ->cmd_ctrl

18 patches were merged at v2.
Here is the rest of the series.

v1: https://lkml.org/lkml/2016/11/26/144
v2: https://lkml.org/lkml/2017/3/22/804


Masahiro Yamada (37):
  mtd: nand: relax ecc.read_page() return value for uncorrectable ECC
  mtd: nand: denali: allow to override mtd->name from label DT property
  mtd: nand: denali: remove meaningless pipeline read-ahead operation
  mtd: nand: denali: fix bitflips calculation in handle_ecc()
  mtd: nand: denali: fix erased page checking
  mtd: nand: denali: support HW_ECC_FIXUP capability
  mtd: nand: denali_dt: enable HW_ECC_FIXUP for Altera SOCFPGA variant
  mtd: nand: denali: support 64bit capable DMA engine
  mtd: nand: denali_dt: remove dma-mask DT property
  mtd: nand: denali_dt: use pdev instead of ofdev for platform_device
  mtd: nand: denali: allow to override revision number
  mtd: nand: denali: support 1024 byte ECC step size
  mtd: nand: denali: avoid hard-coding ecc.strength and ecc.bytes
  mtd: nand: denali: support "nand-ecc-strength" DT property
  mtd: nand: denali: remove Toshiba and Hynix specific fixup code
  mtd: nand: denali_dt: add compatible strings for UniPhier SoC variants
  mtd: nand: denali: set NAND_ECC_CUSTOM_PAGE_ACCESS
  mtd: nand: denali: do not propagate NAND_STATUS_FAIL to waitfunc()
  mtd: nand: denali: use BIT() and GENMASK() for register macros
  mtd: nand: denali: remove unneeded find_valid_banks()
  mtd: nand: denali: handle timing parameters by setup_data_interface()
  mtd: nand: denali: rework interrupt handling
  mtd: nand: denali: fix NAND_CMD_STATUS handling
  mtd: nand: denali: fix NAND_CMD_PARAM handling
  mtd: nand: denali: switch over to cmd_ctrl instead of cmdfunc
  mtd: nand: denali: fix bank reset function
  mtd: nand: denali: use interrupt instead of polling for bank reset
  mtd: nand: denali: propagate page to helpers via function argument
  mtd: nand: denali: merge struct nand_buf into struct denali_nand_info
  mtd: nand: denali: use flag instead of register macro for direction
  mtd: nand: denali: fix raw and oob accessors for syndrome page layout
  mtd: nand: denali: support hardware-assisted erased page detection
  mtd: nand: allocate aligned buffers if NAND_OWN_BUFFERS is unset
  mtd: nand: allow drivers to request minimum alignment for passed
    buffer
  mtd: nand: denali: skip driver internal bounce buffer when possible
  mtd: nand: denali: use non-managed kmalloc() for DMA buffer
  mtd: nand: denali: enable bad block table scan

 .../devicetree/bindings/mtd/denali-nand.txt        |   24 +-
 drivers/mtd/nand/denali.c                          | 1971 ++++++++++----------
 drivers/mtd/nand/denali.h                          |  308 +--
 drivers/mtd/nand/denali_dt.c                       |   90 +-
 drivers/mtd/nand/denali_pci.c                      |   10 +-
 drivers/mtd/nand/nand_base.c                       |   49 +-
 include/linux/mtd/nand.h                           |    4 +-
 7 files changed, 1234 insertions(+), 1222 deletions(-)

-- 
2.7.4

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

end of thread, other threads:[~2017-04-22 15:01 UTC | newest]

Thread overview: 64+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-03-30  6:45 [PATCH v3 00/37] mtd: nand: denali: 2nd round of Denali NAND IP patch bomb Masahiro Yamada
2017-03-30  6:45 ` Masahiro Yamada
2017-03-30  6:45 ` [PATCH v3 01/37] mtd: nand: relax ecc.read_page() return value for uncorrectable ECC Masahiro Yamada
2017-03-30  6:45 ` [PATCH v3 02/37] mtd: nand: denali: allow to override mtd->name from label DT property Masahiro Yamada
2017-03-30  6:45 ` [PATCH v3 03/37] mtd: nand: denali: remove meaningless pipeline read-ahead operation Masahiro Yamada
2017-03-30  6:45 ` [PATCH v3 04/37] mtd: nand: denali: fix bitflips calculation in handle_ecc() Masahiro Yamada
2017-03-30  6:45 ` [PATCH v3 05/37] mtd: nand: denali: fix erased page checking Masahiro Yamada
2017-03-30  6:45 ` [PATCH v3 06/37] mtd: nand: denali: support HW_ECC_FIXUP capability Masahiro Yamada
2017-03-30  6:45 ` [PATCH v3 07/37] mtd: nand: denali_dt: enable HW_ECC_FIXUP for Altera SOCFPGA variant Masahiro Yamada
2017-03-30  6:45 ` [PATCH v3 08/37] mtd: nand: denali: support 64bit capable DMA engine Masahiro Yamada
2017-03-30  6:45 ` [PATCH v3 09/37] mtd: nand: denali_dt: remove dma-mask DT property Masahiro Yamada
2017-03-30  6:45 ` [PATCH v3 10/37] mtd: nand: denali_dt: use pdev instead of ofdev for platform_device Masahiro Yamada
2017-03-30  6:45 ` [PATCH v3 11/37] mtd: nand: denali: allow to override revision number Masahiro Yamada
2017-03-30  6:45 ` [PATCH v3 12/37] mtd: nand: denali: support 1024 byte ECC step size Masahiro Yamada
2017-03-30  6:45   ` Masahiro Yamada
2017-04-01  8:43   ` Masahiro Yamada
2017-04-01  8:43     ` Masahiro Yamada
2017-03-30  6:45 ` [PATCH v3 13/37] mtd: nand: denali: avoid hard-coding ecc.strength and ecc.bytes Masahiro Yamada
2017-03-31  9:09   ` Boris Brezillon
2017-03-30  6:46 ` [PATCH v3 14/37] mtd: nand: denali: support "nand-ecc-strength" DT property Masahiro Yamada
2017-03-30  6:46   ` Masahiro Yamada
2017-03-30 14:02   ` Boris Brezillon
2017-03-30 14:02     ` Boris Brezillon
2017-03-31  5:06     ` Masahiro Yamada
2017-03-31  9:46       ` Boris Brezillon
2017-04-03  3:16         ` Masahiro Yamada
2017-04-03  3:16           ` Masahiro Yamada
2017-04-09 16:33           ` Boris Brezillon
2017-04-09 16:33             ` Boris Brezillon
2017-04-11  6:19             ` Masahiro Yamada
2017-04-11  6:19               ` Masahiro Yamada
2017-04-11  7:56               ` Boris Brezillon
2017-04-11  7:56                 ` Boris Brezillon
2017-04-14  7:57                 ` Masahiro Yamada
2017-04-14  8:19                   ` Boris Brezillon
2017-04-14  8:19                     ` Boris Brezillon
2017-04-22 15:00                     ` Masahiro Yamada
2017-04-22 15:00                       ` Masahiro Yamada
2017-03-30  6:46 ` [PATCH v3 15/37] mtd: nand: denali: remove Toshiba and Hynix specific fixup code Masahiro Yamada
2017-03-30  6:46 ` [PATCH v3 16/37] mtd: nand: denali_dt: add compatible strings for UniPhier SoC variants Masahiro Yamada
2017-04-03 15:46   ` Rob Herring
2017-04-03 15:46     ` Rob Herring
2017-03-30  6:46 ` [PATCH v3 17/37] mtd: nand: denali: set NAND_ECC_CUSTOM_PAGE_ACCESS Masahiro Yamada
2017-03-30  6:46 ` [PATCH v3 18/37] mtd: nand: denali: do not propagate NAND_STATUS_FAIL to waitfunc() Masahiro Yamada
2017-03-30 15:17   ` Boris Brezillon
2017-03-30  6:46 ` [PATCH v3 19/37] mtd: nand: denali: use BIT() and GENMASK() for register macros Masahiro Yamada
2017-03-30  6:46 ` [PATCH v3 20/37] mtd: nand: denali: remove unneeded find_valid_banks() Masahiro Yamada
2017-03-30  6:46 ` [PATCH v3 21/37] mtd: nand: denali: handle timing parameters by setup_data_interface() Masahiro Yamada
2017-03-30  6:46 ` [PATCH v3 22/37] mtd: nand: denali: rework interrupt handling Masahiro Yamada
2017-03-30  6:46 ` [PATCH v3 23/37] mtd: nand: denali: fix NAND_CMD_STATUS handling Masahiro Yamada
2017-03-30  6:46 ` [PATCH v3 24/37] mtd: nand: denali: fix NAND_CMD_PARAM handling Masahiro Yamada
2017-03-30  6:46 ` [PATCH v3 25/37] mtd: nand: denali: switch over to cmd_ctrl instead of cmdfunc Masahiro Yamada
2017-03-30 15:55   ` Boris Brezillon
2017-03-30  6:46 ` [PATCH v3 26/37] mtd: nand: denali: fix bank reset function Masahiro Yamada
2017-03-30 16:16   ` Boris Brezillon
2017-04-03  7:05     ` Masahiro Yamada
2017-03-30  6:46 ` [PATCH v3 27/37] mtd: nand: denali: use interrupt instead of polling for bank reset Masahiro Yamada
2017-03-30  6:46 ` [PATCH v3 28/37] mtd: nand: denali: propagate page to helpers via function argument Masahiro Yamada
2017-03-30  6:46 ` [PATCH v3 29/37] mtd: nand: denali: merge struct nand_buf into struct denali_nand_info Masahiro Yamada
2017-03-30  6:46 ` [PATCH v3 30/37] mtd: nand: denali: use flag instead of register macro for direction Masahiro Yamada
2017-03-30 16:38 ` [PATCH v3 00/37] mtd: nand: denali: 2nd round of Denali NAND IP patch bomb Boris Brezillon
2017-03-30 16:38   ` Boris Brezillon
2017-03-31  4:05   ` Masahiro Yamada
2017-03-31  8:27     ` Boris Brezillon

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.