All of lore.kernel.org
 help / color / mirror / Atom feed
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Boris Brezillon <boris.brezillon@bootlin.com>
Cc: Mark Rutland <mark.rutland@arm.com>,
	devicetree@vger.kernel.org, Mason Yang <masonccyang@mxic.com.tw>,
	Julien Su <juliensu@mxic.com.tw>, Pawel Moll <pawel.moll@arm.com>,
	Ian Campbell <ijc+devicetree@hellion.org.uk>,
	Piotr Bugalski <Piotr.Bugalski@cryptera.com>,
	Richard Weinberger <richard@nod.at>,
	Rob Herring <robh+dt@kernel.org>,
	linux-spi@vger.kernel.org, Peter Pan <peterpansjtu@gmail.com>,
	Marek Vasut <marek.vasut@gmail.com>,
	Frieder Schrempf <frieder.schrempf@exceet.de>,
	Mark Brown <broonie@kernel.org>,
	linux-mtd@lists.infradead.org, Kumar Gala <galak@codeaurora.org>,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Brian Norris <computersforpeace@gmail.com>,
	David Woodhouse <dwmw2@infradead.org>,
	zhengxunli@mxic.com.tw
Subject: Re: [PATCH v9 0/6] mtd: Add a SPI NAND driver
Date: Sun, 1 Jul 2018 20:11:27 +0200	[thread overview]
Message-ID: <20180701201127.551d969c@xps13> (raw)
In-Reply-To: <20180622122828.12939-1-boris.brezillon@bootlin.com>

Hi Boris,

Boris Brezillon <boris.brezillon@bootlin.com> wrote on Fri, 22 Jun 2018
14:28:22 +0200:

