From: Boris Brezillon <boris.brezillon@free-electrons.com>
To: Miquel Raynal <miquel.raynal@free-electrons.com>
Cc: Mark Rutland <mark.rutland@arm.com>, Andrew Lunn <andrew@lunn.ch>,
Catalin Marinas <catalin.marinas@arm.com>,
Hanna Hawa <hannah@marvell.com>,
Will Deacon <will.deacon@arm.com>, Stefan Agner <stefan@agner.ch>,
Nadav Haklai <nadavh@marvell.com>,
Masahiro Yamada <yamada.masahiro@socionext.com>,
linux-mtd@lists.infradead.org,
Matthias Brugger <matthias.bgg@gmail.com>,
Robert Jarzmik <robert.jarzmik@free.fr>,
devel@driverdev.osuosl.org,
Maxim Levitsky <maximlevitsky@gmail.com>,
Kamal Dasu <kdasu.kdev@gmail.com>,
Josh Wu <rainyfeeling@outlook.com>,
Russell King <linux@armlinux.org.uk>,
Marek Vasut <marek.vasut@gmail.com>, Chen-Yu Tsai <wens@csie.org>,
bcm-kernel-feedback-list@broadcom.com,
Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>,
Ezequiel Garcia <ezequiel.garcia@free-electrons.com>,
Sylvain Lemieux <slemieux.tyco@gmail.com>,
Marc Gonzalez <marc_gonzalez@sigma>
Subject: Re: [RFC 00/12] Marvell NAND controller rework with ->exec_op()
Date: Thu, 19 Oct 2017 00:29:22 +0200 [thread overview]
Message-ID: <20171019002922.5ab978ed@bbrezillon> (raw)
In-Reply-To: <20171018143629.29302-1-miquel.raynal@free-electrons.com>
Hi Miquel,
On Wed, 18 Oct 2017 16:36:17 +0200
Miquel Raynal <miquel.raynal@free-electrons.com> wrote:
> Hi,
>
> This series adds the implementation of the NAND framework ->exec_op()
> interface with all the related hooks and helpers. The reasons for adding
> it are explained in details in the commit log "mtd: nand: add
> ->exec_op() implementation", but mostly it will ease later expansion of
> the framework, as well as the implementation of new vendor specific
> commands, and should also ease driver development.
Still need to review patch 6, but I'd like to say I'm really happy to
see that happen, finally. Hopefully that will help us make the NAND
framework a bit easier to maintain and allow us to support advanced
NAND features without having to patch all NAND controller drivers every
time we add a new vendor specific operation. I also have in mind a few
NAND controller drivers that have been rejected because they were not
fitting in the ->cmd_ctrl() approach and I didn't want to add more
drivers with their own partially implemented/broken ->cmdfunc() method.
Kudos for the work you've done, and I hope we'll get reviews from other
active NAND driver maintainers/contributors. To all NAND driver
maintainers: note that the long term goal is to get rid of
->cmd_ctrl()/cmdfunc()/read/write_buf/byte/word() entirely and replace
them with a single ->exec_op() hook. Please let us know if you need
extra things that are not yet exposed in nand_op_instr/nand_op_parser
or if you would like things to be done differently.
Thanks,
Boris
>
> The series contains as well the reworked NAND controller driver from
> Marvell.
>
> A lot of comments are written to explain how to use the new API and the
> Marvell driver shows how to implement it. A proper external
> documentation is being written and will later be submitted.
>
> It also changes the device tree NAND node definition for all platforms
> referring to the Marvell driver to use the new bindings. They are more
> hierarchical and fit the real organization of the hardware, by having
> NAND partitions that are part of NAND chip nodes, themselves part of
> the NAND controller node.
>
> See the commit log of "mtd: nand: add reworked Marvell NAND controller
> driver" for details about why a completely new driver is needed.
>
> As this series changes several core functions and also directly touches
> multiple controller drivers, it would be great to have reviews and tests
> from the concerned maintainers. Only PXA3xx SoCs are not supported yet
> (explaining the RFC) as having a local board to test is really needed.
>
> Thank you,
> Miquèl
>
>
> Boris Brezillon (2):
> mtd: nand: provide several helpers to do common NAND operations
> mtd: nand: force drivers to explicitly send READ/PROG commands
>
> Miquel Raynal (10):
> mtd: nand: use a static data_interface in the nand_chip structure
> mtd: nand: add ->exec_op() implementation
> dt-bindings: mtd: add Marvell NAND controller documentation
> mtd: nand: add reworked Marvell NAND controller driver
> ARM: dts: armada-370-xp: use reworked NAND controller driver
> ARM: dts: armada-375: use reworked NAND controller driver
> ARM: dts: armada-38x: use reworked NAND controller driver
> ARM: dts: armada-39x: use reworked NAND controller driver
> ARM: dts: pxa: use reworked NAND controller driver
> ARM64: dts: marvell: use reworked NAND controller driver on Armada
> 7K/8K
>
> .../devicetree/bindings/mtd/marvell-nand.txt | 95 +
> arch/arm/boot/dts/armada-370-db.dts | 56 +-
> arch/arm/boot/dts/armada-370-dlink-dns327l.dts | 119 +-
> arch/arm/boot/dts/armada-370-mirabox.dts | 50 +-
> arch/arm/boot/dts/armada-370-netgear-rn102.dts | 89 +-
> arch/arm/boot/dts/armada-370-netgear-rn104.dts | 89 +-
> arch/arm/boot/dts/armada-370-rd.dts | 51 +-
> arch/arm/boot/dts/armada-370-seagate-nas-xbay.dtsi | 63 +-
> arch/arm/boot/dts/armada-370-xp.dtsi | 6 +-
> arch/arm/boot/dts/armada-375-db.dts | 49 +-
> arch/arm/boot/dts/armada-375.dtsi | 6 +-
> arch/arm/boot/dts/armada-385-db-ap.dts | 68 +-
> arch/arm/boot/dts/armada-385-linksys-caiman.dts | 129 +-
> arch/arm/boot/dts/armada-385-linksys-cobra.dts | 129 +-
> arch/arm/boot/dts/armada-385-linksys-rango.dts | 141 +-
> arch/arm/boot/dts/armada-385-linksys-shelby.dts | 129 +-
> arch/arm/boot/dts/armada-385-linksys.dtsi | 15 +-
> arch/arm/boot/dts/armada-388-db.dts | 54 +-
> arch/arm/boot/dts/armada-38x.dtsi | 6 +-
> arch/arm/boot/dts/armada-390-db.dts | 65 +-
> arch/arm/boot/dts/armada-395-gp.dts | 73 +-
> arch/arm/boot/dts/armada-398-db.dts | 59 +-
> arch/arm/boot/dts/armada-39x.dtsi | 6 +-
> arch/arm/boot/dts/armada-xp-db-dxbc2.dts | 1 -
> arch/arm/boot/dts/armada-xp-db-xc3-24g4xg.dts | 1 -
> arch/arm/boot/dts/armada-xp-db.dts | 1 -
> arch/arm/boot/dts/armada-xp-gp.dts | 1 -
> arch/arm/boot/dts/armada-xp-lenovo-ix4-300d.dts | 1 -
> arch/arm/boot/dts/armada-xp-linksys-mamba.dts | 155 +-
> arch/arm/boot/dts/armada-xp-netgear-rn2120.dts | 89 +-
> arch/arm/boot/dts/pxa3xx.dtsi | 6 +-
> arch/arm64/boot/dts/marvell/armada-7040-db.dts | 47 +-
> .../boot/dts/marvell/armada-cp110-master.dtsi | 6 +-
> .../arm64/boot/dts/marvell/armada-cp110-slave.dtsi | 6 +-
> drivers/mtd/nand/Kconfig | 11 +
> drivers/mtd/nand/Makefile | 1 +
> drivers/mtd/nand/atmel/nand-controller.c | 9 +-
> drivers/mtd/nand/bf5xx_nand.c | 6 +-
> drivers/mtd/nand/brcmnand/brcmnand.c | 20 +-
> drivers/mtd/nand/cafe_nand.c | 20 +-
> drivers/mtd/nand/denali.c | 109 +-
> drivers/mtd/nand/diskonchip.c | 4 +-
> drivers/mtd/nand/docg4.c | 19 +-
> drivers/mtd/nand/fsl_elbc_nand.c | 6 +-
> drivers/mtd/nand/fsl_ifc_nand.c | 6 +-
> drivers/mtd/nand/fsmc_nand.c | 5 +-
> drivers/mtd/nand/gpmi-nand/gpmi-nand.c | 76 +-
> drivers/mtd/nand/hisi504_nand.c | 9 +-
> drivers/mtd/nand/jz4740_nand.c | 16 +-
> drivers/mtd/nand/lpc32xx_mlc.c | 7 +-
> drivers/mtd/nand/lpc32xx_slc.c | 33 +-
> drivers/mtd/nand/marvell_nand.c | 2384 ++++++++++++++++++++
> drivers/mtd/nand/mtk_nand.c | 21 +-
> drivers/mtd/nand/nand_base.c | 2020 ++++++++++++++---
> drivers/mtd/nand/nand_hynix.c | 106 +-
> drivers/mtd/nand/nand_micron.c | 50 +-
> drivers/mtd/nand/nand_timings.c | 23 +-
> drivers/mtd/nand/omap2.c | 8 +-
> drivers/mtd/nand/pxa3xx_nand.c | 8 +-
> drivers/mtd/nand/qcom_nandc.c | 16 +-
> drivers/mtd/nand/r852.c | 11 +-
> drivers/mtd/nand/sh_flctl.c | 6 +-
> drivers/mtd/nand/sunxi_nand.c | 97 +-
> drivers/mtd/nand/tango_nand.c | 27 +-
> drivers/mtd/nand/tmio_nand.c | 5 +-
> drivers/mtd/nand/vf610_nfc.c | 6 +-
> drivers/staging/mt29f_spinand/mt29f_spinand.c | 7 +-
> include/linux/mtd/rawnand.h | 391 +++-
> 68 files changed, 5980 insertions(+), 1424 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/mtd/marvell-nand.txt
> create mode 100644 drivers/mtd/nand/marvell_nand.c
>
_______________________________________________
devel mailing list
devel@linuxdriverproject.org
http://driverdev.linuxdriverproject.org/mailman/listinfo/driverdev-devel
prev parent reply other threads:[~2017-10-18 22:29 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-18 14:36 [RFC 00/12] Marvell NAND controller rework with ->exec_op() Miquel Raynal
2017-10-18 14:36 ` [RFC 01/12] mtd: nand: provide several helpers to do common NAND operations Miquel Raynal
2017-10-18 14:36 ` [RFC 02/12] mtd: nand: force drivers to explicitly send READ/PROG commands Miquel Raynal
2017-10-20 9:29 ` Stefan Agner
2017-10-20 11:18 ` Boris Brezillon
2017-10-18 14:36 ` [RFC 03/12] mtd: nand: use a static data_interface in the nand_chip structure Miquel Raynal
2017-10-18 17:02 ` Boris Brezillon
2017-10-18 14:36 ` [RFC 04/12] mtd: nand: add ->exec_op() implementation Miquel Raynal
2017-10-18 21:57 ` Boris Brezillon
2017-10-18 14:36 ` [RFC 05/12] dt-bindings: mtd: add Marvell NAND controller documentation Miquel Raynal
2017-10-18 22:01 ` Boris Brezillon
2017-10-24 19:04 ` Rob Herring
2017-11-06 13:24 ` Miquel RAYNAL
2017-10-18 14:36 ` [RFC 06/12] mtd: nand: add reworked Marvell NAND controller driver Miquel Raynal
2017-10-19 7:18 ` Boris Brezillon
2017-10-18 14:36 ` [RFC 07/12] ARM: dts: armada-370-xp: use reworked " Miquel Raynal
2017-10-18 14:36 ` [RFC 08/12] ARM: dts: armada-375: " Miquel Raynal
2017-10-18 14:36 ` [RFC 09/12] ARM: dts: armada-38x: " Miquel Raynal
2017-10-18 14:36 ` [RFC 10/12] ARM: dts: armada-39x: " Miquel Raynal
2017-10-18 14:36 ` [RFC 11/12] ARM: dts: pxa: " Miquel Raynal
2017-10-18 14:36 ` [RFC 12/12] ARM64: dts: marvell: use reworked NAND controller driver on Armada 7K/8K Miquel Raynal
2017-10-18 22:29 ` Boris Brezillon [this message]
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=20171019002922.5ab978ed@bbrezillon \
--to=boris.brezillon@free-electrons.com \
--cc=andrew@lunn.ch \
--cc=bcm-kernel-feedback-list@broadcom.com \
--cc=catalin.marinas@arm.com \
--cc=devel@driverdev.osuosl.org \
--cc=ezequiel.garcia@free-electrons.com \
--cc=hannah@marvell.com \
--cc=kdasu.kdev@gmail.com \
--cc=linux-mtd@lists.infradead.org \
--cc=linux@armlinux.org.uk \
--cc=marc_gonzalez@sigma \
--cc=marek.vasut@gmail.com \
--cc=mark.rutland@arm.com \
--cc=matthias.bgg@gmail.com \
--cc=maximlevitsky@gmail.com \
--cc=miquel.raynal@free-electrons.com \
--cc=nadavh@marvell.com \
--cc=rainyfeeling@outlook.com \
--cc=robert.jarzmik@free.fr \
--cc=sebastian.hesselbarth@gmail.com \
--cc=slemieux.tyco@gmail.com \
--cc=stefan@agner.ch \
--cc=wens@csie.org \
--cc=will.deacon@arm.com \
--cc=yamada.masahiro@socionext.com \
/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 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).