From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boris Brezillon Subject: Re: [RFC 00/12] Marvell NAND controller rework with ->exec_op() Date: Thu, 19 Oct 2017 00:29:22 +0200 Message-ID: <20171019002922.5ab978ed@bbrezillon> References: <20171018143629.29302-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: <20171018143629.29302-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: Mark Rutland , Andrew Lunn , Catalin Marinas , Hanna Hawa , Will Deacon , Stefan Agner , Nadav Haklai , Masahiro Yamada , linux-mtd@lists.infradead.org, Matthias Brugger , Robert Jarzmik , devel@driverdev.osuosl.org, Maxim Levitsky , Kamal Dasu , Josh Wu , Russell King , Marek Vasut , Chen-Yu Tsai , bcm-kernel-feedback-list@broadcom.com, Sebastian Hesselbarth , Ezequiel Garcia , Sylvain Lemieux , Marc Gonzalez List-Id: linux-mediatek@lists.infradead.org SGkgTWlxdWVsLAoKT24gV2VkLCAxOCBPY3QgMjAxNyAxNjozNjoxNyArMDIwMApNaXF1ZWwgUmF5 bmFsIDxtaXF1ZWwucmF5bmFsQGZyZWUtZWxlY3Ryb25zLmNvbT4gd3JvdGU6Cgo+IEhpLAo+IAo+ IFRoaXMgc2VyaWVzIGFkZHMgdGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBOQU5EIGZyYW1ld29y ayAtPmV4ZWNfb3AoKQo+IGludGVyZmFjZSB3aXRoIGFsbCB0aGUgcmVsYXRlZCBob29rcyBhbmQg aGVscGVycy4gVGhlIHJlYXNvbnMgZm9yIGFkZGluZwo+IGl0IGFyZSBleHBsYWluZWQgaW4gZGV0 YWlscyBpbiB0aGUgY29tbWl0IGxvZyAibXRkOiBuYW5kOiBhZGQKPiAgLT5leGVjX29wKCkgaW1w bGVtZW50YXRpb24iLCBidXQgbW9zdGx5IGl0IHdpbGwgZWFzZSBsYXRlciBleHBhbnNpb24gb2Yg IAo+IHRoZSBmcmFtZXdvcmssIGFzIHdlbGwgYXMgdGhlIGltcGxlbWVudGF0aW9uIG9mIG5ldyB2 ZW5kb3Igc3BlY2lmaWMKPiBjb21tYW5kcywgYW5kIHNob3VsZCBhbHNvIGVhc2UgZHJpdmVyIGRl dmVsb3BtZW50LgoKU3RpbGwgbmVlZCB0byByZXZpZXcgcGF0Y2ggNiwgYnV0IEknZCBsaWtlIHRv IHNheSBJJ20gcmVhbGx5IGhhcHB5IHRvCnNlZSB0aGF0IGhhcHBlbiwgZmluYWxseS4gSG9wZWZ1 bGx5IHRoYXQgd2lsbCBoZWxwIHVzIG1ha2UgdGhlIE5BTkQKZnJhbWV3b3JrIGEgYml0IGVhc2ll ciB0byBtYWludGFpbiBhbmQgYWxsb3cgdXMgdG8gc3VwcG9ydCBhZHZhbmNlZApOQU5EIGZlYXR1 cmVzIHdpdGhvdXQgaGF2aW5nIHRvIHBhdGNoIGFsbCBOQU5EIGNvbnRyb2xsZXIgZHJpdmVycyBl dmVyeQp0aW1lIHdlIGFkZCBhIG5ldyB2ZW5kb3Igc3BlY2lmaWMgb3BlcmF0aW9uLiBJIGFsc28g aGF2ZSBpbiBtaW5kIGEgZmV3Ck5BTkQgY29udHJvbGxlciBkcml2ZXJzIHRoYXQgaGF2ZSBiZWVu IHJlamVjdGVkIGJlY2F1c2UgdGhleSB3ZXJlIG5vdApmaXR0aW5nIGluIHRoZSAtPmNtZF9jdHJs KCkgYXBwcm9hY2ggYW5kIEkgZGlkbid0IHdhbnQgdG8gYWRkIG1vcmUKZHJpdmVycyB3aXRoIHRo ZWlyIG93biBwYXJ0aWFsbHkgaW1wbGVtZW50ZWQvYnJva2VuIC0+Y21kZnVuYygpIG1ldGhvZC4K Ckt1ZG9zIGZvciB0aGUgd29yayB5b3UndmUgZG9uZSwgYW5kIEkgaG9wZSB3ZSdsbCBnZXQgcmV2 aWV3cyBmcm9tIG90aGVyCmFjdGl2ZSBOQU5EIGRyaXZlciBtYWludGFpbmVycy9jb250cmlidXRv cnMuIFRvIGFsbCBOQU5EIGRyaXZlcgptYWludGFpbmVyczogbm90ZSB0aGF0IHRoZSBsb25nIHRl cm0gZ29hbCBpcyB0byBnZXQgcmlkIG9mCi0+Y21kX2N0cmwoKS9jbWRmdW5jKCkvcmVhZC93cml0 ZV9idWYvYnl0ZS93b3JkKCkgZW50aXJlbHkgYW5kIHJlcGxhY2UKdGhlbSB3aXRoIGEgc2luZ2xl IC0+ZXhlY19vcCgpIGhvb2suIFBsZWFzZSBsZXQgdXMga25vdyBpZiB5b3UgbmVlZApleHRyYSB0 aGluZ3MgdGhhdCBhcmUgbm90IHlldCBleHBvc2VkIGluIG5hbmRfb3BfaW5zdHIvbmFuZF9vcF9w YXJzZXIKb3IgaWYgeW91IHdvdWxkIGxpa2UgdGhpbmdzIHRvIGJlIGRvbmUgZGlmZmVyZW50bHku CgpUaGFua3MsCgpCb3JpcwoKPiAKPiBUaGUgc2VyaWVzIGNvbnRhaW5zIGFzIHdlbGwgdGhlIHJl d29ya2VkIE5BTkQgY29udHJvbGxlciBkcml2ZXIgZnJvbQo+IE1hcnZlbGwuCj4gCj4gQSBsb3Qg b2YgY29tbWVudHMgYXJlIHdyaXR0ZW4gdG8gZXhwbGFpbiBob3cgdG8gdXNlIHRoZSBuZXcgQVBJ IGFuZCB0aGUKPiBNYXJ2ZWxsIGRyaXZlciBzaG93cyBob3cgdG8gaW1wbGVtZW50IGl0LiBBIHBy b3BlciBleHRlcm5hbAo+IGRvY3VtZW50YXRpb24gaXMgYmVpbmcgd3JpdHRlbiBhbmQgd2lsbCBs YXRlciBiZSBzdWJtaXR0ZWQuCj4gCj4gSXQgYWxzbyBjaGFuZ2VzIHRoZSBkZXZpY2UgdHJlZSBO QU5EIG5vZGUgZGVmaW5pdGlvbiBmb3IgYWxsIHBsYXRmb3Jtcwo+IHJlZmVycmluZyB0byB0aGUg TWFydmVsbCBkcml2ZXIgdG8gdXNlIHRoZSBuZXcgYmluZGluZ3MuIFRoZXkgYXJlIG1vcmUKPiBo aWVyYXJjaGljYWwgYW5kIGZpdCB0aGUgcmVhbCBvcmdhbml6YXRpb24gb2YgdGhlIGhhcmR3YXJl LCBieSBoYXZpbmcKPiBOQU5EIHBhcnRpdGlvbnMgdGhhdCBhcmUgcGFydCBvZiBOQU5EIGNoaXAg bm9kZXMsIHRoZW1zZWx2ZXMgcGFydCBvZgo+IHRoZSBOQU5EIGNvbnRyb2xsZXIgbm9kZS4KPiAK PiBTZWUgdGhlIGNvbW1pdCBsb2cgb2YgIm10ZDogbmFuZDogYWRkIHJld29ya2VkIE1hcnZlbGwg TkFORCBjb250cm9sbGVyCj4gZHJpdmVyIiBmb3IgZGV0YWlscyBhYm91dCB3aHkgYSBjb21wbGV0 ZWx5IG5ldyBkcml2ZXIgaXMgbmVlZGVkLgo+IAo+IEFzIHRoaXMgc2VyaWVzIGNoYW5nZXMgc2V2 ZXJhbCBjb3JlIGZ1bmN0aW9ucyBhbmQgYWxzbyBkaXJlY3RseSB0b3VjaGVzCj4gbXVsdGlwbGUg Y29udHJvbGxlciBkcml2ZXJzLCBpdCB3b3VsZCBiZSBncmVhdCB0byBoYXZlIHJldmlld3MgYW5k IHRlc3RzCj4gZnJvbSB0aGUgY29uY2VybmVkIG1haW50YWluZXJzLiBPbmx5IFBYQTN4eCBTb0Nz IGFyZSBub3Qgc3VwcG9ydGVkIHlldAo+IChleHBsYWluaW5nIHRoZSBSRkMpIGFzIGhhdmluZyBh IGxvY2FsIGJvYXJkIHRvIHRlc3QgaXMgcmVhbGx5IG5lZWRlZC4KPiAKPiBUaGFuayB5b3UsCj4g TWlxdcOobAo+IAo+IAo+IEJvcmlzIEJyZXppbGxvbiAoMik6Cj4gICBtdGQ6IG5hbmQ6IHByb3Zp ZGUgc2V2ZXJhbCBoZWxwZXJzIHRvIGRvIGNvbW1vbiBOQU5EIG9wZXJhdGlvbnMKPiAgIG10ZDog bmFuZDogZm9yY2UgZHJpdmVycyB0byBleHBsaWNpdGx5IHNlbmQgUkVBRC9QUk9HIGNvbW1hbmRz Cj4gCj4gTWlxdWVsIFJheW5hbCAoMTApOgo+ICAgbXRkOiBuYW5kOiB1c2UgYSBzdGF0aWMgZGF0 YV9pbnRlcmZhY2UgaW4gdGhlIG5hbmRfY2hpcCBzdHJ1Y3R1cmUKPiAgIG10ZDogbmFuZDogYWRk IC0+ZXhlY19vcCgpIGltcGxlbWVudGF0aW9uCj4gICBkdC1iaW5kaW5nczogbXRkOiBhZGQgTWFy dmVsbCBOQU5EIGNvbnRyb2xsZXIgZG9jdW1lbnRhdGlvbgo+ICAgbXRkOiBuYW5kOiBhZGQgcmV3 b3JrZWQgTWFydmVsbCBOQU5EIGNvbnRyb2xsZXIgZHJpdmVyCj4gICBBUk06IGR0czogYXJtYWRh LTM3MC14cDogdXNlIHJld29ya2VkIE5BTkQgY29udHJvbGxlciBkcml2ZXIKPiAgIEFSTTogZHRz OiBhcm1hZGEtMzc1OiB1c2UgcmV3b3JrZWQgTkFORCBjb250cm9sbGVyIGRyaXZlcgo+ICAgQVJN OiBkdHM6IGFybWFkYS0zOHg6IHVzZSByZXdvcmtlZCBOQU5EIGNvbnRyb2xsZXIgZHJpdmVyCj4g ICBBUk06IGR0czogYXJtYWRhLTM5eDogdXNlIHJld29ya2VkIE5BTkQgY29udHJvbGxlciBkcml2 ZXIKPiAgIEFSTTogZHRzOiBweGE6IHVzZSByZXdvcmtlZCBOQU5EIGNvbnRyb2xsZXIgZHJpdmVy Cj4gICBBUk02NDogZHRzOiBtYXJ2ZWxsOiB1c2UgcmV3b3JrZWQgTkFORCBjb250cm9sbGVyIGRy aXZlciBvbiBBcm1hZGEKPiAgICAgN0svOEsKPiAKPiAgLi4uL2RldmljZXRyZWUvYmluZGluZ3Mv bXRkL21hcnZlbGwtbmFuZC50eHQgICAgICAgfCAgIDk1ICsKPiAgYXJjaC9hcm0vYm9vdC9kdHMv YXJtYWRhLTM3MC1kYi5kdHMgICAgICAgICAgICAgICAgfCAgIDU2ICstCj4gIGFyY2gvYXJtL2Jv b3QvZHRzL2FybWFkYS0zNzAtZGxpbmstZG5zMzI3bC5kdHMgICAgIHwgIDExOSArLQo+ICBhcmNo L2FybS9ib290L2R0cy9hcm1hZGEtMzcwLW1pcmFib3guZHRzICAgICAgICAgICB8ICAgNTAgKy0K PiAgYXJjaC9hcm0vYm9vdC9kdHMvYXJtYWRhLTM3MC1uZXRnZWFyLXJuMTAyLmR0cyAgICAgfCAg IDg5ICstCj4gIGFyY2gvYXJtL2Jvb3QvZHRzL2FybWFkYS0zNzAtbmV0Z2Vhci1ybjEwNC5kdHMg ICAgIHwgICA4OSArLQo+ICBhcmNoL2FybS9ib290L2R0cy9hcm1hZGEtMzcwLXJkLmR0cyAgICAg ICAgICAgICAgICB8ICAgNTEgKy0KPiAgYXJjaC9hcm0vYm9vdC9kdHMvYXJtYWRhLTM3MC1zZWFn YXRlLW5hcy14YmF5LmR0c2kgfCAgIDYzICstCj4gIGFyY2gvYXJtL2Jvb3QvZHRzL2FybWFkYS0z NzAteHAuZHRzaSAgICAgICAgICAgICAgIHwgICAgNiArLQo+ICBhcmNoL2FybS9ib290L2R0cy9h cm1hZGEtMzc1LWRiLmR0cyAgICAgICAgICAgICAgICB8ICAgNDkgKy0KPiAgYXJjaC9hcm0vYm9v dC9kdHMvYXJtYWRhLTM3NS5kdHNpICAgICAgICAgICAgICAgICAgfCAgICA2ICstCj4gIGFyY2gv YXJtL2Jvb3QvZHRzL2FybWFkYS0zODUtZGItYXAuZHRzICAgICAgICAgICAgIHwgICA2OCArLQo+ ICBhcmNoL2FybS9ib290L2R0cy9hcm1hZGEtMzg1LWxpbmtzeXMtY2FpbWFuLmR0cyAgICB8ICAx MjkgKy0KPiAgYXJjaC9hcm0vYm9vdC9kdHMvYXJtYWRhLTM4NS1saW5rc3lzLWNvYnJhLmR0cyAg ICAgfCAgMTI5ICstCj4gIGFyY2gvYXJtL2Jvb3QvZHRzL2FybWFkYS0zODUtbGlua3N5cy1yYW5n by5kdHMgICAgIHwgIDE0MSArLQo+ICBhcmNoL2FybS9ib290L2R0cy9hcm1hZGEtMzg1LWxpbmtz eXMtc2hlbGJ5LmR0cyAgICB8ICAxMjkgKy0KPiAgYXJjaC9hcm0vYm9vdC9kdHMvYXJtYWRhLTM4 NS1saW5rc3lzLmR0c2kgICAgICAgICAgfCAgIDE1ICstCj4gIGFyY2gvYXJtL2Jvb3QvZHRzL2Fy bWFkYS0zODgtZGIuZHRzICAgICAgICAgICAgICAgIHwgICA1NCArLQo+ICBhcmNoL2FybS9ib290 L2R0cy9hcm1hZGEtMzh4LmR0c2kgICAgICAgICAgICAgICAgICB8ICAgIDYgKy0KPiAgYXJjaC9h cm0vYm9vdC9kdHMvYXJtYWRhLTM5MC1kYi5kdHMgICAgICAgICAgICAgICAgfCAgIDY1ICstCj4g IGFyY2gvYXJtL2Jvb3QvZHRzL2FybWFkYS0zOTUtZ3AuZHRzICAgICAgICAgICAgICAgIHwgICA3 MyArLQo+ICBhcmNoL2FybS9ib290L2R0cy9hcm1hZGEtMzk4LWRiLmR0cyAgICAgICAgICAgICAg ICB8ICAgNTkgKy0KPiAgYXJjaC9hcm0vYm9vdC9kdHMvYXJtYWRhLTM5eC5kdHNpICAgICAgICAg ICAgICAgICAgfCAgICA2ICstCj4gIGFyY2gvYXJtL2Jvb3QvZHRzL2FybWFkYS14cC1kYi1keGJj Mi5kdHMgICAgICAgICAgIHwgICAgMSAtCj4gIGFyY2gvYXJtL2Jvb3QvZHRzL2FybWFkYS14cC1k Yi14YzMtMjRnNHhnLmR0cyAgICAgIHwgICAgMSAtCj4gIGFyY2gvYXJtL2Jvb3QvZHRzL2FybWFk YS14cC1kYi5kdHMgICAgICAgICAgICAgICAgIHwgICAgMSAtCj4gIGFyY2gvYXJtL2Jvb3QvZHRz L2FybWFkYS14cC1ncC5kdHMgICAgICAgICAgICAgICAgIHwgICAgMSAtCj4gIGFyY2gvYXJtL2Jv b3QvZHRzL2FybWFkYS14cC1sZW5vdm8taXg0LTMwMGQuZHRzICAgIHwgICAgMSAtCj4gIGFyY2gv YXJtL2Jvb3QvZHRzL2FybWFkYS14cC1saW5rc3lzLW1hbWJhLmR0cyAgICAgIHwgIDE1NSArLQo+ ICBhcmNoL2FybS9ib290L2R0cy9hcm1hZGEteHAtbmV0Z2Vhci1ybjIxMjAuZHRzICAgICB8ICAg ODkgKy0KPiAgYXJjaC9hcm0vYm9vdC9kdHMvcHhhM3h4LmR0c2kgICAgICAgICAgICAgICAgICAg ICAgfCAgICA2ICstCj4gIGFyY2gvYXJtNjQvYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtNzA0MC1k Yi5kdHMgICAgIHwgICA0NyArLQo+ICAuLi4vYm9vdC9kdHMvbWFydmVsbC9hcm1hZGEtY3AxMTAt bWFzdGVyLmR0c2kgICAgICB8ICAgIDYgKy0KPiAgLi4uL2FybTY0L2Jvb3QvZHRzL21hcnZlbGwv YXJtYWRhLWNwMTEwLXNsYXZlLmR0c2kgfCAgICA2ICstCj4gIGRyaXZlcnMvbXRkL25hbmQvS2Nv bmZpZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMSArCj4gIGRyaXZlcnMvbXRkL25h bmQvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArCj4gIGRyaXZlcnMv bXRkL25hbmQvYXRtZWwvbmFuZC1jb250cm9sbGVyLmMgICAgICAgICAgIHwgICAgOSArLQo+ICBk cml2ZXJzL210ZC9uYW5kL2JmNXh4X25hbmQuYyAgICAgICAgICAgICAgICAgICAgICB8ICAgIDYg Ky0KPiAgZHJpdmVycy9tdGQvbmFuZC9icmNtbmFuZC9icmNtbmFuZC5jICAgICAgICAgICAgICAg fCAgIDIwICstCj4gIGRyaXZlcnMvbXRkL25hbmQvY2FmZV9uYW5kLmMgICAgICAgICAgICAgICAg ICAgICAgIHwgICAyMCArLQo+ICBkcml2ZXJzL210ZC9uYW5kL2RlbmFsaS5jICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAxMDkgKy0KPiAgZHJpdmVycy9tdGQvbmFuZC9kaXNrb25jaGlwLmMg ICAgICAgICAgICAgICAgICAgICAgfCAgICA0ICstCj4gIGRyaXZlcnMvbXRkL25hbmQvZG9jZzQu YyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxOSArLQo+ICBkcml2ZXJzL210ZC9uYW5k L2ZzbF9lbGJjX25hbmQuYyAgICAgICAgICAgICAgICAgICB8ICAgIDYgKy0KPiAgZHJpdmVycy9t dGQvbmFuZC9mc2xfaWZjX25hbmQuYyAgICAgICAgICAgICAgICAgICAgfCAgICA2ICstCj4gIGRy aXZlcnMvbXRkL25hbmQvZnNtY19uYW5kLmMgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNSAr LQo+ICBkcml2ZXJzL210ZC9uYW5kL2dwbWktbmFuZC9ncG1pLW5hbmQuYyAgICAgICAgICAgICB8 ICAgNzYgKy0KPiAgZHJpdmVycy9tdGQvbmFuZC9oaXNpNTA0X25hbmQuYyAgICAgICAgICAgICAg ICAgICAgfCAgICA5ICstCj4gIGRyaXZlcnMvbXRkL25hbmQvano0NzQwX25hbmQuYyAgICAgICAg ICAgICAgICAgICAgIHwgICAxNiArLQo+ICBkcml2ZXJzL210ZC9uYW5kL2xwYzMyeHhfbWxjLmMg ICAgICAgICAgICAgICAgICAgICB8ICAgIDcgKy0KPiAgZHJpdmVycy9tdGQvbmFuZC9scGMzMnh4 X3NsYy5jICAgICAgICAgICAgICAgICAgICAgfCAgIDMzICstCj4gIGRyaXZlcnMvbXRkL25hbmQv bWFydmVsbF9uYW5kLmMgICAgICAgICAgICAgICAgICAgIHwgMjM4NCArKysrKysrKysrKysrKysr KysrKwo+ICBkcml2ZXJzL210ZC9uYW5kL210a19uYW5kLmMgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgMjEgKy0KPiAgZHJpdmVycy9tdGQvbmFuZC9uYW5kX2Jhc2UuYyAgICAgICAgICAgICAg ICAgICAgICAgfCAyMDIwICsrKysrKysrKysrKysrLS0tCj4gIGRyaXZlcnMvbXRkL25hbmQvbmFu ZF9oeW5peC5jICAgICAgICAgICAgICAgICAgICAgIHwgIDEwNiArLQo+ICBkcml2ZXJzL210ZC9u YW5kL25hbmRfbWljcm9uLmMgICAgICAgICAgICAgICAgICAgICB8ICAgNTAgKy0KPiAgZHJpdmVy cy9tdGQvbmFuZC9uYW5kX3RpbWluZ3MuYyAgICAgICAgICAgICAgICAgICAgfCAgIDIzICstCj4g IGRyaXZlcnMvbXRkL25hbmQvb21hcDIuYyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg OCArLQo+ICBkcml2ZXJzL210ZC9uYW5kL3B4YTN4eF9uYW5kLmMgICAgICAgICAgICAgICAgICAg ICB8ICAgIDggKy0KPiAgZHJpdmVycy9tdGQvbmFuZC9xY29tX25hbmRjLmMgICAgICAgICAgICAg ICAgICAgICAgfCAgIDE2ICstCj4gIGRyaXZlcnMvbXRkL25hbmQvcjg1Mi5jICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAxMSArLQo+ICBkcml2ZXJzL210ZC9uYW5kL3NoX2ZsY3RsLmMg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDYgKy0KPiAgZHJpdmVycy9tdGQvbmFuZC9zdW54 aV9uYW5kLmMgICAgICAgICAgICAgICAgICAgICAgfCAgIDk3ICstCj4gIGRyaXZlcnMvbXRkL25h bmQvdGFuZ29fbmFuZC5jICAgICAgICAgICAgICAgICAgICAgIHwgICAyNyArLQo+ICBkcml2ZXJz L210ZC9uYW5kL3RtaW9fbmFuZC5jICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDUgKy0KPiAg ZHJpdmVycy9tdGQvbmFuZC92ZjYxMF9uZmMuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgICA2 ICstCj4gIGRyaXZlcnMvc3RhZ2luZy9tdDI5Zl9zcGluYW5kL210MjlmX3NwaW5hbmQuYyAgICAg IHwgICAgNyArLQo+ICBpbmNsdWRlL2xpbnV4L210ZC9yYXduYW5kLmggICAgICAgICAgICAgICAg ICAgICAgICB8ICAzOTEgKysrLQo+ICA2OCBmaWxlcyBjaGFuZ2VkLCA1OTgwIGluc2VydGlvbnMo KyksIDE0MjQgZGVsZXRpb25zKC0pCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0aW9u L2RldmljZXRyZWUvYmluZGluZ3MvbXRkL21hcnZlbGwtbmFuZC50eHQKPiAgY3JlYXRlIG1vZGUg MTAwNjQ0IGRyaXZlcnMvbXRkL25hbmQvbWFydmVsbF9uYW5kLmMKPiAKCl9fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRldmVsIG1haWxpbmcgbGlzdApkZXZl bEBsaW51eGRyaXZlcnByb2plY3Qub3JnCmh0dHA6Ly9kcml2ZXJkZXYubGludXhkcml2ZXJwcm9q ZWN0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaXZlcmRldi1kZXZlbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Thu, 19 Oct 2017 00:29:22 +0200 From: Boris Brezillon To: Miquel Raynal Cc: Andrew Lunn , bcm-kernel-feedback-list@broadcom.com, Brian Norris , Catalin Marinas , Chen-Yu Tsai , Cyrille Pitchen , Daniel Mack , David Woodhouse , devel@driverdev.osuosl.org, devicetree@vger.kernel.org, Ezequiel Garcia , Greg Kroah-Hartman , Gregory Clement , Han Xu , Haojian Zhuang , Jason Cooper , Josh Wu , Kamal Dasu , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mediatek@lists.infradead.org, linux-mtd@lists.infradead.org, Marc Gonzalez , Marek Vasut , Mark Rutland , Masahiro Yamada , Matthias Brugger , Maxime Ripard , Maxim Levitsky , Richard Weinberger , Robert Jarzmik , Rob Herring , Russell King , Sebastian Hesselbarth , Stefan Agner , Sylvain Lemieux , Vladimir Zapolskiy , Wenyou Yang , Will Deacon , Thomas Petazzoni , Antoine Tenart , Igor Grinberg , Nadav Haklai , Ofer Heifetz , Neta Zur Hershkovits , Hanna Hawa Subject: Re: [RFC 00/12] Marvell NAND controller rework with ->exec_op() Message-ID: <20171019002922.5ab978ed@bbrezillon> In-Reply-To: <20171018143629.29302-1-miquel.raynal@free-electrons.com> References: <20171018143629.29302-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 Miquel, On Wed, 18 Oct 2017 16:36:17 +0200 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 "mtd: nand: add > ->exec_op() implementation", but mostly it will ease later expansion of = =20 > 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 >=20 > The series contains as well the reworked NAND controller driver from > Marvell. >=20 > 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. >=20 > 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. >=20 > See the commit log of "mtd: nand: add reworked Marvell NAND controller > driver" for details about why a completely new driver is needed. >=20 > 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. >=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 (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 >=20 > .../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 >=20 From mboxrd@z Thu Jan 1 00:00:00 1970 From: boris.brezillon@free-electrons.com (Boris Brezillon) Date: Thu, 19 Oct 2017 00:29:22 +0200 Subject: [RFC 00/12] Marvell NAND controller rework with ->exec_op() In-Reply-To: <20171018143629.29302-1-miquel.raynal@free-electrons.com> References: <20171018143629.29302-1-miquel.raynal@free-electrons.com> Message-ID: <20171019002922.5ab978ed@bbrezillon> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org Hi Miquel, On Wed, 18 Oct 2017 16:36:17 +0200 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", 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 >