> Hello,
> 
> Not much has changed in this v9 except for the addition of the macronix
> driver. I mainly fixed bugs/issues reported by Miquel.
> 
> Mark, Rob, Geert, I dropped the controversial changes in the DT
> bindings patch, since it's not something specific to SPI NAND, this
> applies to SPI memory devices in general.
> 
> Thanks,
> 
> Boris
> 
> v9 changes:
> - add support for 2 SPI NANDs from Macronix
> - a few fixes and improvements (see the changelog in each patch)
> - drop the doc describing generic SPI device props in the DT binding
> 
> v8 changes:
> - dropped patch 1 which has been applied
> - fix various bugs in the core (see changelog in patch 1)
> - add a commit message to patch 4
> 
> v7 changes:
> - Use the spi-mem interface
> - Add support for on-die ECC
> - Add support for Winbond W25M02GV chip
> 
> v6 changes:
> - includes generic NAND framework patches in series
> - rebase on nand/next (commit 6076fd1e9d879521f7082a5e22185b71e480b777)
> - remove on-die ECC support
> - remove devm_free() since everything allocated by devm_kmalloc() will be
>   automatically freed when device is released
> - add comment header for structs in spinand.h
> - remove spinand_register()/unregister(), call spinand_detect() in
>   spinand_init() and only expose spinand_init()/cleanup()
> - add nand_release_bbt() in bbt.c and use it in nand_cleanup() and
>   spinand_cleanup()
> - use BIT(n) instead (1 << n) in macro of spinand.h
> - rename spinand_alloc() to devm_spinand_alloc()
> - name lables in better way
> - fix some typos
> - add empty lines between code blocks
> 
> v5 changes:
> - rebase patch on nand/next with Boris's generic NAND framework patches[3]
> - replace pr_xxx() with dev_xxx()
> - replace kzalloc()i/kfree() with devm_kzalloc()/devm_kfree()
> - rename spinand_op_init() to spinand_init_op() for consistency
> - remove command opcode in function comments
> - use BIT(n) instead (1 << n) in macro
> - remove manufactures.c and put spinand_manufacturers table in core.c
> - change spinand_write_reg() u8 *buf argument to u8 value,
>   since the length is always 1
> - remove spinand_manufacture->detect() check, since it is always != NULL
> - alloc spinand_ecc_engine struct in vendor.c when using on-die ECC
>   (for hardware ECC, it should be in controllers/*.c)
> - add comment header for struct spinand_op
> - fix timeout bug in spinand_wait(), thanks for Arnaud's debug
> - make spinand_manufacturers const
> - add ecc_engine_ops pointer in struct micron_spinand_info
> - make controller->cap assignment right with SPI_TX/RX_QUAD/DUAL flag
> 
> v4 changes:
> - initialize struct mtd_oob_ops to 0 in bbt.c
> - rename new added helper in nand.h to nand_check_xxxx()
> - add struct mtd_oob_ops consistency check in nand_check_oob_ops()
> - add dataleft in struct nand_page_iter instead of offs
> - remove spinand_manufacturers->ops->detect() check since it is mandatory
> - remove spinand_set_manufacturer_ops() and do the job in
>   spinand_manufacturer_detect()
> - move .priv out of struct spinand_controller
> - add spinand_alloc/free/register/unregister() and make
>   spinand_detect/init() static
> - make BBT be configured by device tree
> - chip->id.data stores raw ID directly
> - refine device info print message after detect success
> - add struct mtd_layout_ops pointer in struct micron_spinand_info
> - remove micron_spinand_init() and do its job in micron_spinand_detect()
> - fix BBT block cannot be erased bug
> 
> v3 changes:
> - rebase patch on 4.11-rc1[2]
> - change read ID method. read 4 bytes ID out then let ->detect() of each
>   manufacutre driver to decode ID and detect the device.
> - make SPI NAND id table private to each manufacutre driver
> - fix coding style to make checkpatch.pl happy
> - update the MAINTAINERS file for spi nand code
> - add nand_size() helper in nand.h
> - use nand_for_each_page() helper in spinand_do_read/write_ops()
> - create helper to check boundaries in generic NAND code and use it
>   in SPI NAND core
> - rename spinand_base.c to core.c
> - manufactures' drivers expose spinand_manufacturer struct instead of
>   spinand_manufacturer_ops struct to keep Manufacture ID macro in
>   manufactures' drivers and rename spinand_ids.c to manufacture.c
> - rename spinand_micron.c to micron.c
> - rename chips/ directory to controllers/
> - rename generic_spi.c to generic-spi.c
> - replace ->build_column_addr() and ->get_dummy() hooks with ->prepare_op() in
>   spinand_manufacturer_ops struct
> - rename __spinand_erase() to spinand_erase()
> - rename spinand_erase() to spinand_erase_skip_bbt()
> - rename spinand_scan_ident() to spinand_detect()
> - rename spinand_scan_tail() to spinand_init()
> - move non detect related code from spinand_detect() to spinand_init()
> - remove spinand_fill_nandd, assign nand->ops in spinand_detect()
> - merge v2 patch 3(bad block support) and patch 4(BBT support)
> - drop getchip parameter, remove spinand_get/remove_device(), take the lock
>   by caller directly
> - fix function comment headers
> - use nand_bbt_is_initialized() helper
> - replace spinand_ecc_engine and spinand_controller object in spinand_device
>   struct with pointer
> - replace struct spinand_manufacturer_ops pointer in spinand_device struct
>   with spinand_manufacturer struct
> 
> v2 changes:
> - replace "spi_nand" with "spinand".
> - rename spi nand related structs for better understanding.
> - introduce spi nand controller, manufacturer and ecc_engine struct.
> - add spi nand manufacturer initialization function refer to Boris's
>   manuf-init branch.
> - remove NAND_SKIP_BBTSCAN from series. Add it later when enabling HW ECC.
> - reorganize series according to Boris's suggestion.
> 
> Boris Brezillon (2):
>   dt-bindings: Add bindings for SPI NAND devices
>   mtd: spinand: Add initial support for the MX35LF1GE4AB chip
> 
> Frieder Schrempf (1):
>   mtd: spinand: Add initial support for Winbond W25M02GV
> 
> Miquel Raynal (1):
>   mtd: spinand: macronix: Add support for MX35LF2GE4AB
> 
> Peter Pan (2):
>   mtd: nand: Add core infrastructure to support SPI NANDs
>   mtd: spinand: Add initial support for Micron MT29F2G01ABAGD
> 
>  Documentation/devicetree/bindings/mtd/spi-nand.txt |    5 +
>  drivers/mtd/nand/Kconfig                           |    1 +
>  drivers/mtd/nand/Makefile                          |    1 +
>  drivers/mtd/nand/spi/Kconfig                       |    7 +
>  drivers/mtd/nand/spi/Makefile                      |    3 +
>  drivers/mtd/nand/spi/core.c                        | 1168 ++++++++++++++++++++
>  drivers/mtd/nand/spi/macronix.c                    |  144 +++
>  drivers/mtd/nand/spi/micron.c                      |  133 +++
>  drivers/mtd/nand/spi/winbond.c                     |  141 +++
>  include/linux/mtd/spinand.h                        |  421 +++++++
>  include/linux/spi/spi-mem.h                        |    4 +-
>  11 files changed, 2027 insertions(+), 1 deletion(-)
>  create mode 100644 Documentation/devicetree/bindings/mtd/spi-nand.txt
>  create mode 100644 drivers/mtd/nand/spi/Kconfig
>  create mode 100644 drivers/mtd/nand/spi/Makefile
>  create mode 100644 drivers/mtd/nand/spi/core.c
>  create mode 100644 drivers/mtd/nand/spi/macronix.c
>  create mode 100644 drivers/mtd/nand/spi/micron.c
>  create mode 100644 drivers/mtd/nand/spi/winbond.c
>  create mode 100644 include/linux/mtd/spinand.h
> 

Series applied.

Thank you very much!
Miquèl

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

WARNING: multiple messages have this Message-ID (diff)
From: Miquel Raynal <miquel.raynal@bootlin.com>
To: Boris Brezillon <boris.brezillon@bootlin.com>
Cc: Richard Weinberger <richard@nod.at>,
	linux-mtd@lists.infradead.org,
	David Woodhouse <dwmw2@infradead.org>,
	Brian Norris <computersforpeace@gmail.com>,
	Marek Vasut <marek.vasut@gmail.com>,
	Mark Brown <broonie@kernel.org>,
	linux-spi@vger.kernel.org, Rob Herring <robh+dt@kernel.org>,
	Pawel Moll <pawel.moll@arm.com>,
	Mark Rutland <mark.rutland@arm.com>,
	Ian Campbell <ijc+devicetree@hellion.org.uk>,
	Kumar Gala <galak@codeaurora.org>,
	devicetree@vger.kernel.org,
	Geert Uytterhoeven <geert@linux-m68k.org>,
	Piotr Bugalski <Piotr.Bugalski@cryptera.com>,
	Peter Pan <peterpansjtu@gmail.com>,
	Frieder Schrempf <frieder.schrempf@exceet.de>,
	Julien Su <juliensu@mxic.com.tw>,
	Mason Yang <masonccyang@mxic.com.tw>, <zhengxunli@mxic.com.tw>
Subject: Re: [PATCH v9 0/6] mtd: Add a SPI NAND driver
Date: Sun, 1 Jul 2018 20:11:27 +0200	[thread overview]
Message-ID: <20180701201127.551d969c@xps13> (raw)
In-Reply-To: <20180622122828.12939-1-boris.brezillon@bootlin.com>

Hi Boris,

Boris Brezillon <boris.brezillon@bootlin.com> wrote on Fri, 22 Jun 2018
14:28:22 +0200:

> Hello,
> 
> Not much has changed in this v9 except for the addition of the macronix
> driver. I mainly fixed bugs/issues reported by Miquel.
> 
> Mark, Rob, Geert, I dropped the controversial changes in the DT
> bindings patch, since it's not something specific to SPI NAND, this
> applies to SPI memory devices in general.
> 
> Thanks,
> 
> Boris
> 
> v9 changes:
> - add support for 2 SPI NANDs from Macronix
> - a few fixes and improvements (see the changelog in each patch)
> - drop the doc describing generic SPI device props in the DT binding
> 
> v8 changes:
> - dropped patch 1 which has been applied
> - fix various bugs in the core (see changelog in patch 1)
> - add a commit message to patch 4
> 
> v7 changes:
> - Use the spi-mem interface
> - Add support for on-die ECC
> - Add support for Winbond W25M02GV chip
> 
> v6 changes:
> - includes generic NAND framework patches in series
> - rebase on nand/next (commit 6076fd1e9d879521f7082a5e22185b71e480b777)
> - remove on-die ECC support
> - remove devm_free() since everything allocated by devm_kmalloc() will be
>   automatically freed when device is released
> - add comment header for structs in spinand.h
> - remove spinand_register()/unregister(), call spinand_detect() in
>   spinand_init() and only expose spinand_init()/cleanup()
> - add nand_release_bbt() in bbt.c and use it in nand_cleanup() and
>   spinand_cleanup()
> - use BIT(n) instead (1 << n) in macro of spinand.h
> - rename spinand_alloc() to devm_spinand_alloc()
> - name lables in better way
> - fix some typos
> - add empty lines between code blocks
> 
> v5 changes:
> - rebase patch on nand/next with Boris's generic NAND framework patches[3]
> - replace pr_xxx() with dev_xxx()
> - replace kzalloc()i/kfree() with devm_kzalloc()/devm_kfree()
> - rename spinand_op_init() to spinand_init_op() for consistency
> - remove command opcode in function comments
> - use BIT(n) instead (1 << n) in macro
> - remove manufactures.c and put spinand_manufacturers table in core.c
> - change spinand_write_reg() u8 *buf argument to u8 value,
>   since the length is always 1
> - remove spinand_manufacture->detect() check, since it is always != NULL
> - alloc spinand_ecc_engine struct in vendor.c when using on-die ECC
>   (for hardware ECC, it should be in controllers/*.c)
> - add comment header for struct spinand_op
> - fix timeout bug in spinand_wait(), thanks for Arnaud's debug
> - make spinand_manufacturers const
> - add ecc_engine_ops pointer in struct micron_spinand_info
> - make controller->cap assignment right with SPI_TX/RX_QUAD/DUAL flag
> 
> v4 changes:
> - initialize struct mtd_oob_ops to 0 in bbt.c
> - rename new added helper in nand.h to nand_check_xxxx()
> - add struct mtd_oob_ops consistency check in nand_check_oob_ops()
> - add dataleft in struct nand_page_iter instead of offs
> - remove spinand_manufacturers->ops->detect() check since it is mandatory
> - remove spinand_set_manufacturer_ops() and do the job in
>   spinand_manufacturer_detect()
> - move .priv out of struct spinand_controller
> - add spinand_alloc/free/register/unregister() and make
>   spinand_detect/init() static
> - make BBT be configured by device tree
> - chip->id.data stores raw ID directly
> - refine device info print message after detect success
> - add struct mtd_layout_ops pointer in struct micron_spinand_info
> - remove micron_spinand_init() and do its job in micron_spinand_detect()
> - fix BBT block cannot be erased bug
> 
> v3 changes:
> - rebase patch on 4.11-rc1[2]
> - change read ID method. read 4 bytes ID out then let ->detect() of each
>   manufacutre driver to decode ID and detect the device.
> - make SPI NAND id table private to each manufacutre driver
> - fix coding style to make checkpatch.pl happy
> - update the MAINTAINERS file for spi nand code
> - add nand_size() helper in nand.h
> - use nand_for_each_page() helper in spinand_do_read/write_ops()
> - create helper to check boundaries in generic NAND code and use it
>   in SPI NAND core
> - rename spinand_base.c to core.c
> - manufactures' drivers expose spinand_manufacturer struct instead of
>   spinand_manufacturer_ops struct to keep Manufacture ID macro in
>   manufactures' drivers and rename spinand_ids.c to manufacture.c
> - rename spinand_micron.c to micron.c
> - rename chips/ directory to controllers/
> - rename generic_spi.c to generic-spi.c
> - replace ->build_column_addr() and ->get_dummy() hooks with ->prepare_op() in
>   spinand_manufacturer_ops struct
> - rename __spinand_erase() to spinand_erase()
> - rename spinand_erase() to spinand_erase_skip_bbt()
> - rename spinand_scan_ident() to spinand_detect()
> - rename spinand_scan_tail() to spinand_init()
> - move non detect related code from spinand_detect() to spinand_init()
> - remove spinand_fill_nandd, assign nand->ops in spinand_detect()
> - merge v2 patch 3(bad block support) and patch 4(BBT support)
> - drop getchip parameter, remove spinand_get/remove_device(), take the lock
>   by caller directly
> - fix function comment headers
> - use nand_bbt_is_initialized() helper
> - replace spinand_ecc_engine and spinand_controller object in spinand_device
>   struct with pointer
> - replace struct spinand_manufacturer_ops pointer in spinand_device struct
>   with spinand_manufacturer struct
> 
> v2 changes:
> - replace "spi_nand" with "spinand".
> - rename spi nand related structs for better understanding.
> - introduce spi nand controller, manufacturer and ecc_engine struct.
> - add spi nand manufacturer initialization function refer to Boris's
>   manuf-init branch.
> - remove NAND_SKIP_BBTSCAN from series. Add it later when enabling HW ECC.
> - reorganize series according to Boris's suggestion.
> 
> Boris Brezillon (2):
>   dt-bindings: Add bindings for SPI NAND devices
>   mtd: spinand: Add initial support for the MX35LF1GE4AB chip
> 
> Frieder Schrempf (1):
>   mtd: spinand: Add initial support for Winbond W25M02GV
> 
> Miquel Raynal (1):
>   mtd: spinand: macronix: Add support for MX35LF2GE4AB
> 
> Peter Pan (2):
>   mtd: nand: Add core infrastructure to support SPI NANDs
>   mtd: spinand: Add initial support for Micron MT29F2G01ABAGD
> 
>  Documentation/devicetree/bindings/mtd/spi-nand.txt |    5 +
>  drivers/mtd/nand/Kconfig                           |    1 +
>  drivers/mtd/nand/Makefile                          |    1 +
>  drivers/mtd/nand/spi/Kconfig                       |    7 +
>  drivers/mtd/nand/spi/Makefile                      |    3 +
>  drivers/mtd/nand/spi/core.c                        | 1168 ++++++++++++++++++++
>  drivers/mtd/nand/spi/macronix.c                    |  144 +++
>  drivers/mtd/nand/spi/micron.c                      |  133 +++
>  drivers/mtd/nand/spi/winbond.c                     |  141 +++
>  include/linux/mtd/spinand.h                        |  421 +++++++
>  include/linux/spi/spi-mem.h                        |    4 +-
>  11 files changed, 2027 insertions(+), 1 deletion(-)
>  create mode 100644 Documentation/devicetree/bindings/mtd/spi-nand.txt
>  create mode 100644 drivers/mtd/nand/spi/Kconfig
>  create mode 100644 drivers/mtd/nand/spi/Makefile
>  create mode 100644 drivers/mtd/nand/spi/core.c
>  create mode 100644 drivers/mtd/nand/spi/macronix.c
>  create mode 100644 drivers/mtd/nand/spi/micron.c
>  create mode 100644 drivers/mtd/nand/spi/winbond.c
>  create mode 100644 include/linux/mtd/spinand.h
> 

Series applied.

Thank you very much!
Miquèl

  parent reply	other threads:[~2018-07-01 18:11 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-22 12:28 [PATCH v9 0/6] mtd: Add a SPI NAND driver Boris Brezillon
2018-06-22 12:28 ` Boris Brezillon
2018-06-22 12:28 ` [PATCH v9 1/6] mtd: nand: Add core infrastructure to support SPI NANDs Boris Brezillon
2018-06-22 12:28   ` Boris Brezillon
2018-06-22 12:28 ` [PATCH v9 2/6] dt-bindings: Add bindings for SPI NAND devices Boris Brezillon
2018-06-22 12:28   ` Boris Brezillon
2018-06-25 14:45   ` Rob Herring
2018-06-25 14:45     ` Rob Herring
2018-06-22 12:28 ` [PATCH v9 3/6] mtd: spinand: Add initial support for Micron MT29F2G01ABAGD Boris Brezillon
2018-06-22 12:28   ` Boris Brezillon
2018-06-22 12:28 ` [PATCH v9 4/6] mtd: spinand: Add initial support for Winbond W25M02GV Boris Brezillon
2018-06-22 12:28   ` Boris Brezillon
2018-06-22 12:28 ` [PATCH v9 5/6] mtd: spinand: Add initial support for the MX35LF1GE4AB chip Boris Brezillon
2018-06-22 12:28   ` Boris Brezillon
2018-06-22 12:28 ` [PATCH v9 6/6] mtd: spinand: macronix: Add support for MX35LF2GE4AB Boris Brezillon
2018-06-22 12:28   ` Boris Brezillon
2018-07-01 18:11 ` Miquel Raynal [this message]
2018-07-01 18:11   ` [PATCH v9 0/6] mtd: Add a SPI NAND driver Miquel Raynal

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180701201127.551d969c@xps13 \
    --to=miquel.raynal@bootlin.com \
    --cc=Piotr.Bugalski@cryptera.com \
    --cc=boris.brezillon@bootlin.com \
    --cc=broonie@kernel.org \
    --cc=computersforpeace@gmail.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dwmw2@infradead.org \
    --cc=frieder.schrempf@exceet.de \
    --cc=galak@codeaurora.org \
    --cc=geert@linux-m68k.org \
    --cc=ijc+devicetree@hellion.org.uk \
    --cc=juliensu@mxic.com.tw \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linux-spi@vger.kernel.org \
    --cc=marek.vasut@gmail.com \
    --cc=mark.rutland@arm.com \
    --cc=masonccyang@mxic.com.tw \
    --cc=pawel.moll@arm.com \
    --cc=peterpansjtu@gmail.com \
    --cc=richard@nod.at \
    --cc=robh+dt@kernel.org \
    --cc=zhengxunli@mxic.com.tw \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.