From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Brezillon Subject: Re: [PATCH 0/5] Introduce the new NAND core interface: ->exec_op() Date: Fri, 1 Dec 2017 10:37:48 +0100 Message-ID: <20171201103748.5bbd8ccc@bbrezillon> References: <20171130170132.27522-1-miquel.raynal@free-electrons.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20171130170132.27522-1-miquel.raynal@free-electrons.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: driverdev-devel-bounces@linuxdriverproject.org Sender: "devel" To: Miquel Raynal Cc: Hanna Hawa , Stefan Agner , Nadav Haklai , Masahiro Yamada , linux-mtd@lists.infradead.org, Gregory Clement , devel@driverdev.osuosl.org, Maxim Levitsky , Kamal Dasu , Richard Weinberger , Marek Vasut , Chen-Yu Tsai , bcm-kernel-feedback-list@broadcom.com, Ezequiel Garcia , Sylvain Lemieux , Marc Gonzalez , Vladimir Zapolskiy , linux-mediatek@lists.infradead.org, Matthias Brugger , Han Xu , Ofer Heifetz , linux-arm-kernel@lists.infradead.org, Greg Kroah-Hartman List-Id: linux-mediatek@lists.infradead.org SGkgYWxsLAoKT24gVGh1LCAzMCBOb3YgMjAxNyAxODowMToyNyArMDEwMApNaXF1ZWwgUmF5bmFs IDxtaXF1ZWwucmF5bmFsQGZyZWUtZWxlY3Ryb25zLmNvbT4gd3JvdGU6Cgo+IEhpLAo+IAo+IFRo aXMgc2VyaWVzIGFkZHMgdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBOQU5EIGZyYW1ld29yayAt PmV4ZWNfb3AoKQo+IGludGVyZmFjZSB3aXRoIGFsbCB0aGUgcmVsYXRlZCBob29rcyBhbmQgaGVs cGVycy4gVGhlIHJlYXNvbnMgZm9yIGFkZGluZwo+IGl0IGFyZSBleHBsYWluZWQgaW4gZGV0YWls cyBpbiB0aGUgY29tbWl0IGxvZzoKPiAKPiAgICAgICAgICJtdGQ6IG5hbmQ6IGFkZCAtPmV4ZWNf b3AoKSBpbXBsZW1lbnRhdGlvbiIKPiAKPiBMb25nIHN0b3J5IHNob3J0OiBpdCB3aWxsIGVhc2Ug bGF0ZXIgZXhwYW5zaW9uIG9mIHRoZSBmcmFtZXdvcmssIGFzIHdlbGwKPiBhcyB0aGUgaW1wbGVt ZW50YXRpb24gb2YgbmV3IHZlbmRvciBzcGVjaWZpYyBjb21tYW5kcywgYW5kIHNob3VsZCBhbHNv Cj4gZWFzZSBkcml2ZXIgZGV2ZWxvcG1lbnQuCj4gCj4gQSBsb3Qgb2YgY29tbWVudHMgYXJlIHdy aXR0ZW4gdG8gZXhwbGFpbiBob3cgdG8gdXNlIHRoZSBuZXcgQVBJLiBTZXZlcmFsCj4gTkFORCBj b250cm9sbGVyIGRyaXZlcnMgYXJlIGFscmVhZHkvYWxtb3N0IGNvbnZlcnRlZCB0byAtPmV4ZWNf b3AoKSwgaW4KPiBwYXJ0aWN1bGFyIGEgcmV3b3JrIG9mIHRoZSBNYXJ2ZWxsIE5BTkQgY29udHJv bGxlciBkcml2ZXIsIGFuZCB3aWxsCj4gZm9sbG93LiBPbmUgY2FuIGhhdmUgYSBsb29rIGF0IHRo ZW0gYXMgZXhhbXBsZXMgdG8gdW5kZXJzdGFuZCBob3cgdG8KPiBpbXBsZW1lbnQgb3IgcmV3b3Jr IE5BTkQgY29udHJvbGxlciBkcml2ZXJzLiBBIHByb3BlciBleHRlcm5hbAo+IGRvY3VtZW50YXRp b24gaXMgYmVpbmcgd3JpdHRlbiBhbmQgd2lsbCBsYXRlciBiZSBzdWJtaXR0ZWQuCj4gCj4gVGhh bmsgeW91LAo+IE1pcXXDqGwKPiAKPiAKPiBCb3JpcyBCcmV6aWxsb24gKDIpOgo+ICAgbXRkOiBu YW5kOiBwcm92aWRlIHNldmVyYWwgaGVscGVycyB0byBkbyBjb21tb24gTkFORCBvcGVyYXRpb25z Cj4gICBtdGQ6IG5hbmQ6IGZvcmNlIGRyaXZlcnMgdG8gZXhwbGljaXRseSBzZW5kIFJFQUQvUFJP RyBjb21tYW5kcwo+IAo+IE1pcXVlbCBSYXluYWwgKDMpOgo+ICAgbXRkOiBuYW5kOiB1c2UgdXN1 YWwgcmV0dXJuIHZhbHVlcyBmb3IgdGhlIC0+ZXJhc2UoKSBob29rCj4gICBtdGQ6IG5hbmQ6IHVz ZSBhIHN0YXRpYyBkYXRhX2ludGVyZmFjZSBpbiB0aGUgbmFuZF9jaGlwIHN0cnVjdHVyZQo+ICAg bXRkOiBuYW5kOiBhZGQgLT5leGVjX29wKCkgaW1wbGVtZW50YXRpb24KCkFwcGxpZWQgcGF0Y2hl cyAxIHRvIDQgKHdpdGggYSByZXdvcmRpbmcgb2YgcGF0Y2ggNCBjb21taXQgbWVzc2FnZSBhbmQK YSBmaXggaW4gcGF0Y2ggMSB0byBtYWtlIHNpbmdsZV9lcmFzZSgpIGNvbXBsaWFudCB3aXRoIHRo ZSBuZXcKLT5lcmFzZSgpIHNlbWFudGljKS4KCk5vdGUgdGhhdCBJIHdhcyBwcm9tcHQgdG8gYXBw bHkgdGhvc2UgcGF0Y2hlcyBiZWNhdXNlIEkgd2FudCB0aGVtIHRvCnNwZW5kIGFzIG11Y2ggdGlt ZSBhcyBwb3NzaWJsZSBpbiBsaW51eC1uZXh0IHNvIHRoYXQgd2UgY2FuIGRldGVjdCBhbmQKZml4 IHJlZ3Jlc3Npb25zIGJlZm9yZSB0aGUgbWVyZ2Ugd2luZG93LiBTbyBwbGVhc2UgdGVzdCBsaW51 eC1uZXh0IG9uCnlvdXIgaGFyZHdhcmUuCgpUaGlzIGJlaW5nIHNhaWQsIG5vdGhpbmcgaXMgc2V0 IGluIHN0b25lLCBhbmQgaWYgdGhlIHNlcmllcyBhcHBlYXJzIHRvCmJyZWFrIGV4aXN0aW5nIHNl dHVwcyBhbmQgd2UgY2FuJ3QgZml4IHRoZSBwcm9ibGVtcyBiZWZvcmUgLXJjNiwgSSdsbApkcm9w IGl0LgoKVGhhbmtzLAoKQm9yaXMKCj4gCj4gIGRyaXZlcnMvbXRkL25hbmQvYXRtZWwvbmFuZC1j b250cm9sbGVyLmMgICAgICB8ICAgIDkgKy0KPiAgZHJpdmVycy9tdGQvbmFuZC9iZjV4eF9uYW5k LmMgICAgICAgICAgICAgICAgIHwgICAgNiArLQo+ICBkcml2ZXJzL210ZC9uYW5kL2JyY21uYW5k L2JyY21uYW5kLmMgICAgICAgICAgfCAgIDIwICstCj4gIGRyaXZlcnMvbXRkL25hbmQvY2FmZV9u YW5kLmMgICAgICAgICAgICAgICAgICB8ICAgMjAgKy0KPiAgZHJpdmVycy9tdGQvbmFuZC9kZW5h bGkuYyAgICAgICAgICAgICAgICAgICAgIHwgICA0MCArLQo+ICBkcml2ZXJzL210ZC9uYW5kL2Rp c2tvbmNoaXAuYyAgICAgICAgICAgICAgICAgfCAgICA0ICstCj4gIGRyaXZlcnMvbXRkL25hbmQv ZG9jZzQuYyAgICAgICAgICAgICAgICAgICAgICB8ICAgMjEgKy0KPiAgZHJpdmVycy9tdGQvbmFu ZC9mc2xfZWxiY19uYW5kLmMgICAgICAgICAgICAgIHwgICAxMCArLQo+ICBkcml2ZXJzL210ZC9u YW5kL2ZzbF9pZmNfbmFuZC5jICAgICAgICAgICAgICAgfCAgICA2ICstCj4gIGRyaXZlcnMvbXRk L25hbmQvZnNtY19uYW5kLmMgICAgICAgICAgICAgICAgICB8ICAgIDUgKy0KPiAgZHJpdmVycy9t dGQvbmFuZC9ncG1pLW5hbmQvZ3BtaS1uYW5kLmMgICAgICAgIHwgICA3NyArLQo+ICBkcml2ZXJz L210ZC9uYW5kL2hpc2k1MDRfbmFuZC5jICAgICAgICAgICAgICAgfCAgICA5ICstCj4gIGRyaXZl cnMvbXRkL25hbmQvano0NzQwX25hbmQuYyAgICAgICAgICAgICAgICB8ICAgMTYgKy0KPiAgZHJp dmVycy9tdGQvbmFuZC9scGMzMnh4X21sYy5jICAgICAgICAgICAgICAgIHwgICAgNyArLQo+ICBk cml2ZXJzL210ZC9uYW5kL2xwYzMyeHhfc2xjLmMgICAgICAgICAgICAgICAgfCAgIDMzICstCj4g IGRyaXZlcnMvbXRkL25hbmQvbXRrX25hbmQuYyAgICAgICAgICAgICAgICAgICB8ICAgMjUgKy0K PiAgZHJpdmVycy9tdGQvbmFuZC9uYW5kX2Jhc2UuYyAgICAgICAgICAgICAgICAgIHwgMjE2MSAr KysrKysrKysrKysrKysrKysrKysrLS0tCj4gIGRyaXZlcnMvbXRkL25hbmQvbmFuZF9oeW5peC5j ICAgICAgICAgICAgICAgICB8ICAxMjQgKy0KPiAgZHJpdmVycy9tdGQvbmFuZC9uYW5kX21pY3Jv bi5jICAgICAgICAgICAgICAgIHwgICA4MyArLQo+ICBkcml2ZXJzL210ZC9uYW5kL25hbmRfdGlt aW5ncy5jICAgICAgICAgICAgICAgfCAgIDIxICstCj4gIGRyaXZlcnMvbXRkL25hbmQvb21hcDIu YyAgICAgICAgICAgICAgICAgICAgICB8ICAgMTggKy0KPiAgZHJpdmVycy9tdGQvbmFuZC9weGEz eHhfbmFuZC5jICAgICAgICAgICAgICAgIHwgICAxNCArLQo+ICBkcml2ZXJzL210ZC9uYW5kL3Fj b21fbmFuZGMuYyAgICAgICAgICAgICAgICAgfCAgIDI3ICstCj4gIGRyaXZlcnMvbXRkL25hbmQv cjg1Mi5jICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTEgKy0KPiAgZHJpdmVycy9tdGQvbmFu ZC9zaF9mbGN0bC5jICAgICAgICAgICAgICAgICAgIHwgICAgNiArLQo+ICBkcml2ZXJzL210ZC9u YW5kL3N1bnhpX25hbmQuYyAgICAgICAgICAgICAgICAgfCAgIDk3ICstCj4gIGRyaXZlcnMvbXRk L25hbmQvdGFuZ29fbmFuZC5jICAgICAgICAgICAgICAgICB8ICAgMjcgKy0KPiAgZHJpdmVycy9t dGQvbmFuZC90bWlvX25hbmQuYyAgICAgICAgICAgICAgICAgIHwgICAgNSArLQo+ICBkcml2ZXJz L210ZC9uYW5kL3ZmNjEwX25mYy5jICAgICAgICAgICAgICAgICAgfCAgICA2ICstCj4gIGRyaXZl cnMvc3RhZ2luZy9tdDI5Zl9zcGluYW5kL210MjlmX3NwaW5hbmQuYyB8ICAgIDUgKy0KPiAgaW5j bHVkZS9saW51eC9tdGQvcmF3bmFuZC5oICAgICAgICAgICAgICAgICAgIHwgIDQxNCArKysrLQo+ ICAzMSBmaWxlcyBjaGFuZ2VkLCAyNjczIGluc2VydGlvbnMoKyksIDY1NCBkZWxldGlvbnMoLSkK PiAKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRldmVs IG1haWxpbmcgbGlzdApkZXZlbEBsaW51eGRyaXZlcnByb2plY3Qub3JnCmh0dHA6Ly9kcml2ZXJk ZXYubGludXhkcml2ZXJwcm9qZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaXZlcmRldi1kZXZl bAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Fri, 1 Dec 2017 10:37:48 +0100 From: Boris Brezillon To: Miquel Raynal Cc: Richard Weinberger , David Woodhouse , Brian Norris , Marek Vasut , Cyrille Pitchen , linux-mtd@lists.infradead.org, Wenyou Yang , Nicolas Ferre , Alexandre Belloni , Kamal Dasu , Masahiro Yamada , Han Xu , Vladimir Zapolskiy , Sylvain Lemieux , Matthias Brugger , Ezequiel Garcia , Maxim Levitsky , Maxime Ripard , Chen-Yu Tsai , Marc Gonzalez , Stefan Agner , Greg Kroah-Hartman , Thomas Petazzoni , Gregory Clement , Antoine Tenart , Nadav Haklai , Ofer Heifetz , Hanna Hawa , linux-arm-kernel@lists.infradead.org, bcm-kernel-feedback-list@broadcom.com, linux-mediatek@lists.infradead.org, devel@driverdev.osuosl.org Subject: Re: [PATCH 0/5] Introduce the new NAND core interface: ->exec_op() Message-ID: <20171201103748.5bbd8ccc@bbrezillon> In-Reply-To: <20171130170132.27522-1-miquel.raynal@free-electrons.com> References: <20171130170132.27522-1-miquel.raynal@free-electrons.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Hi all, On Thu, 30 Nov 2017 18:01:27 +0100 Miquel Raynal wrote: > Hi, >=20 > 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: >=20 > "mtd: nand: add ->exec_op() implementation" >=20 > Long story short: it will ease later expansion of the framework, as well > as the implementation of new vendor specific commands, and should also > ease driver development. >=20 > A lot of comments are written to explain how to use the new API. Several > NAND controller drivers are already/almost converted to ->exec_op(), in > particular a rework of the Marvell NAND controller driver, and will > follow. One can have a look at them as examples to understand how to > implement or rework NAND controller drivers. A proper external > documentation is being written and will later be submitted. >=20 > Thank you, > Miqu=C3=A8l >=20 >=20 > Boris Brezillon (2): > mtd: nand: provide several helpers to do common NAND operations > mtd: nand: force drivers to explicitly send READ/PROG commands >=20 > Miquel Raynal (3): > mtd: nand: use usual return values for the ->erase() hook > mtd: nand: use a static data_interface in the nand_chip structure > mtd: nand: add ->exec_op() implementation Applied patches 1 to 4 (with a rewording of patch 4 commit message and a fix in patch 1 to make single_erase() compliant with the new ->erase() semantic). Note that I was prompt to apply those patches because I want them to spend as much time as possible in linux-next so that we can detect and fix regressions before the merge window. So please test linux-next on your hardware. This being said, nothing is set in stone, and if the series appears to break existing setups and we can't fix the problems before -rc6, I'll drop it. Thanks, Boris >=20 > 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 | 40 +- > drivers/mtd/nand/diskonchip.c | 4 +- > drivers/mtd/nand/docg4.c | 21 +- > drivers/mtd/nand/fsl_elbc_nand.c | 10 +- > drivers/mtd/nand/fsl_ifc_nand.c | 6 +- > drivers/mtd/nand/fsmc_nand.c | 5 +- > drivers/mtd/nand/gpmi-nand/gpmi-nand.c | 77 +- > 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/mtk_nand.c | 25 +- > drivers/mtd/nand/nand_base.c | 2161 +++++++++++++++++++= +++--- > drivers/mtd/nand/nand_hynix.c | 124 +- > drivers/mtd/nand/nand_micron.c | 83 +- > drivers/mtd/nand/nand_timings.c | 21 +- > drivers/mtd/nand/omap2.c | 18 +- > drivers/mtd/nand/pxa3xx_nand.c | 14 +- > drivers/mtd/nand/qcom_nandc.c | 27 +- > 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 | 5 +- > include/linux/mtd/rawnand.h | 414 ++++- > 31 files changed, 2673 insertions(+), 654 deletions(-) >=20 From mboxrd@z Thu Jan 1 00:00:00 1970 From: boris.brezillon@free-electrons.com (Boris Brezillon) Date: Fri, 1 Dec 2017 10:37:48 +0100 Subject: [PATCH 0/5] Introduce the new NAND core interface: ->exec_op() In-Reply-To: <20171130170132.27522-1-miquel.raynal@free-electrons.com> References: <20171130170132.27522-1-miquel.raynal@free-electrons.com> Message-ID: <20171201103748.5bbd8ccc@bbrezillon> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi all, On Thu, 30 Nov 2017 18:01:27 +0100 Miquel Raynal 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" > > Long story short: it will ease later expansion of the framework, as well > as the implementation of new vendor specific commands, and should also > ease driver development. > > A lot of comments are written to explain how to use the new API. Several > NAND controller drivers are already/almost converted to ->exec_op(), in > particular a rework of the Marvell NAND controller driver, and will > follow. One can have a look at them as examples to understand how to > implement or rework NAND controller drivers. A proper external > documentation is being written and will later be submitted. > > 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 (3): > mtd: nand: use usual return values for the ->erase() hook > mtd: nand: use a static data_interface in the nand_chip structure > mtd: nand: add ->exec_op() implementation Applied patches 1 to 4 (with a rewording of patch 4 commit message and a fix in patch 1 to make single_erase() compliant with the new ->erase() semantic). Note that I was prompt to apply those patches because I want them to spend as much time as possible in linux-next so that we can detect and fix regressions before the merge window. So please test linux-next on your hardware. This being said, nothing is set in stone, and if the series appears to break existing setups and we can't fix the problems before -rc6, I'll drop it. Thanks, Boris > > 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 | 40 +- > drivers/mtd/nand/diskonchip.c | 4 +- > drivers/mtd/nand/docg4.c | 21 +- > drivers/mtd/nand/fsl_elbc_nand.c | 10 +- > drivers/mtd/nand/fsl_ifc_nand.c | 6 +- > drivers/mtd/nand/fsmc_nand.c | 5 +- > drivers/mtd/nand/gpmi-nand/gpmi-nand.c | 77 +- > 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/mtk_nand.c | 25 +- > drivers/mtd/nand/nand_base.c | 2161 ++++++++++++++++++++++--- > drivers/mtd/nand/nand_hynix.c | 124 +- > drivers/mtd/nand/nand_micron.c | 83 +- > drivers/mtd/nand/nand_timings.c | 21 +- > drivers/mtd/nand/omap2.c | 18 +- > drivers/mtd/nand/pxa3xx_nand.c | 14 +- > drivers/mtd/nand/qcom_nandc.c | 27 +- > 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 | 5 +- > include/linux/mtd/rawnand.h | 414 ++++- > 31 files changed, 2673 insertions(+), 654 deletions(-) >