From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E6C1BC7EE2E for ; Mon, 12 Jun 2023 17:49:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=n15dkfRyk/uMgXaMyEFo73dT95nU0b31oGuFmHEobvw=; b=BGUC48CMTQiesK IxoChUhw4+ZjKmzlkmI0cmYRFsjxFrf0hyJsPnDJUzwVp66ZmivPYklUxPxrrWTTaf7Ra6aokoqgq r3jpSKKkNZTmV1NhT66cX8SgURGTGtLbw0bB7mEy1QNuXzv8inxrau54dfdaLDak8MgQhKQuZH1vn BmlWo/8CRZ+nJ67sqh/6UMyecHg9IU02UHiAj9/Wlnjdz9X3oE1wYpQMbdAgxoUO16LBrW1c9DPm9 cM7BkCIDTvgCOIgHki6iA7Y4XFU5RZAxmNyha8nOTStcxXByvlQ8vADlGNdrRf0b3/hGp+fFfjjP4 Xv9RU+giFr/nG8BAQ36w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1q8lfN-004pmW-0u; Mon, 12 Jun 2023 17:49:21 +0000 Received: from relay3-d.mail.gandi.net ([217.70.183.195]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1q8lfI-004pkq-2C; Mon, 12 Jun 2023 17:49:19 +0000 X-GND-Sasl: miquel.raynal@bootlin.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1686592152; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=4owMCVVu9ULGsD4qC/BEBM3U6FwTwiV0CgschpkiHuI=; b=gQcpSvLvvKcgaewcHclk82yAMx/LoJXOlN2H6we77gD4l5JmvNY0qnh8HcEA6a7esW6XBL yjAoaQlUTP7Covl2iLEcp1AcQLTewDzsxfDXNFElvGuFZRwC7UoAZbZL2Y9PxaLPzMt6L7 cUbXXTxNb4Hx0mFb17HDKOK99DU5YvDJEvV95rQy4H1Rv4dxIvmCRYDY5HvfrBDG5gOYF8 /ZUvqV3LVhRVOKV/kYQ2VtiFzaAPZZK7M2JDhhP65xoOZW2Mr3voDSysahfWjdAON6m5hV rh9937R6zadAJvf1oNAQFt3eqtQ1cTVimR/uTfHU7PA3wb2gapEofw+yfSoHrQ== X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com Received: by mail.gandi.net (Postfix) with ESMTPSA id 4C04460006; Mon, 12 Jun 2023 17:49:10 +0000 (UTC) Date: Mon, 12 Jun 2023 19:49:08 +0200 From: Miquel Raynal To: William Zhang Cc: Broadcom Kernel List , Linux MTD List , f.fainelli@gmail.com, rafal@milecki.pl, kursad.oney@broadcom.com, joel.peshkin@broadcom.com, computersforpeace@gmail.com, anand.gore@broadcom.com, dregan@mail.com, kamal.dasu@broadcom.com, tomer.yacoby@broadcom.com, dan.beygelman@broadcom.com, linux-kernel@vger.kernel.org, Vignesh Raghavendra , Richard Weinberger , Kamal Dasu , linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH 10/12] mtd: rawnand: brcmnand: Add BCMBCA read data bus interface Message-ID: <20230612194908.5465bc56@xps-13> In-Reply-To: <3d3b471b-c555-ee1c-96d6-c04d76979e76@broadcom.com> References: <20230606231252.94838-1-william.zhang@broadcom.com> <20230606231252.94838-11-william.zhang@broadcom.com> <20230607102232.17c4a27b@xps-13> <7b393f47-4053-a8c7-f32e-3881d8130d80@broadcom.com> <20230608081821.1de5a50b@xps-13> <4ab08e3e-3be4-8b8b-6eb8-03a62337f46f@broadcom.com> <20230609103544.0f00f799@xps-13> <3d3b471b-c555-ee1c-96d6-c04d76979e76@broadcom.com> Organization: Bootlin X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230612_104916_991306_97304772 X-CRM114-Status: GOOD ( 52.88 ) X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-mtd" Errors-To: linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org SGkgV2lsbGlhbSwKCndpbGxpYW0uemhhbmdAYnJvYWRjb20uY29tIHdyb3RlIG9uIEZyaSwgOSBK dW4gMjAyMyAxMjoxNjoyNyAtMDcwMDoKCj4gSGkgTWlxdWVsLAo+IAo+IE9uIDA2LzA5LzIwMjMg MDE6MzUgQU0sIE1pcXVlbCBSYXluYWwgd3JvdGU6Cj4gPiBIaSBXaWxsaWFtLAo+ID4gCj4gPiB3 aWxsaWFtLnpoYW5nQGJyb2FkY29tLmNvbSB3cm90ZSBvbiBUaHUsIDggSnVuIDIwMjMgMTI6MTA6 MDYgLTA3MDA6Cj4gPiAgIAo+ID4+IE9uIDA2LzA3LzIwMjMgMTE6MTggUE0sIE1pcXVlbCBSYXlu YWwgd3JvdGU6ICAKPiA+Pj4gSGkgV2lsbGlhbSwKPiA+Pj4KPiA+Pj4gd2lsbGlhbS56aGFuZ0Bi cm9hZGNvbS5jb20gd3JvdGUgb24gV2VkLCA3IEp1biAyMDIzIDEzOjI0OjIzIC0wNzAwOiAgCj4g Pj4+ICAgID4+Pj4gSGkgTWlxdWVsLCAgCj4gPj4+Pgo+ID4+Pj4gT24gMDYvMDcvMjAyMyAwMToy MiBBTSwgTWlxdWVsIFJheW5hbCB3cm90ZTogIAo+ID4+Pj4+IEhpIFdpbGxpYW0sCj4gPj4+Pj4K PiA+Pj4+PiB3aWxsaWFtLnpoYW5nQGJyb2FkY29tLmNvbSB3cm90ZSBvbiBUdWUsICA2IEp1biAy MDIzIDE2OjEyOjUwIC0wNzAwOiAgCj4gPj4+Pj4gICAgID4+Pj4gVGhlIEJDTUJDQSBicm9hZGJh bmQgU29DIGludGVncmF0ZXMgdGhlIE5BTkQgY29udHJvbGxlciBkaWZmZXJlbnRseSB0aGFuICAK PiA+Pj4+Pj4gU1RCLCBpUHJvYyBhbmQgb3RoZXIgU29Dcy4gIEl0IGhhcyBkaWZmZXJlbnQgZW5k aWFubmVzcyBmb3IgTkFORCBjYWNoZQo+ID4+Pj4+PiBkYXRhIGFuZCBPTkZJIHBhcmFtZXRlciBk YXRhLgo+ID4+Pj4+Pgo+ID4+Pj4+PiBBZGQgYSBTb0MgcmVhZCBkYXRhIGJ1cyBzaGltIGZvciBC Q01CQ0EgdG8gbWVldCB0aGUgc3BlY2lmaWMgU29DIG5lZWQKPiA+Pj4+Pj4gYW5kIHBlcmZvcm1h bmNlIGltcHJvdmVtZW50IHVzaW5nIHRoZSBvcHRpbWl6ZWQgbWVtY3B5IGZ1bmN0aW9uIG9uIE5B TkQKPiA+Pj4+Pj4gY2FjaGUgbWVtb3J5Lgo+ID4+Pj4+Pgo+ID4+Pj4+PiBTaWduZWQtb2ZmLWJ5 OiBXaWxsaWFtIFpoYW5nIDx3aWxsaWFtLnpoYW5nQGJyb2FkY29tLmNvbT4KPiA+Pj4+Pj4gLS0t Cj4gPj4+Pj4+Cj4gPj4+Pj4+ICAgICBkcml2ZXJzL210ZC9uYW5kL3Jhdy9icmNtbmFuZC9iY21i Y2FfbmFuZC5jIHwgMzYgKysrKysrKysrKysrKysrKysKPiA+Pj4+Pj4gICAgIGRyaXZlcnMvbXRk L25hbmQvcmF3L2JyY21uYW5kL2JyY21uYW5kLmMgICAgfCA0NCArKysrKysrKysrKysrKy0tLS0t LS0KPiA+Pj4+Pj4gICAgIGRyaXZlcnMvbXRkL25hbmQvcmF3L2JyY21uYW5kL2JyY21uYW5kLmgg ICAgfCAgMiArCj4gPj4+Pj4+ICAgICAzIGZpbGVzIGNoYW5nZWQsIDY4IGluc2VydGlvbnMoKyks IDE0IGRlbGV0aW9ucygtKQo+ID4+Pj4+Pgo+ID4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9t dGQvbmFuZC9yYXcvYnJjbW5hbmQvYmNtYmNhX25hbmQuYyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3 L2JyY21uYW5kL2JjbWJjYV9uYW5kLmMKPiA+Pj4+Pj4gaW5kZXggN2U0OGI2YTBiZmEyLi44OTkx MDNhNjJjOTggMTAwNjQ0Cj4gPj4+Pj4+IC0tLSBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L2JyY21u YW5kL2JjbWJjYV9uYW5kLmMKPiA+Pj4+Pj4gKysrIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvYnJj bW5hbmQvYmNtYmNhX25hbmQuYwo+ID4+Pj4+PiBAQCAtMjYsNiArMjYsMTggQEAgZW51bSB7Cj4g Pj4+Pj4+ICAgICAJQkNNQkNBX0NUTFJEWQkJPSBCSVQoNCksCj4gPj4+Pj4+ICAgICB9OyAgCj4g Pj4+Pj4+ICAgICA+PiArI2lmIGRlZmluZWQoQ09ORklHX0FSTTY0KSAgCj4gPj4+Pj4+ICsjZGVm aW5lIEFMSUdOX1JFUQkJOAo+ID4+Pj4+PiArI2Vsc2UKPiA+Pj4+Pj4gKyNkZWZpbmUgQUxJR05f UkVRCQk0Cj4gPj4+Pj4+ICsjZW5kaWYKPiA+Pj4+Pj4gKwo+ID4+Pj4+PiArc3RhdGljIGlubGlu ZSBib29sIGJjbWJjYV9uYW5kX2lzX2J1Zl9hbGlnbmVkKHZvaWQgKmZsYXNoX2NhY2hlLCAgdm9p ZCAqYnVmZmVyKQo+ID4+Pj4+PiArewo+ID4+Pj4+PiArCXJldHVybiBJU19BTElHTkVEKCh1aW50 cHRyX3QpYnVmZmVyLCBBTElHTl9SRVEpICYmCj4gPj4+Pj4+ICsJCQkJSVNfQUxJR05FRCgodWlu dHB0cl90KWZsYXNoX2NhY2hlLCBBTElHTl9SRVEpOwo+ID4+Pj4+PiArfQo+ID4+Pj4+PiArCj4g Pj4+Pj4+ICAgICBzdGF0aWMgYm9vbCBiY21iY2FfbmFuZF9pbnRjX2FjayhzdHJ1Y3QgYnJjbW5h bmRfc29jICpzb2MpCj4gPj4+Pj4+ICAgICB7Cj4gPj4+Pj4+ICAgICAJc3RydWN0IGJjbWJjYV9u YW5kX3NvYyAqcHJpdiA9Cj4gPj4+Pj4+IEBAIC01Niw2ICs2OCwyOSBAQCBzdGF0aWMgdm9pZCBi Y21iY2FfbmFuZF9pbnRjX3NldChzdHJ1Y3QgYnJjbW5hbmRfc29jICpzb2MsIGJvb2wgZW4pCj4g Pj4+Pj4+ICAgICAJYnJjbW5hbmRfd3JpdGVsKHZhbCwgbW1pbyk7Cj4gPj4+Pj4+ICAgICB9ICAK PiA+Pj4+Pj4gICAgID4+ICtzdGF0aWMgdm9pZCBiY21iY2FfcmVhZF9kYXRhX2J1cyhzdHJ1Y3Qg YnJjbW5hbmRfc29jICpzb2MsICAKPiA+Pj4+Pj4gKwkJCQkgdm9pZCBfX2lvbWVtICpmbGFzaF9j YWNoZSwgIHUzMiAqYnVmZmVyLAo+ID4+Pj4+PiArCQkJCSBpbnQgZmNfd29yZHMsIGJvb2wgaXNf cGFyYW0pCj4gPj4+Pj4+ICt7Cj4gPj4+Pj4+ICsJaW50IGk7Cj4gPj4+Pj4+ICsKPiA+Pj4+Pj4g KwlpZiAoIWlzX3BhcmFtKSB7Cj4gPj4+Pj4+ICsJCS8qCj4gPj4+Pj4+ICsJCSAqIG1lbWNweSBj YW4gZG8gdW5hbGlnbmVkIGFsaWduZWQgYWNjZXNzIGRlcGVuZGluZyBvbiBzb3VyY2UKPiA+Pj4+ Pj4gKwkJICogYW5kIGRlc3QgYWRkcmVzcywgd2hpY2ggaXMgaW5jb21wYXRpYmxlIHdpdGggbmFu ZCBjYWNoZS4gRmFsbGJhY2sKPiA+Pj4+Pj4gKwkJICogdG8gdGhlIG1lbWNweSBmb3IgaW8gdmVy c2lvbgo+ID4+Pj4+PiArCQkgKi8KPiA+Pj4+Pj4gKwkJaWYgKGJjbWJjYV9uYW5kX2lzX2J1Zl9h bGlnbmVkKGZsYXNoX2NhY2hlLCBidWZmZXIpKQo+ID4+Pj4+PiArCQkJbWVtY3B5KCh2b2lkICop YnVmZmVyLCAodm9pZCAqKWZsYXNoX2NhY2hlLCBmY193b3JkcyAqIDQpOwo+ID4+Pj4+PiArCQll bHNlCj4gPj4+Pj4+ICsJCQltZW1jcHlfZnJvbWlvKCh2b2lkICopYnVmZmVyLCAodm9pZCAqKWZs YXNoX2NhY2hlLCBmY193b3JkcyAqIDQpOwo+ID4+Pj4+PiArCX0gZWxzZSB7Cj4gPj4+Pj4+ICsJ CS8qIEZsYXNoIGNhY2hlIGhhcyBzYW1lIGVuZGlhbiBhcyB0aGUgaG9zdCBmb3IgcGFyYW1ldGVy IHBhZ2VzICovCj4gPj4+Pj4+ICsJCWZvciAoaSA9IDA7IGkgPCBmY193b3JkczsgaSsrLCBidWZm ZXIrKykKPiA+Pj4+Pj4gKwkJCSpidWZmZXIgPSBfX3Jhd19yZWFkbChmbGFzaF9jYWNoZSArIGkg KiA0KTsKPiA+Pj4+Pj4gKwl9Cj4gPj4+Pj4+ICt9Cj4gPj4+Pj4+ICsKPiA+Pj4+Pj4gICAgIHN0 YXRpYyBpbnQgYmNtYmNhX25hbmRfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikK PiA+Pj4+Pj4gICAgIHsKPiA+Pj4+Pj4gICAgIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ ZGV2Owo+ID4+Pj4+PiBAQCAtNzUsNiArMTEwLDcgQEAgc3RhdGljIGludCBiY21iY2FfbmFuZF9w cm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KSAgCj4gPj4+Pj4+ICAgICA+PiAgIAlz b2MtPmN0bHJkeV9hY2sgPSBiY21iY2FfbmFuZF9pbnRjX2FjazsgIAo+ID4+Pj4+PiAgICAgCXNv Yy0+Y3RscmR5X3NldF9lbmFibGVkID0gYmNtYmNhX25hbmRfaW50Y19zZXQ7Cj4gPj4+Pj4+ICsJ c29jLT5yZWFkX2RhdGFfYnVzID0gYmNtYmNhX3JlYWRfZGF0YV9idXM7ICAKPiA+Pj4+Pj4gICAg ID4+ICAgCXJldHVybiBicmNtbmFuZF9wcm9iZShwZGV2LCBzb2MpOyAgCj4gPj4+Pj4+ICAgICB9 Cj4gPj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9icmNtbmFuZC9icmNt bmFuZC5jIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvYnJjbW5hbmQvYnJjbW5hbmQuYwo+ID4+Pj4+ PiBpbmRleCBkOTIwZTg4YzdmNWIuLjY1NmJlNGQ3MzAxNiAxMDA2NDQKPiA+Pj4+Pj4gLS0tIGEv ZHJpdmVycy9tdGQvbmFuZC9yYXcvYnJjbW5hbmQvYnJjbW5hbmQuYwo+ID4+Pj4+PiArKysgYi9k cml2ZXJzL210ZC9uYW5kL3Jhdy9icmNtbmFuZC9icmNtbmFuZC5jCj4gPj4+Pj4+IEBAIC04MTQs NiArODE0LDMwIEBAIHN0YXRpYyBpbmxpbmUgdTMyIGVkdV9yZWFkbChzdHJ1Y3QgYnJjbW5hbmRf Y29udHJvbGxlciAqY3RybCwKPiA+Pj4+Pj4gICAgIAlyZXR1cm4gYnJjbW5hbmRfcmVhZGwoY3Ry bC0+ZWR1X2Jhc2UgKyBvZmZzKTsKPiA+Pj4+Pj4gICAgIH0gIAo+ID4+Pj4+PiAgICAgPj4gK3N0 YXRpYyBpbmxpbmUgdm9pZCBicmNtbmFuZF9yZWFkX2RhdGFfYnVzKHN0cnVjdCBicmNtbmFuZF9j b250cm9sbGVyICpjdHJsLCAgCj4gPj4+Pj4+ICsJCQkJCSAgIHZvaWQgX19pb21lbSAqZmxhc2hf Y2FjaGUsIHUzMiAqYnVmZmVyLAo+ID4+Pj4+PiArCQkJCQkgICBpbnQgZmNfd29yZHMsIGJvb2wg aXNfcGFyYW0pCj4gPj4+Pj4+ICt7Cj4gPj4+Pj4+ICsJc3RydWN0IGJyY21uYW5kX3NvYyAqc29j ID0gY3RybC0+c29jOwo+ID4+Pj4+PiArCWludCBpOwo+ID4+Pj4+PiArCj4gPj4+Pj4+ICsJaWYg KHNvYy0+cmVhZF9kYXRhX2J1cykgewo+ID4+Pj4+PiArCQlzb2MtPnJlYWRfZGF0YV9idXMoc29j LCBmbGFzaF9jYWNoZSwgYnVmZmVyLCBmY193b3JkcywgaXNfcGFyYW0pOwo+ID4+Pj4+PiArCX0g ZWxzZSB7Cj4gPj4+Pj4+ICsJCWlmICghaXNfcGFyYW0pIHsKPiA+Pj4+Pj4gKwkJCWZvciAoaSA9 IDA7IGkgPCBmY193b3JkczsgaSsrLCBidWZmZXIrKykKPiA+Pj4+Pj4gKwkJCQkqYnVmZmVyID0g YnJjbW5hbmRfcmVhZF9mYyhjdHJsLCBpKTsKPiA+Pj4+Pj4gKwkJfSBlbHNlIHsKPiA+Pj4+Pj4g KwkJCWZvciAoaSA9IDA7IGkgPCBmY193b3JkczsgaSsrKQo+ID4+Pj4+PiArCQkJCS8qCj4gPj4+ Pj4+ICsJCQkJICogRmxhc2ggY2FjaGUgaXMgYmlnIGVuZGlhbiBmb3IgcGFyYW1ldGVyIHBhZ2Vz LCBhdAo+ID4+Pj4+PiArCQkJCSAqIGxlYXN0IG9uIFNUQiBTb0NzCj4gPj4+Pj4+ICsJCQkJICov Cj4gPj4+Pj4+ICsJCQkJYnVmZmVyW2ldID0gYmUzMl90b19jcHUoYnJjbW5hbmRfcmVhZF9mYyhj dHJsLCBpKSk7Cj4gPj4+Pj4+ICsJCX0KPiA+Pj4+Pj4gKwl9ICAKPiA+Pj4+Pgo+ID4+Pj4+IFBl cmhhcHMgd2UgY291bGQgaGF2ZSBhIHNpbmdsZSBmdW5jdGlvbiB0aGF0IGlzIHN0YXRpY2FsbHkg YXNzaWduZWQgYXQKPiA+Pj4+PiBwcm9iZSB0aW1lIGluc3RlYWQgb2YgYSBmaXJzdCBoZWxwZXIg d2l0aCB0d28gY29uZGl0aW9ucyB3aGljaCBjYWxscyBpbgo+ID4+Pj4+IG9uZSBjYXNlIGFub3Ro ZXIgaG9vay4uLiBUaGlzIGNhbiBiZSBzaW1wbGlmaWVkIEkgZ3Vlc3MuICAKPiA+Pj4+PiAgICAg Pj4gV2VsbCB0aGlzIHdpbGwgbmVlZCB0byBiZSBkb25lIGF0IHRoZSBTb0Mgc3BlY2lmaWMgaW1w bGVtZW50YXRpb24gbGV2ZWwgKGJjbTx4eHg+X25hbmQuYykgYW5kIGVhY2ggU29DIHdpbGwgbmVl ZCB0byBoYXZlIGVpdGhlciBnZW5lcmFsIGRhdGEgYnVzIHJlYWQgZnVuYyB3aXRoIGlzX3BhcmFt IG9wdGlvbiBvciBkYXRhX2J1c19yZWFkX3BhZ2UsIGRhdGFfYnVzX3JlYWRfcGFyYW0uICAKPiA+ Pj4KPiA+Pj4gWW91IHRvbGQgbWUgaW4gY2FzZSB3ZSB3b3VsZCB1c2UgZXhlY19vcCB3ZSBjb3Vs ZCBhdm9pZCB0aGUgcGFyYW0KPiA+Pj4gY2FjaGUuIElmIHRoYXQncyB0cnVlIHRoZW4gdGhlIHdo b2xlIHN1cHBvcnQgY2FuIGJlIHNpbXBsaWZpZWQuICAKPiA+Pj4gICAgPj4gQ29ycmVjdCB3ZSBt YXkgcG9zc2libHkgdW5pZmllZCB0aGUgcGFyYW1ldGVyIGRhdGEgcmVhZCBidXQgZXhlY19vcCBp cyBsb25nIHNob3QgYW5kIHdlIGFyZSBub3QgZnVsbHkgcmVhZHkgZm9yIHRoYXQgeWV0LiBJdCBh bHNvIGRlcGVuZHMgb24gaWYgdGhlIGxvdyBsZXZlbCBkYXRhIHJlZ2lzdGVyIGhhcyBlbmRpYW5l c3MgZGlmZmVyZW5jZSBmb3IgdGhlIHBhcmFtZXRlciBkYXRhIGJldHdlZW4gZGlmZmVyZW5jZSBT b0NzLiAgCj4gPj4KPiA+PiBTbyBJIHdvdWxkIGxpa2UgdG8gcHVzaCB0aGUgY3VycmVudCBpbXBs ZW1lbnRhdGlvbiBhbmQgd2UgY2FuIGV4cGxvcmUgdGhlIGV4ZWNfb3Agb3B0aW9uIGxhdGUgd2hp Y2ggd2lsbCBiZSBhIG11Y2ggYmlnIGFuZCBjb21wbGV0ZSBkaWZmZXJlbnQgaW1wbGVtZW50YXRp b24uICAKPiA+IAo+ID4gSSBhbSBzb3JyeSBidXQgdGhpcyBzZXJpZXMgaXMgdG90YWxseSBiYWNr d2FyZHMsIHlvdSdyZSB0cnlpbmcgdG8gZ3Vlc3MKPiA+IHdoYXQgY29tZXMgbmV4dCB3aXRoIHRo ZSAnaXNfcGFyYW0nIHRoaW5nLCBpdCdzIGV4YWN0bHkgd2hhdCB3ZSBhcmUKPiA+IGZpZ2h0aW5n IGFnYWluc3Qgc2luY2UgMjAxNy4gVGhlcmUgYXJlIHBsZW50eSBvZiAtPmV4ZWNfb3AoKQo+ID4g Y29udmVyc2lvbnMgb3V0IHRoZXJlLCBJIGRvbid0IGJlbGlldmUgdGhpcyBvbmUgd2lsbCBiZSBo YXJkZXIuIFlvdQo+ID4gbmVlZCB0byBjb252ZXJ0IHRoZSBkcml2ZXIgdG8gdGhpcyBuZXcgQVBJ IGFuZCBnZXQgcmlkIG9mIHRoaXMgd2hvbGUKPiA+IGVuZGlhbm5lc3Mgbm9uLXNlbnNlIHRvIHNp bXBsaWZ5IGEgbG90IHRoZSBkcml2ZXIuCj4gPiAgIAo+IEkgYW0gbm90IGd1ZXNzaW5nIGFueXRo aW5nIGJ1dCBqdXN0IGZhY3RvciBvdXQgdGhlIGV4aXN0aW5nIGNvbW1vbiBuYW5kIGNhY2hlIHJl YWQgbG9naWMgaW50byB0aGUgc2luZ2xlIGRlZmF1bHQgZnVuY3Rpb24ob3Igb25lIGZvciBwYWdl IHJlYWQgYW5kIGFub3RoZXIgZm9yIHBhcmFtZXRlciByZWFkIGFzIEkgbWVudGlvbmVkIGluIGFu b3RoZXIgdGhyZWFkKSBhbmQgYWxsb3cgU29DIHRvIG92ZXJyaWRlcyB0aGUgaW1wbGVtZW50YXRp b24gd2hlbiBuZWVkZWQuCgpObywgeW91IGFyZSB0cnlpbmcgdG8gZ3Vlc3Mgd2hhdCB0eXBlIG9m IHJlYWQgdGhlIGNvcmUgaXMgcGVyZm9ybWluZywKZWl0aGVyIGEgcmVndWxhciBkYXRhIHBhZ2Ug cmVhZCBvciBhIHBhcmFtZXRlciBwYWdlIHJlYWQuCgo+IEkgYWdyZWUgLT5leGVjX29wIGNhbiBw b3NzaWJseSBnZXQgcmlkIG9mIHRoZSBwYXJhbWV0ZXIgcGFnZSByZWFkIGZ1bmN0aW9uIGFuZCBp cyB0aGUgd2F5IHRvIGdvLiBCdXQgaXQgd29uJ3QgaGVscCBvbiB0aGUgcGFnZSByZWFkIGZvciBl bmRpYW5lc3MuCgpZb3UgdG9sZCBtZSB0aGVyZSBpcyBubyBlbmRpYW5lc3MgaXNzdWUgd2l0aCB0 aGUgZGF0YSBwYWdlcywgc28gd2h5IGl0Cndvbid0IGhlbHAgb24gdGhlIHBhZ2UgcmVhZD8KCj4g SXQncyBub3QgdGhhdCBJIGFtIGFnYWluc3QgZXhlY19vcCBidXQgSSB3YW50IHRvIHRha2Ugb25l IHN0ZXAgYSB0aW1lCj4gYW5kIEknZCBsaWtlIHRvIGdldCB0aGVzZSBmaXhlcwoKSSBkb24ndCBz ZWUgYW55IGZpeCBoZXJlPyBMZXQgbWUga25vdyBpZiBJIGFtIG1pc3Npbmcgc29tZXRoaW5nIGJ1 dApyaWdodCBub3cgSSBzZWUgYSBuZXcgdmVyc2lvbiBvZiB0aGUgY29udHJvbGxlciBiZWluZyBz dXBwb3J0ZWQgd2l0aAppdHMgb3duIGNvbnN0cmFpbnRzLiBJZiB5b3UgYXJlIGZpeGluZyBleGlz dGluZyBjb2RlIGZvciBhbHJlYWR5CnN1cHBvcnRlZCBwbGF0Zm9ybSwgdGhlbiBtYWtlIGl0IGNs ZWFyIGFuZCB3ZSBjYW4gZGlzY3VzcyB0aGlzLiBCdXQgaWYKeW91IGp1c3Qgd2FudCB0byBzdXBw b3J0IHRoZSBiY21iY2EgZmxhdm9yLCB0aGVuIHRoZXJlIGlzIG5vIHJpc2sKbWl0aWdhdGlvbiBp bnZvbHZlZCBoZXJlLCBhbmQgYSBjb252ZXJzaW9uIGlzIHRoZSByaWdodCBzdGVwIDopCgo+IGFu ZCBzdXBwb3J0IGZvciBiY21iY2Egc29jIGZpcnN0IGFuZAo+IHRoZW4gd29yayBvbiB0aGUgZXhl Y19vcCBBUEkgdG8gbWluaW1pemUgdGhlIGNoYW5nZSBhbmQgcmVkdWNlIHRoZQo+IHJpc2suCj4g Cj4gPj4gIAo+ID4+Pj4gICAgTm90IHN1cmUgaG93IG11Y2ggdGhpcyBjYW4gYmUgc2ltcGxpZmll ZC4uLiBPciB3ZSBoYXZlIGRlZmF1bHQKPiA+Pj4+IGltcGxlbWVudGF0aW9uIGluIGJyY21uYW5k LmMgYnV0IHRoZW4gdGhlcmUgaXMgb25lIGNvbmRpdGlvbiBjaGVjawo+ID4+Pj4gdG9vLiBQYWdl IHJlYWQgaXMgZG9uZSBhdCA1MTIgYnl0ZXMgYnVyc3QuIE9uZSBvciB0d28gY29uZGl0aW9ucwo+ ID4+Pj4gY2hlY2sgb3V0c2lkZSBvZiB0aGUgcGVyIDUxMiBieXRlcyByZWFkIGxvb3AgZG9lcyBu b3Qgc291bmRzIHRvbyBiYWQKPiA+Pj4+IGlmIHBlcmZvcm1hbmNlIGlzIGNvbmNlcm4uICAKPiA+ Pj4KPiA+Pj4gSXQgaXMgdW5yZWFkYWJsZS4gVGhhdCBpcyBteSBtYWluIGNvbmNlcm4uICAKPiA+ Pj4gICAgPj4+PiAgID4+Pj4+PiArfSAgCj4gPj4+Pj4+ICsKPiA+Pj4+Pj4gICAgIHN0YXRpYyB2 b2lkIGJyY21uYW5kX2NsZWFyX2VjY19hZGRyKHN0cnVjdCBicmNtbmFuZF9jb250cm9sbGVyICpj dHJsKQo+ID4+Pj4+PiAgICAgeyAgCj4gPj4+Pj4+ICAgICA+PiBAQCAtMTgxMSwyMCArMTgzNSwx MSBAQCBzdGF0aWMgdm9pZCBicmNtbmFuZF9jbWRmdW5jKHN0cnVjdCBuYW5kX2NoaXAgKmNoaXAs IHVuc2lnbmVkIGNvbW1hbmQsICAKPiA+Pj4+Pj4gICAgIAkJCW5hdGl2ZV9jbWQgPT0gQ01EX1BB UkFNRVRFUl9DSEFOR0VfQ09MKSB7Cj4gPj4+Pj4+ICAgICAJCS8qIENvcHkgZmxhc2ggY2FjaGUg d29yZC13aXNlICovCj4gPj4+Pj4+ICAgICAJCXUzMiAqZmxhc2hfY2FjaGUgPSAodTMyICopY3Ry bC0+Zmxhc2hfY2FjaGU7Cj4gPj4+Pj4+IC0JCWludCBpOyAgCj4gPj4+Pj4+ICAgICA+PiAgIAkJ YnJjbW5hbmRfc29jX2RhdGFfYnVzX3ByZXBhcmUoY3RybC0+c29jLCB0cnVlKTsKPiA+Pj4+Pj4g ICAgID4+IC0JCS8qICAKPiA+Pj4+Pj4gLQkJICogTXVzdCBjYWNoZSB0aGUgRkxBU0hfQ0FDSEUg bm93LCBzaW5jZSBjaGFuZ2VzIGluCj4gPj4+Pj4+IC0JCSAqIFNFQ1RPUl9TSVpFXzFLIG1heSBp bnZhbGlkYXRlIGl0Cj4gPj4+Pj4+IC0JCSAqLwo+ID4+Pj4+PiAtCQlmb3IgKGkgPSAwOyBpIDwg RkNfV09SRFM7IGkrKykKPiA+Pj4+Pj4gLQkJCS8qCj4gPj4+Pj4+IC0JCQkgKiBGbGFzaCBjYWNo ZSBpcyBiaWcgZW5kaWFuIGZvciBwYXJhbWV0ZXIgcGFnZXMsIGF0Cj4gPj4+Pj4+IC0JCQkgKiBs ZWFzdCBvbiBTVEIgU29Dcwo+ID4+Pj4+PiAtCQkJICovCj4gPj4+Pj4+IC0JCQlmbGFzaF9jYWNo ZVtpXSA9IGJlMzJfdG9fY3B1KGJyY21uYW5kX3JlYWRfZmMoY3RybCwgaSkpOwo+ID4+Pj4+PiAr CQlicmNtbmFuZF9yZWFkX2RhdGFfYnVzKGN0cmwsIGN0cmwtPm5hbmRfZmMsIGZsYXNoX2NhY2hl LAo+ID4+Pj4+PiArCQkJCSAgIEZDX1dPUkRTLCB0cnVlKTsgIAo+ID4+Pj4+PiAgICAgPj4gICAJ CWJyY21uYW5kX3NvY19kYXRhX2J1c191bnByZXBhcmUoY3RybC0+c29jLCB0cnVlKTsKPiA+Pj4+ Pj4gICAgID4+IEBAIC0yMTM3LDcgKzIxNTIsNyBAQCBzdGF0aWMgaW50IGJyY21uYW5kX3JlYWRf YnlfcGlvKHN0cnVjdCBtdGRfaW5mbyAqbXRkLCBzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwLCAgCj4g Pj4+Pj4+ICAgICB7Cj4gPj4+Pj4+ICAgICAJc3RydWN0IGJyY21uYW5kX2hvc3QgKmhvc3QgPSBu YW5kX2dldF9jb250cm9sbGVyX2RhdGEoY2hpcCk7Cj4gPj4+Pj4+ICAgICAJc3RydWN0IGJyY21u YW5kX2NvbnRyb2xsZXIgKmN0cmwgPSBob3N0LT5jdHJsOwo+ID4+Pj4+PiAtCWludCBpLCBqLCBy ZXQgPSAwOwo+ID4+Pj4+PiArCWludCBpLCByZXQgPSAwOyAgCj4gPj4+Pj4+ICAgICA+PiAgIAli cmNtbmFuZF9jbGVhcl9lY2NfYWRkcihjdHJsKTsKPiA+Pj4+Pj4gICAgID4+IEBAIC0yMTUwLDgg KzIxNjUsOSBAQCBzdGF0aWMgaW50IGJyY21uYW5kX3JlYWRfYnlfcGlvKHN0cnVjdCBtdGRfaW5m byAqbXRkLCBzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwLCAgCj4gPj4+Pj4+ICAgICAJCWlmIChsaWtl bHkoYnVmKSkgewo+ID4+Pj4+PiAgICAgCQkJYnJjbW5hbmRfc29jX2RhdGFfYnVzX3ByZXBhcmUo Y3RybC0+c29jLCBmYWxzZSk7ICAKPiA+Pj4+Pj4gICAgID4+IC0JCQlmb3IgKGogPSAwOyBqIDwg RkNfV09SRFM7IGorKywgYnVmKyspICAKPiA+Pj4+Pj4gLQkJCQkqYnVmID0gYnJjbW5hbmRfcmVh ZF9mYyhjdHJsLCBqKTsKPiA+Pj4+Pj4gKwkJCWJyY21uYW5kX3JlYWRfZGF0YV9idXMoY3RybCwg Y3RybC0+bmFuZF9mYywgYnVmLAo+ID4+Pj4+PiArCQkJCQlGQ19XT1JEUywgZmFsc2UpOwo+ID4+ Pj4+PiArCQkJYnVmICs9IEZDX1dPUkRTOyAgCj4gPj4+Pj4+ICAgICA+PiAgIAkJCWJyY21uYW5k X3NvY19kYXRhX2J1c191bnByZXBhcmUoY3RybC0+c29jLCBmYWxzZSk7ICAKPiA+Pj4+Pj4gICAg IAkJfQo+ID4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvYnJjbW5hbmQv YnJjbW5hbmQuaCBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L2JyY21uYW5kL2JyY21uYW5kLmgKPiA+ Pj4+Pj4gaW5kZXggZjFmOTNkODVmNTBkLi44ODgxOWJjMzk1ZjggMTAwNjQ0Cj4gPj4+Pj4+IC0t LSBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L2JyY21uYW5kL2JyY21uYW5kLmgKPiA+Pj4+Pj4gKysr IGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvYnJjbW5hbmQvYnJjbW5hbmQuaAo+ID4+Pj4+PiBAQCAt MjQsNiArMjQsOCBAQCBzdHJ1Y3QgYnJjbW5hbmRfc29jIHsKPiA+Pj4+Pj4gICAgIAl2b2lkICgq Y3RscmR5X3NldF9lbmFibGVkKShzdHJ1Y3QgYnJjbW5hbmRfc29jICpzb2MsIGJvb2wgZW4pOwo+ ID4+Pj4+PiAgICAgCXZvaWQgKCpwcmVwYXJlX2RhdGFfYnVzKShzdHJ1Y3QgYnJjbW5hbmRfc29j ICpzb2MsIGJvb2wgcHJlcGFyZSwKPiA+Pj4+Pj4gICAgIAkJCQkgYm9vbCBpc19wYXJhbSk7Cj4g Pj4+Pj4+ICsJdm9pZCAoKnJlYWRfZGF0YV9idXMpKHN0cnVjdCBicmNtbmFuZF9zb2MgKnNvYywg dm9pZCBfX2lvbWVtICpmbGFzaF9jYWNoZSwKPiA+Pj4+Pj4gKwkJCQkgdTMyICpidWZmZXIsIGlu dCBmY193b3JkcywgYm9vbCBpc19wYXJhbSk7Cj4gPj4+Pj4+ICAgICAJY29uc3Qgc3RydWN0IGJy Y21uYW5kX2lvX29wcyAqb3BzOwo+ID4+Pj4+PiAgICAgfTsgIAo+ID4+Pj4+PiAgICAgPiA+ICAK PiA+Pj4+PiBUaGFua3MsCj4gPj4+Pj4gTWlxdcOobCAgCj4gPj4+Pj4gICAgID4gPiAgCj4gPj4+ IFRoYW5rcywKPiA+Pj4gTWlxdcOobCAgCj4gPj4+ICAgID4gPiAgIAo+ID4gVGhhbmtzLAo+ID4g TWlxdcOobAo+ID4gICAKCgpUaGFua3MsCk1pcXXDqGwKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eCBNVEQgZGlzY3Vzc2lvbiBtYWls aW5nIGxpc3QKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51 eC1tdGQvCg== From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 4DBD0C7EE2E for ; Mon, 12 Jun 2023 17:49:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=ZZ08wy9xoHt6W5KRsUnTPxcue4HBltKiSBmdYnaZtHc=; b=tWb04vckSKBfT8 ABxVwzeNM2j6KoYa30In7u08Gf9xp+GUaqgnwgPoMELDTYFGpd0iIIaHDRNCpeWQWyizp18+wTrgt S0DIRyPMrL9+9b4qus3VYBZagl3+v+VhlKu4oCjAEwQHqYV+GKeA82DxlXnaDxiGzBPh+sds9JRVN XzbQF1gJ4TUFbQhjAvkObiugr6631PjjhRt0SD8BRl6BtzTz92JjDiAzP/lxCufcmnQ44ZgR7Uud3 9OtWRHGxXmVOQzHacdp7+g0aIKDox+XiPTaJ1QkMEeioYFY0MLWxvSter7hwT4zkTh2IqYS5jQco4 eajRdW9hb7kpG6a9Nm/A==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1q8lfM-004pmK-2K; Mon, 12 Jun 2023 17:49:20 +0000 Received: from relay3-d.mail.gandi.net ([217.70.183.195]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1q8lfI-004pkq-2C; Mon, 12 Jun 2023 17:49:19 +0000 X-GND-Sasl: miquel.raynal@bootlin.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1686592152; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=4owMCVVu9ULGsD4qC/BEBM3U6FwTwiV0CgschpkiHuI=; b=gQcpSvLvvKcgaewcHclk82yAMx/LoJXOlN2H6we77gD4l5JmvNY0qnh8HcEA6a7esW6XBL yjAoaQlUTP7Covl2iLEcp1AcQLTewDzsxfDXNFElvGuFZRwC7UoAZbZL2Y9PxaLPzMt6L7 cUbXXTxNb4Hx0mFb17HDKOK99DU5YvDJEvV95rQy4H1Rv4dxIvmCRYDY5HvfrBDG5gOYF8 /ZUvqV3LVhRVOKV/kYQ2VtiFzaAPZZK7M2JDhhP65xoOZW2Mr3voDSysahfWjdAON6m5hV rh9937R6zadAJvf1oNAQFt3eqtQ1cTVimR/uTfHU7PA3wb2gapEofw+yfSoHrQ== X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com Received: by mail.gandi.net (Postfix) with ESMTPSA id 4C04460006; Mon, 12 Jun 2023 17:49:10 +0000 (UTC) Date: Mon, 12 Jun 2023 19:49:08 +0200 From: Miquel Raynal To: William Zhang Cc: Broadcom Kernel List , Linux MTD List , f.fainelli@gmail.com, rafal@milecki.pl, kursad.oney@broadcom.com, joel.peshkin@broadcom.com, computersforpeace@gmail.com, anand.gore@broadcom.com, dregan@mail.com, kamal.dasu@broadcom.com, tomer.yacoby@broadcom.com, dan.beygelman@broadcom.com, linux-kernel@vger.kernel.org, Vignesh Raghavendra , Richard Weinberger , Kamal Dasu , linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH 10/12] mtd: rawnand: brcmnand: Add BCMBCA read data bus interface Message-ID: <20230612194908.5465bc56@xps-13> In-Reply-To: <3d3b471b-c555-ee1c-96d6-c04d76979e76@broadcom.com> References: <20230606231252.94838-1-william.zhang@broadcom.com> <20230606231252.94838-11-william.zhang@broadcom.com> <20230607102232.17c4a27b@xps-13> <7b393f47-4053-a8c7-f32e-3881d8130d80@broadcom.com> <20230608081821.1de5a50b@xps-13> <4ab08e3e-3be4-8b8b-6eb8-03a62337f46f@broadcom.com> <20230609103544.0f00f799@xps-13> <3d3b471b-c555-ee1c-96d6-c04d76979e76@broadcom.com> Organization: Bootlin X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230612_104916_991306_97304772 X-CRM114-Status: GOOD ( 52.88 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org SGkgV2lsbGlhbSwKCndpbGxpYW0uemhhbmdAYnJvYWRjb20uY29tIHdyb3RlIG9uIEZyaSwgOSBK dW4gMjAyMyAxMjoxNjoyNyAtMDcwMDoKCj4gSGkgTWlxdWVsLAo+IAo+IE9uIDA2LzA5LzIwMjMg MDE6MzUgQU0sIE1pcXVlbCBSYXluYWwgd3JvdGU6Cj4gPiBIaSBXaWxsaWFtLAo+ID4gCj4gPiB3 aWxsaWFtLnpoYW5nQGJyb2FkY29tLmNvbSB3cm90ZSBvbiBUaHUsIDggSnVuIDIwMjMgMTI6MTA6 MDYgLTA3MDA6Cj4gPiAgIAo+ID4+IE9uIDA2LzA3LzIwMjMgMTE6MTggUE0sIE1pcXVlbCBSYXlu YWwgd3JvdGU6ICAKPiA+Pj4gSGkgV2lsbGlhbSwKPiA+Pj4KPiA+Pj4gd2lsbGlhbS56aGFuZ0Bi cm9hZGNvbS5jb20gd3JvdGUgb24gV2VkLCA3IEp1biAyMDIzIDEzOjI0OjIzIC0wNzAwOiAgCj4g Pj4+ICAgID4+Pj4gSGkgTWlxdWVsLCAgCj4gPj4+Pgo+ID4+Pj4gT24gMDYvMDcvMjAyMyAwMToy MiBBTSwgTWlxdWVsIFJheW5hbCB3cm90ZTogIAo+ID4+Pj4+IEhpIFdpbGxpYW0sCj4gPj4+Pj4K PiA+Pj4+PiB3aWxsaWFtLnpoYW5nQGJyb2FkY29tLmNvbSB3cm90ZSBvbiBUdWUsICA2IEp1biAy MDIzIDE2OjEyOjUwIC0wNzAwOiAgCj4gPj4+Pj4gICAgID4+Pj4gVGhlIEJDTUJDQSBicm9hZGJh bmQgU29DIGludGVncmF0ZXMgdGhlIE5BTkQgY29udHJvbGxlciBkaWZmZXJlbnRseSB0aGFuICAK PiA+Pj4+Pj4gU1RCLCBpUHJvYyBhbmQgb3RoZXIgU29Dcy4gIEl0IGhhcyBkaWZmZXJlbnQgZW5k aWFubmVzcyBmb3IgTkFORCBjYWNoZQo+ID4+Pj4+PiBkYXRhIGFuZCBPTkZJIHBhcmFtZXRlciBk YXRhLgo+ID4+Pj4+Pgo+ID4+Pj4+PiBBZGQgYSBTb0MgcmVhZCBkYXRhIGJ1cyBzaGltIGZvciBC Q01CQ0EgdG8gbWVldCB0aGUgc3BlY2lmaWMgU29DIG5lZWQKPiA+Pj4+Pj4gYW5kIHBlcmZvcm1h bmNlIGltcHJvdmVtZW50IHVzaW5nIHRoZSBvcHRpbWl6ZWQgbWVtY3B5IGZ1bmN0aW9uIG9uIE5B TkQKPiA+Pj4+Pj4gY2FjaGUgbWVtb3J5Lgo+ID4+Pj4+Pgo+ID4+Pj4+PiBTaWduZWQtb2ZmLWJ5 OiBXaWxsaWFtIFpoYW5nIDx3aWxsaWFtLnpoYW5nQGJyb2FkY29tLmNvbT4KPiA+Pj4+Pj4gLS0t Cj4gPj4+Pj4+Cj4gPj4+Pj4+ICAgICBkcml2ZXJzL210ZC9uYW5kL3Jhdy9icmNtbmFuZC9iY21i Y2FfbmFuZC5jIHwgMzYgKysrKysrKysrKysrKysrKysKPiA+Pj4+Pj4gICAgIGRyaXZlcnMvbXRk L25hbmQvcmF3L2JyY21uYW5kL2JyY21uYW5kLmMgICAgfCA0NCArKysrKysrKysrKysrKy0tLS0t LS0KPiA+Pj4+Pj4gICAgIGRyaXZlcnMvbXRkL25hbmQvcmF3L2JyY21uYW5kL2JyY21uYW5kLmgg ICAgfCAgMiArCj4gPj4+Pj4+ICAgICAzIGZpbGVzIGNoYW5nZWQsIDY4IGluc2VydGlvbnMoKyks IDE0IGRlbGV0aW9ucygtKQo+ID4+Pj4+Pgo+ID4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9t dGQvbmFuZC9yYXcvYnJjbW5hbmQvYmNtYmNhX25hbmQuYyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3 L2JyY21uYW5kL2JjbWJjYV9uYW5kLmMKPiA+Pj4+Pj4gaW5kZXggN2U0OGI2YTBiZmEyLi44OTkx MDNhNjJjOTggMTAwNjQ0Cj4gPj4+Pj4+IC0tLSBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L2JyY21u YW5kL2JjbWJjYV9uYW5kLmMKPiA+Pj4+Pj4gKysrIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvYnJj bW5hbmQvYmNtYmNhX25hbmQuYwo+ID4+Pj4+PiBAQCAtMjYsNiArMjYsMTggQEAgZW51bSB7Cj4g Pj4+Pj4+ICAgICAJQkNNQkNBX0NUTFJEWQkJPSBCSVQoNCksCj4gPj4+Pj4+ICAgICB9OyAgCj4g Pj4+Pj4+ICAgICA+PiArI2lmIGRlZmluZWQoQ09ORklHX0FSTTY0KSAgCj4gPj4+Pj4+ICsjZGVm aW5lIEFMSUdOX1JFUQkJOAo+ID4+Pj4+PiArI2Vsc2UKPiA+Pj4+Pj4gKyNkZWZpbmUgQUxJR05f UkVRCQk0Cj4gPj4+Pj4+ICsjZW5kaWYKPiA+Pj4+Pj4gKwo+ID4+Pj4+PiArc3RhdGljIGlubGlu ZSBib29sIGJjbWJjYV9uYW5kX2lzX2J1Zl9hbGlnbmVkKHZvaWQgKmZsYXNoX2NhY2hlLCAgdm9p ZCAqYnVmZmVyKQo+ID4+Pj4+PiArewo+ID4+Pj4+PiArCXJldHVybiBJU19BTElHTkVEKCh1aW50 cHRyX3QpYnVmZmVyLCBBTElHTl9SRVEpICYmCj4gPj4+Pj4+ICsJCQkJSVNfQUxJR05FRCgodWlu dHB0cl90KWZsYXNoX2NhY2hlLCBBTElHTl9SRVEpOwo+ID4+Pj4+PiArfQo+ID4+Pj4+PiArCj4g Pj4+Pj4+ICAgICBzdGF0aWMgYm9vbCBiY21iY2FfbmFuZF9pbnRjX2FjayhzdHJ1Y3QgYnJjbW5h bmRfc29jICpzb2MpCj4gPj4+Pj4+ICAgICB7Cj4gPj4+Pj4+ICAgICAJc3RydWN0IGJjbWJjYV9u YW5kX3NvYyAqcHJpdiA9Cj4gPj4+Pj4+IEBAIC01Niw2ICs2OCwyOSBAQCBzdGF0aWMgdm9pZCBi Y21iY2FfbmFuZF9pbnRjX3NldChzdHJ1Y3QgYnJjbW5hbmRfc29jICpzb2MsIGJvb2wgZW4pCj4g Pj4+Pj4+ICAgICAJYnJjbW5hbmRfd3JpdGVsKHZhbCwgbW1pbyk7Cj4gPj4+Pj4+ICAgICB9ICAK PiA+Pj4+Pj4gICAgID4+ICtzdGF0aWMgdm9pZCBiY21iY2FfcmVhZF9kYXRhX2J1cyhzdHJ1Y3Qg YnJjbW5hbmRfc29jICpzb2MsICAKPiA+Pj4+Pj4gKwkJCQkgdm9pZCBfX2lvbWVtICpmbGFzaF9j YWNoZSwgIHUzMiAqYnVmZmVyLAo+ID4+Pj4+PiArCQkJCSBpbnQgZmNfd29yZHMsIGJvb2wgaXNf cGFyYW0pCj4gPj4+Pj4+ICt7Cj4gPj4+Pj4+ICsJaW50IGk7Cj4gPj4+Pj4+ICsKPiA+Pj4+Pj4g KwlpZiAoIWlzX3BhcmFtKSB7Cj4gPj4+Pj4+ICsJCS8qCj4gPj4+Pj4+ICsJCSAqIG1lbWNweSBj YW4gZG8gdW5hbGlnbmVkIGFsaWduZWQgYWNjZXNzIGRlcGVuZGluZyBvbiBzb3VyY2UKPiA+Pj4+ Pj4gKwkJICogYW5kIGRlc3QgYWRkcmVzcywgd2hpY2ggaXMgaW5jb21wYXRpYmxlIHdpdGggbmFu ZCBjYWNoZS4gRmFsbGJhY2sKPiA+Pj4+Pj4gKwkJICogdG8gdGhlIG1lbWNweSBmb3IgaW8gdmVy c2lvbgo+ID4+Pj4+PiArCQkgKi8KPiA+Pj4+Pj4gKwkJaWYgKGJjbWJjYV9uYW5kX2lzX2J1Zl9h bGlnbmVkKGZsYXNoX2NhY2hlLCBidWZmZXIpKQo+ID4+Pj4+PiArCQkJbWVtY3B5KCh2b2lkICop YnVmZmVyLCAodm9pZCAqKWZsYXNoX2NhY2hlLCBmY193b3JkcyAqIDQpOwo+ID4+Pj4+PiArCQll bHNlCj4gPj4+Pj4+ICsJCQltZW1jcHlfZnJvbWlvKCh2b2lkICopYnVmZmVyLCAodm9pZCAqKWZs YXNoX2NhY2hlLCBmY193b3JkcyAqIDQpOwo+ID4+Pj4+PiArCX0gZWxzZSB7Cj4gPj4+Pj4+ICsJ CS8qIEZsYXNoIGNhY2hlIGhhcyBzYW1lIGVuZGlhbiBhcyB0aGUgaG9zdCBmb3IgcGFyYW1ldGVy IHBhZ2VzICovCj4gPj4+Pj4+ICsJCWZvciAoaSA9IDA7IGkgPCBmY193b3JkczsgaSsrLCBidWZm ZXIrKykKPiA+Pj4+Pj4gKwkJCSpidWZmZXIgPSBfX3Jhd19yZWFkbChmbGFzaF9jYWNoZSArIGkg KiA0KTsKPiA+Pj4+Pj4gKwl9Cj4gPj4+Pj4+ICt9Cj4gPj4+Pj4+ICsKPiA+Pj4+Pj4gICAgIHN0 YXRpYyBpbnQgYmNtYmNhX25hbmRfcHJvYmUoc3RydWN0IHBsYXRmb3JtX2RldmljZSAqcGRldikK PiA+Pj4+Pj4gICAgIHsKPiA+Pj4+Pj4gICAgIAlzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmcGRldi0+ ZGV2Owo+ID4+Pj4+PiBAQCAtNzUsNiArMTEwLDcgQEAgc3RhdGljIGludCBiY21iY2FfbmFuZF9w cm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KSAgCj4gPj4+Pj4+ICAgICA+PiAgIAlz b2MtPmN0bHJkeV9hY2sgPSBiY21iY2FfbmFuZF9pbnRjX2FjazsgIAo+ID4+Pj4+PiAgICAgCXNv Yy0+Y3RscmR5X3NldF9lbmFibGVkID0gYmNtYmNhX25hbmRfaW50Y19zZXQ7Cj4gPj4+Pj4+ICsJ c29jLT5yZWFkX2RhdGFfYnVzID0gYmNtYmNhX3JlYWRfZGF0YV9idXM7ICAKPiA+Pj4+Pj4gICAg ID4+ICAgCXJldHVybiBicmNtbmFuZF9wcm9iZShwZGV2LCBzb2MpOyAgCj4gPj4+Pj4+ICAgICB9 Cj4gPj4+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9icmNtbmFuZC9icmNt bmFuZC5jIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvYnJjbW5hbmQvYnJjbW5hbmQuYwo+ID4+Pj4+ PiBpbmRleCBkOTIwZTg4YzdmNWIuLjY1NmJlNGQ3MzAxNiAxMDA2NDQKPiA+Pj4+Pj4gLS0tIGEv ZHJpdmVycy9tdGQvbmFuZC9yYXcvYnJjbW5hbmQvYnJjbW5hbmQuYwo+ID4+Pj4+PiArKysgYi9k cml2ZXJzL210ZC9uYW5kL3Jhdy9icmNtbmFuZC9icmNtbmFuZC5jCj4gPj4+Pj4+IEBAIC04MTQs NiArODE0LDMwIEBAIHN0YXRpYyBpbmxpbmUgdTMyIGVkdV9yZWFkbChzdHJ1Y3QgYnJjbW5hbmRf Y29udHJvbGxlciAqY3RybCwKPiA+Pj4+Pj4gICAgIAlyZXR1cm4gYnJjbW5hbmRfcmVhZGwoY3Ry bC0+ZWR1X2Jhc2UgKyBvZmZzKTsKPiA+Pj4+Pj4gICAgIH0gIAo+ID4+Pj4+PiAgICAgPj4gK3N0 YXRpYyBpbmxpbmUgdm9pZCBicmNtbmFuZF9yZWFkX2RhdGFfYnVzKHN0cnVjdCBicmNtbmFuZF9j b250cm9sbGVyICpjdHJsLCAgCj4gPj4+Pj4+ICsJCQkJCSAgIHZvaWQgX19pb21lbSAqZmxhc2hf Y2FjaGUsIHUzMiAqYnVmZmVyLAo+ID4+Pj4+PiArCQkJCQkgICBpbnQgZmNfd29yZHMsIGJvb2wg aXNfcGFyYW0pCj4gPj4+Pj4+ICt7Cj4gPj4+Pj4+ICsJc3RydWN0IGJyY21uYW5kX3NvYyAqc29j ID0gY3RybC0+c29jOwo+ID4+Pj4+PiArCWludCBpOwo+ID4+Pj4+PiArCj4gPj4+Pj4+ICsJaWYg KHNvYy0+cmVhZF9kYXRhX2J1cykgewo+ID4+Pj4+PiArCQlzb2MtPnJlYWRfZGF0YV9idXMoc29j LCBmbGFzaF9jYWNoZSwgYnVmZmVyLCBmY193b3JkcywgaXNfcGFyYW0pOwo+ID4+Pj4+PiArCX0g ZWxzZSB7Cj4gPj4+Pj4+ICsJCWlmICghaXNfcGFyYW0pIHsKPiA+Pj4+Pj4gKwkJCWZvciAoaSA9 IDA7IGkgPCBmY193b3JkczsgaSsrLCBidWZmZXIrKykKPiA+Pj4+Pj4gKwkJCQkqYnVmZmVyID0g YnJjbW5hbmRfcmVhZF9mYyhjdHJsLCBpKTsKPiA+Pj4+Pj4gKwkJfSBlbHNlIHsKPiA+Pj4+Pj4g KwkJCWZvciAoaSA9IDA7IGkgPCBmY193b3JkczsgaSsrKQo+ID4+Pj4+PiArCQkJCS8qCj4gPj4+ Pj4+ICsJCQkJICogRmxhc2ggY2FjaGUgaXMgYmlnIGVuZGlhbiBmb3IgcGFyYW1ldGVyIHBhZ2Vz LCBhdAo+ID4+Pj4+PiArCQkJCSAqIGxlYXN0IG9uIFNUQiBTb0NzCj4gPj4+Pj4+ICsJCQkJICov Cj4gPj4+Pj4+ICsJCQkJYnVmZmVyW2ldID0gYmUzMl90b19jcHUoYnJjbW5hbmRfcmVhZF9mYyhj dHJsLCBpKSk7Cj4gPj4+Pj4+ICsJCX0KPiA+Pj4+Pj4gKwl9ICAKPiA+Pj4+Pgo+ID4+Pj4+IFBl cmhhcHMgd2UgY291bGQgaGF2ZSBhIHNpbmdsZSBmdW5jdGlvbiB0aGF0IGlzIHN0YXRpY2FsbHkg YXNzaWduZWQgYXQKPiA+Pj4+PiBwcm9iZSB0aW1lIGluc3RlYWQgb2YgYSBmaXJzdCBoZWxwZXIg d2l0aCB0d28gY29uZGl0aW9ucyB3aGljaCBjYWxscyBpbgo+ID4+Pj4+IG9uZSBjYXNlIGFub3Ro ZXIgaG9vay4uLiBUaGlzIGNhbiBiZSBzaW1wbGlmaWVkIEkgZ3Vlc3MuICAKPiA+Pj4+PiAgICAg Pj4gV2VsbCB0aGlzIHdpbGwgbmVlZCB0byBiZSBkb25lIGF0IHRoZSBTb0Mgc3BlY2lmaWMgaW1w bGVtZW50YXRpb24gbGV2ZWwgKGJjbTx4eHg+X25hbmQuYykgYW5kIGVhY2ggU29DIHdpbGwgbmVl ZCB0byBoYXZlIGVpdGhlciBnZW5lcmFsIGRhdGEgYnVzIHJlYWQgZnVuYyB3aXRoIGlzX3BhcmFt IG9wdGlvbiBvciBkYXRhX2J1c19yZWFkX3BhZ2UsIGRhdGFfYnVzX3JlYWRfcGFyYW0uICAKPiA+ Pj4KPiA+Pj4gWW91IHRvbGQgbWUgaW4gY2FzZSB3ZSB3b3VsZCB1c2UgZXhlY19vcCB3ZSBjb3Vs ZCBhdm9pZCB0aGUgcGFyYW0KPiA+Pj4gY2FjaGUuIElmIHRoYXQncyB0cnVlIHRoZW4gdGhlIHdo b2xlIHN1cHBvcnQgY2FuIGJlIHNpbXBsaWZpZWQuICAKPiA+Pj4gICAgPj4gQ29ycmVjdCB3ZSBt YXkgcG9zc2libHkgdW5pZmllZCB0aGUgcGFyYW1ldGVyIGRhdGEgcmVhZCBidXQgZXhlY19vcCBp cyBsb25nIHNob3QgYW5kIHdlIGFyZSBub3QgZnVsbHkgcmVhZHkgZm9yIHRoYXQgeWV0LiBJdCBh bHNvIGRlcGVuZHMgb24gaWYgdGhlIGxvdyBsZXZlbCBkYXRhIHJlZ2lzdGVyIGhhcyBlbmRpYW5l c3MgZGlmZmVyZW5jZSBmb3IgdGhlIHBhcmFtZXRlciBkYXRhIGJldHdlZW4gZGlmZmVyZW5jZSBT b0NzLiAgCj4gPj4KPiA+PiBTbyBJIHdvdWxkIGxpa2UgdG8gcHVzaCB0aGUgY3VycmVudCBpbXBs ZW1lbnRhdGlvbiBhbmQgd2UgY2FuIGV4cGxvcmUgdGhlIGV4ZWNfb3Agb3B0aW9uIGxhdGUgd2hp Y2ggd2lsbCBiZSBhIG11Y2ggYmlnIGFuZCBjb21wbGV0ZSBkaWZmZXJlbnQgaW1wbGVtZW50YXRp b24uICAKPiA+IAo+ID4gSSBhbSBzb3JyeSBidXQgdGhpcyBzZXJpZXMgaXMgdG90YWxseSBiYWNr d2FyZHMsIHlvdSdyZSB0cnlpbmcgdG8gZ3Vlc3MKPiA+IHdoYXQgY29tZXMgbmV4dCB3aXRoIHRo ZSAnaXNfcGFyYW0nIHRoaW5nLCBpdCdzIGV4YWN0bHkgd2hhdCB3ZSBhcmUKPiA+IGZpZ2h0aW5n IGFnYWluc3Qgc2luY2UgMjAxNy4gVGhlcmUgYXJlIHBsZW50eSBvZiAtPmV4ZWNfb3AoKQo+ID4g Y29udmVyc2lvbnMgb3V0IHRoZXJlLCBJIGRvbid0IGJlbGlldmUgdGhpcyBvbmUgd2lsbCBiZSBo YXJkZXIuIFlvdQo+ID4gbmVlZCB0byBjb252ZXJ0IHRoZSBkcml2ZXIgdG8gdGhpcyBuZXcgQVBJ IGFuZCBnZXQgcmlkIG9mIHRoaXMgd2hvbGUKPiA+IGVuZGlhbm5lc3Mgbm9uLXNlbnNlIHRvIHNp bXBsaWZ5IGEgbG90IHRoZSBkcml2ZXIuCj4gPiAgIAo+IEkgYW0gbm90IGd1ZXNzaW5nIGFueXRo aW5nIGJ1dCBqdXN0IGZhY3RvciBvdXQgdGhlIGV4aXN0aW5nIGNvbW1vbiBuYW5kIGNhY2hlIHJl YWQgbG9naWMgaW50byB0aGUgc2luZ2xlIGRlZmF1bHQgZnVuY3Rpb24ob3Igb25lIGZvciBwYWdl IHJlYWQgYW5kIGFub3RoZXIgZm9yIHBhcmFtZXRlciByZWFkIGFzIEkgbWVudGlvbmVkIGluIGFu b3RoZXIgdGhyZWFkKSBhbmQgYWxsb3cgU29DIHRvIG92ZXJyaWRlcyB0aGUgaW1wbGVtZW50YXRp b24gd2hlbiBuZWVkZWQuCgpObywgeW91IGFyZSB0cnlpbmcgdG8gZ3Vlc3Mgd2hhdCB0eXBlIG9m IHJlYWQgdGhlIGNvcmUgaXMgcGVyZm9ybWluZywKZWl0aGVyIGEgcmVndWxhciBkYXRhIHBhZ2Ug cmVhZCBvciBhIHBhcmFtZXRlciBwYWdlIHJlYWQuCgo+IEkgYWdyZWUgLT5leGVjX29wIGNhbiBw b3NzaWJseSBnZXQgcmlkIG9mIHRoZSBwYXJhbWV0ZXIgcGFnZSByZWFkIGZ1bmN0aW9uIGFuZCBp cyB0aGUgd2F5IHRvIGdvLiBCdXQgaXQgd29uJ3QgaGVscCBvbiB0aGUgcGFnZSByZWFkIGZvciBl bmRpYW5lc3MuCgpZb3UgdG9sZCBtZSB0aGVyZSBpcyBubyBlbmRpYW5lc3MgaXNzdWUgd2l0aCB0 aGUgZGF0YSBwYWdlcywgc28gd2h5IGl0Cndvbid0IGhlbHAgb24gdGhlIHBhZ2UgcmVhZD8KCj4g SXQncyBub3QgdGhhdCBJIGFtIGFnYWluc3QgZXhlY19vcCBidXQgSSB3YW50IHRvIHRha2Ugb25l IHN0ZXAgYSB0aW1lCj4gYW5kIEknZCBsaWtlIHRvIGdldCB0aGVzZSBmaXhlcwoKSSBkb24ndCBz ZWUgYW55IGZpeCBoZXJlPyBMZXQgbWUga25vdyBpZiBJIGFtIG1pc3Npbmcgc29tZXRoaW5nIGJ1 dApyaWdodCBub3cgSSBzZWUgYSBuZXcgdmVyc2lvbiBvZiB0aGUgY29udHJvbGxlciBiZWluZyBz dXBwb3J0ZWQgd2l0aAppdHMgb3duIGNvbnN0cmFpbnRzLiBJZiB5b3UgYXJlIGZpeGluZyBleGlz dGluZyBjb2RlIGZvciBhbHJlYWR5CnN1cHBvcnRlZCBwbGF0Zm9ybSwgdGhlbiBtYWtlIGl0IGNs ZWFyIGFuZCB3ZSBjYW4gZGlzY3VzcyB0aGlzLiBCdXQgaWYKeW91IGp1c3Qgd2FudCB0byBzdXBw b3J0IHRoZSBiY21iY2EgZmxhdm9yLCB0aGVuIHRoZXJlIGlzIG5vIHJpc2sKbWl0aWdhdGlvbiBp bnZvbHZlZCBoZXJlLCBhbmQgYSBjb252ZXJzaW9uIGlzIHRoZSByaWdodCBzdGVwIDopCgo+IGFu ZCBzdXBwb3J0IGZvciBiY21iY2Egc29jIGZpcnN0IGFuZAo+IHRoZW4gd29yayBvbiB0aGUgZXhl Y19vcCBBUEkgdG8gbWluaW1pemUgdGhlIGNoYW5nZSBhbmQgcmVkdWNlIHRoZQo+IHJpc2suCj4g Cj4gPj4gIAo+ID4+Pj4gICAgTm90IHN1cmUgaG93IG11Y2ggdGhpcyBjYW4gYmUgc2ltcGxpZmll ZC4uLiBPciB3ZSBoYXZlIGRlZmF1bHQKPiA+Pj4+IGltcGxlbWVudGF0aW9uIGluIGJyY21uYW5k LmMgYnV0IHRoZW4gdGhlcmUgaXMgb25lIGNvbmRpdGlvbiBjaGVjawo+ID4+Pj4gdG9vLiBQYWdl IHJlYWQgaXMgZG9uZSBhdCA1MTIgYnl0ZXMgYnVyc3QuIE9uZSBvciB0d28gY29uZGl0aW9ucwo+ ID4+Pj4gY2hlY2sgb3V0c2lkZSBvZiB0aGUgcGVyIDUxMiBieXRlcyByZWFkIGxvb3AgZG9lcyBu b3Qgc291bmRzIHRvbyBiYWQKPiA+Pj4+IGlmIHBlcmZvcm1hbmNlIGlzIGNvbmNlcm4uICAKPiA+ Pj4KPiA+Pj4gSXQgaXMgdW5yZWFkYWJsZS4gVGhhdCBpcyBteSBtYWluIGNvbmNlcm4uICAKPiA+ Pj4gICAgPj4+PiAgID4+Pj4+PiArfSAgCj4gPj4+Pj4+ICsKPiA+Pj4+Pj4gICAgIHN0YXRpYyB2 b2lkIGJyY21uYW5kX2NsZWFyX2VjY19hZGRyKHN0cnVjdCBicmNtbmFuZF9jb250cm9sbGVyICpj dHJsKQo+ID4+Pj4+PiAgICAgeyAgCj4gPj4+Pj4+ICAgICA+PiBAQCAtMTgxMSwyMCArMTgzNSwx MSBAQCBzdGF0aWMgdm9pZCBicmNtbmFuZF9jbWRmdW5jKHN0cnVjdCBuYW5kX2NoaXAgKmNoaXAs IHVuc2lnbmVkIGNvbW1hbmQsICAKPiA+Pj4+Pj4gICAgIAkJCW5hdGl2ZV9jbWQgPT0gQ01EX1BB UkFNRVRFUl9DSEFOR0VfQ09MKSB7Cj4gPj4+Pj4+ICAgICAJCS8qIENvcHkgZmxhc2ggY2FjaGUg d29yZC13aXNlICovCj4gPj4+Pj4+ICAgICAJCXUzMiAqZmxhc2hfY2FjaGUgPSAodTMyICopY3Ry bC0+Zmxhc2hfY2FjaGU7Cj4gPj4+Pj4+IC0JCWludCBpOyAgCj4gPj4+Pj4+ICAgICA+PiAgIAkJ YnJjbW5hbmRfc29jX2RhdGFfYnVzX3ByZXBhcmUoY3RybC0+c29jLCB0cnVlKTsKPiA+Pj4+Pj4g ICAgID4+IC0JCS8qICAKPiA+Pj4+Pj4gLQkJICogTXVzdCBjYWNoZSB0aGUgRkxBU0hfQ0FDSEUg bm93LCBzaW5jZSBjaGFuZ2VzIGluCj4gPj4+Pj4+IC0JCSAqIFNFQ1RPUl9TSVpFXzFLIG1heSBp bnZhbGlkYXRlIGl0Cj4gPj4+Pj4+IC0JCSAqLwo+ID4+Pj4+PiAtCQlmb3IgKGkgPSAwOyBpIDwg RkNfV09SRFM7IGkrKykKPiA+Pj4+Pj4gLQkJCS8qCj4gPj4+Pj4+IC0JCQkgKiBGbGFzaCBjYWNo ZSBpcyBiaWcgZW5kaWFuIGZvciBwYXJhbWV0ZXIgcGFnZXMsIGF0Cj4gPj4+Pj4+IC0JCQkgKiBs ZWFzdCBvbiBTVEIgU29Dcwo+ID4+Pj4+PiAtCQkJICovCj4gPj4+Pj4+IC0JCQlmbGFzaF9jYWNo ZVtpXSA9IGJlMzJfdG9fY3B1KGJyY21uYW5kX3JlYWRfZmMoY3RybCwgaSkpOwo+ID4+Pj4+PiAr CQlicmNtbmFuZF9yZWFkX2RhdGFfYnVzKGN0cmwsIGN0cmwtPm5hbmRfZmMsIGZsYXNoX2NhY2hl LAo+ID4+Pj4+PiArCQkJCSAgIEZDX1dPUkRTLCB0cnVlKTsgIAo+ID4+Pj4+PiAgICAgPj4gICAJ CWJyY21uYW5kX3NvY19kYXRhX2J1c191bnByZXBhcmUoY3RybC0+c29jLCB0cnVlKTsKPiA+Pj4+ Pj4gICAgID4+IEBAIC0yMTM3LDcgKzIxNTIsNyBAQCBzdGF0aWMgaW50IGJyY21uYW5kX3JlYWRf YnlfcGlvKHN0cnVjdCBtdGRfaW5mbyAqbXRkLCBzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwLCAgCj4g Pj4+Pj4+ICAgICB7Cj4gPj4+Pj4+ICAgICAJc3RydWN0IGJyY21uYW5kX2hvc3QgKmhvc3QgPSBu YW5kX2dldF9jb250cm9sbGVyX2RhdGEoY2hpcCk7Cj4gPj4+Pj4+ICAgICAJc3RydWN0IGJyY21u YW5kX2NvbnRyb2xsZXIgKmN0cmwgPSBob3N0LT5jdHJsOwo+ID4+Pj4+PiAtCWludCBpLCBqLCBy ZXQgPSAwOwo+ID4+Pj4+PiArCWludCBpLCByZXQgPSAwOyAgCj4gPj4+Pj4+ICAgICA+PiAgIAli cmNtbmFuZF9jbGVhcl9lY2NfYWRkcihjdHJsKTsKPiA+Pj4+Pj4gICAgID4+IEBAIC0yMTUwLDgg KzIxNjUsOSBAQCBzdGF0aWMgaW50IGJyY21uYW5kX3JlYWRfYnlfcGlvKHN0cnVjdCBtdGRfaW5m byAqbXRkLCBzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwLCAgCj4gPj4+Pj4+ICAgICAJCWlmIChsaWtl bHkoYnVmKSkgewo+ID4+Pj4+PiAgICAgCQkJYnJjbW5hbmRfc29jX2RhdGFfYnVzX3ByZXBhcmUo Y3RybC0+c29jLCBmYWxzZSk7ICAKPiA+Pj4+Pj4gICAgID4+IC0JCQlmb3IgKGogPSAwOyBqIDwg RkNfV09SRFM7IGorKywgYnVmKyspICAKPiA+Pj4+Pj4gLQkJCQkqYnVmID0gYnJjbW5hbmRfcmVh ZF9mYyhjdHJsLCBqKTsKPiA+Pj4+Pj4gKwkJCWJyY21uYW5kX3JlYWRfZGF0YV9idXMoY3RybCwg Y3RybC0+bmFuZF9mYywgYnVmLAo+ID4+Pj4+PiArCQkJCQlGQ19XT1JEUywgZmFsc2UpOwo+ID4+ Pj4+PiArCQkJYnVmICs9IEZDX1dPUkRTOyAgCj4gPj4+Pj4+ICAgICA+PiAgIAkJCWJyY21uYW5k X3NvY19kYXRhX2J1c191bnByZXBhcmUoY3RybC0+c29jLCBmYWxzZSk7ICAKPiA+Pj4+Pj4gICAg IAkJfQo+ID4+Pj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvYnJjbW5hbmQv YnJjbW5hbmQuaCBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L2JyY21uYW5kL2JyY21uYW5kLmgKPiA+ Pj4+Pj4gaW5kZXggZjFmOTNkODVmNTBkLi44ODgxOWJjMzk1ZjggMTAwNjQ0Cj4gPj4+Pj4+IC0t LSBhL2RyaXZlcnMvbXRkL25hbmQvcmF3L2JyY21uYW5kL2JyY21uYW5kLmgKPiA+Pj4+Pj4gKysr IGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvYnJjbW5hbmQvYnJjbW5hbmQuaAo+ID4+Pj4+PiBAQCAt MjQsNiArMjQsOCBAQCBzdHJ1Y3QgYnJjbW5hbmRfc29jIHsKPiA+Pj4+Pj4gICAgIAl2b2lkICgq Y3RscmR5X3NldF9lbmFibGVkKShzdHJ1Y3QgYnJjbW5hbmRfc29jICpzb2MsIGJvb2wgZW4pOwo+ ID4+Pj4+PiAgICAgCXZvaWQgKCpwcmVwYXJlX2RhdGFfYnVzKShzdHJ1Y3QgYnJjbW5hbmRfc29j ICpzb2MsIGJvb2wgcHJlcGFyZSwKPiA+Pj4+Pj4gICAgIAkJCQkgYm9vbCBpc19wYXJhbSk7Cj4g Pj4+Pj4+ICsJdm9pZCAoKnJlYWRfZGF0YV9idXMpKHN0cnVjdCBicmNtbmFuZF9zb2MgKnNvYywg dm9pZCBfX2lvbWVtICpmbGFzaF9jYWNoZSwKPiA+Pj4+Pj4gKwkJCQkgdTMyICpidWZmZXIsIGlu dCBmY193b3JkcywgYm9vbCBpc19wYXJhbSk7Cj4gPj4+Pj4+ICAgICAJY29uc3Qgc3RydWN0IGJy Y21uYW5kX2lvX29wcyAqb3BzOwo+ID4+Pj4+PiAgICAgfTsgIAo+ID4+Pj4+PiAgICAgPiA+ICAK PiA+Pj4+PiBUaGFua3MsCj4gPj4+Pj4gTWlxdcOobCAgCj4gPj4+Pj4gICAgID4gPiAgCj4gPj4+ IFRoYW5rcywKPiA+Pj4gTWlxdcOobCAgCj4gPj4+ICAgID4gPiAgIAo+ID4gVGhhbmtzLAo+ID4g TWlxdcOobAo+ID4gICAKCgpUaGFua3MsCk1pcXXDqGwKCl9fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0Cmxp bnV4LWFybS1rZXJuZWxAbGlzdHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFk Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LWFybS1rZXJuZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 0DC23C7EE2E for ; Mon, 12 Jun 2023 17:49:19 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235593AbjFLRtR (ORCPT ); Mon, 12 Jun 2023 13:49:17 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:53252 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234475AbjFLRtQ (ORCPT ); Mon, 12 Jun 2023 13:49:16 -0400 Received: from relay3-d.mail.gandi.net (relay3-d.mail.gandi.net [217.70.183.195]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0116C98 for ; Mon, 12 Jun 2023 10:49:13 -0700 (PDT) X-GND-Sasl: miquel.raynal@bootlin.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1686592152; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=4owMCVVu9ULGsD4qC/BEBM3U6FwTwiV0CgschpkiHuI=; b=gQcpSvLvvKcgaewcHclk82yAMx/LoJXOlN2H6we77gD4l5JmvNY0qnh8HcEA6a7esW6XBL yjAoaQlUTP7Covl2iLEcp1AcQLTewDzsxfDXNFElvGuFZRwC7UoAZbZL2Y9PxaLPzMt6L7 cUbXXTxNb4Hx0mFb17HDKOK99DU5YvDJEvV95rQy4H1Rv4dxIvmCRYDY5HvfrBDG5gOYF8 /ZUvqV3LVhRVOKV/kYQ2VtiFzaAPZZK7M2JDhhP65xoOZW2Mr3voDSysahfWjdAON6m5hV rh9937R6zadAJvf1oNAQFt3eqtQ1cTVimR/uTfHU7PA3wb2gapEofw+yfSoHrQ== X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com X-GND-Sasl: miquel.raynal@bootlin.com Received: by mail.gandi.net (Postfix) with ESMTPSA id 4C04460006; Mon, 12 Jun 2023 17:49:10 +0000 (UTC) Date: Mon, 12 Jun 2023 19:49:08 +0200 From: Miquel Raynal To: William Zhang Cc: Broadcom Kernel List , Linux MTD List , f.fainelli@gmail.com, rafal@milecki.pl, kursad.oney@broadcom.com, joel.peshkin@broadcom.com, computersforpeace@gmail.com, anand.gore@broadcom.com, dregan@mail.com, kamal.dasu@broadcom.com, tomer.yacoby@broadcom.com, dan.beygelman@broadcom.com, linux-kernel@vger.kernel.org, Vignesh Raghavendra , Richard Weinberger , Kamal Dasu , linux-arm-kernel@lists.infradead.org Subject: Re: [PATCH 10/12] mtd: rawnand: brcmnand: Add BCMBCA read data bus interface Message-ID: <20230612194908.5465bc56@xps-13> In-Reply-To: <3d3b471b-c555-ee1c-96d6-c04d76979e76@broadcom.com> References: <20230606231252.94838-1-william.zhang@broadcom.com> <20230606231252.94838-11-william.zhang@broadcom.com> <20230607102232.17c4a27b@xps-13> <7b393f47-4053-a8c7-f32e-3881d8130d80@broadcom.com> <20230608081821.1de5a50b@xps-13> <4ab08e3e-3be4-8b8b-6eb8-03a62337f46f@broadcom.com> <20230609103544.0f00f799@xps-13> <3d3b471b-c555-ee1c-96d6-c04d76979e76@broadcom.com> Organization: Bootlin X-Mailer: Claws Mail 4.0.0 (GTK+ 3.24.33; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi William, william.zhang@broadcom.com wrote on Fri, 9 Jun 2023 12:16:27 -0700: > Hi Miquel, >=20 > On 06/09/2023 01:35 AM, Miquel Raynal wrote: > > Hi William, > >=20 > > william.zhang@broadcom.com wrote on Thu, 8 Jun 2023 12:10:06 -0700: > > =20 > >> On 06/07/2023 11:18 PM, Miquel Raynal wrote: =20 > >>> Hi William, > >>> > >>> william.zhang@broadcom.com wrote on Wed, 7 Jun 2023 13:24:23 -0700: = =20 > >>> >>>> Hi Miquel, =20 > >>>> > >>>> On 06/07/2023 01:22 AM, Miquel Raynal wrote: =20 > >>>>> Hi William, > >>>>> > >>>>> william.zhang@broadcom.com wrote on Tue, 6 Jun 2023 16:12:50 -0700= : =20 > >>>>> >>>> The BCMBCA broadband SoC integrates the NAND controller di= fferently than =20 > >>>>>> STB, iProc and other SoCs. It has different endianness for NAND c= ache > >>>>>> data and ONFI parameter data. > >>>>>> > >>>>>> Add a SoC read data bus shim for BCMBCA to meet the specific SoC n= eed > >>>>>> and performance improvement using the optimized memcpy function on= NAND > >>>>>> cache memory. > >>>>>> > >>>>>> Signed-off-by: William Zhang > >>>>>> --- > >>>>>> > >>>>>> drivers/mtd/nand/raw/brcmnand/bcmbca_nand.c | 36 +++++++++++++= ++++ > >>>>>> drivers/mtd/nand/raw/brcmnand/brcmnand.c | 44 +++++++++++++= +------- > >>>>>> drivers/mtd/nand/raw/brcmnand/brcmnand.h | 2 + > >>>>>> 3 files changed, 68 insertions(+), 14 deletions(-) > >>>>>> > >>>>>> diff --git a/drivers/mtd/nand/raw/brcmnand/bcmbca_nand.c b/drivers= /mtd/nand/raw/brcmnand/bcmbca_nand.c > >>>>>> index 7e48b6a0bfa2..899103a62c98 100644 > >>>>>> --- a/drivers/mtd/nand/raw/brcmnand/bcmbca_nand.c > >>>>>> +++ b/drivers/mtd/nand/raw/brcmnand/bcmbca_nand.c > >>>>>> @@ -26,6 +26,18 @@ enum { > >>>>>> BCMBCA_CTLRDY =3D BIT(4), > >>>>>> }; =20 > >>>>>> >> +#if defined(CONFIG_ARM64) =20 > >>>>>> +#define ALIGN_REQ 8 > >>>>>> +#else > >>>>>> +#define ALIGN_REQ 4 > >>>>>> +#endif > >>>>>> + > >>>>>> +static inline bool bcmbca_nand_is_buf_aligned(void *flash_cache, = void *buffer) > >>>>>> +{ > >>>>>> + return IS_ALIGNED((uintptr_t)buffer, ALIGN_REQ) && > >>>>>> + IS_ALIGNED((uintptr_t)flash_cache, ALIGN_REQ); > >>>>>> +} > >>>>>> + > >>>>>> static bool bcmbca_nand_intc_ack(struct brcmnand_soc *soc) > >>>>>> { > >>>>>> struct bcmbca_nand_soc *priv =3D > >>>>>> @@ -56,6 +68,29 @@ static void bcmbca_nand_intc_set(struct brcmnan= d_soc *soc, bool en) > >>>>>> brcmnand_writel(val, mmio); > >>>>>> } =20 > >>>>>> >> +static void bcmbca_read_data_bus(struct brcmnand_soc *soc,= =20 > >>>>>> + void __iomem *flash_cache, u32 *buffer, > >>>>>> + int fc_words, bool is_param) > >>>>>> +{ > >>>>>> + int i; > >>>>>> + > >>>>>> + if (!is_param) { > >>>>>> + /* > >>>>>> + * memcpy can do unaligned aligned access depending on source > >>>>>> + * and dest address, which is incompatible with nand cache. Fal= lback > >>>>>> + * to the memcpy for io version > >>>>>> + */ > >>>>>> + if (bcmbca_nand_is_buf_aligned(flash_cache, buffer)) > >>>>>> + memcpy((void *)buffer, (void *)flash_cache, fc_words * 4); > >>>>>> + else > >>>>>> + memcpy_fromio((void *)buffer, (void *)flash_cache, fc_words * = 4); > >>>>>> + } else { > >>>>>> + /* Flash cache has same endian as the host for parameter pages = */ > >>>>>> + for (i =3D 0; i < fc_words; i++, buffer++) > >>>>>> + *buffer =3D __raw_readl(flash_cache + i * 4); > >>>>>> + } > >>>>>> +} > >>>>>> + > >>>>>> static int bcmbca_nand_probe(struct platform_device *pdev) > >>>>>> { > >>>>>> struct device *dev =3D &pdev->dev; > >>>>>> @@ -75,6 +110,7 @@ static int bcmbca_nand_probe(struct platform_de= vice *pdev) =20 > >>>>>> >> soc->ctlrdy_ack =3D bcmbca_nand_intc_ack; =20 > >>>>>> soc->ctlrdy_set_enabled =3D bcmbca_nand_intc_set; > >>>>>> + soc->read_data_bus =3D bcmbca_read_data_bus; =20 > >>>>>> >> return brcmnand_probe(pdev, soc); =20 > >>>>>> } > >>>>>> diff --git a/drivers/mtd/nand/raw/brcmnand/brcmnand.c b/drivers/mt= d/nand/raw/brcmnand/brcmnand.c > >>>>>> index d920e88c7f5b..656be4d73016 100644 > >>>>>> --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.c > >>>>>> +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.c > >>>>>> @@ -814,6 +814,30 @@ static inline u32 edu_readl(struct brcmnand_c= ontroller *ctrl, > >>>>>> return brcmnand_readl(ctrl->edu_base + offs); > >>>>>> } =20 > >>>>>> >> +static inline void brcmnand_read_data_bus(struct brcmnand_= controller *ctrl, =20 > >>>>>> + void __iomem *flash_cache, u32 *buffer, > >>>>>> + int fc_words, bool is_param) > >>>>>> +{ > >>>>>> + struct brcmnand_soc *soc =3D ctrl->soc; > >>>>>> + int i; > >>>>>> + > >>>>>> + if (soc->read_data_bus) { > >>>>>> + soc->read_data_bus(soc, flash_cache, buffer, fc_words, is_param= ); > >>>>>> + } else { > >>>>>> + if (!is_param) { > >>>>>> + for (i =3D 0; i < fc_words; i++, buffer++) > >>>>>> + *buffer =3D brcmnand_read_fc(ctrl, i); > >>>>>> + } else { > >>>>>> + for (i =3D 0; i < fc_words; i++) > >>>>>> + /* > >>>>>> + * Flash cache is big endian for parameter pages, at > >>>>>> + * least on STB SoCs > >>>>>> + */ > >>>>>> + buffer[i] =3D be32_to_cpu(brcmnand_read_fc(ctrl, i)); > >>>>>> + } > >>>>>> + } =20 > >>>>> > >>>>> Perhaps we could have a single function that is statically assigned= at > >>>>> probe time instead of a first helper with two conditions which call= s in > >>>>> one case another hook... This can be simplified I guess. =20 > >>>>> >> Well this will need to be done at the SoC specific implement= ation level (bcm_nand.c) and each SoC will need to have either general= data bus read func with is_param option or data_bus_read_page, data_bus_re= ad_param. =20 > >>> > >>> You told me in case we would use exec_op we could avoid the param > >>> cache. If that's true then the whole support can be simplified. =20 > >>> >> Correct we may possibly unified the parameter data read but exe= c_op is long shot and we are not fully ready for that yet. It also depends = on if the low level data register has endianess difference for the paramete= r data between difference SoCs. =20 > >> > >> So I would like to push the current implementation and we can explore = the exec_op option late which will be a much big and complete different imp= lementation. =20 > >=20 > > I am sorry but this series is totally backwards, you're trying to guess > > what comes next with the 'is_param' thing, it's exactly what we are > > fighting against since 2017. There are plenty of ->exec_op() > > conversions out there, I don't believe this one will be harder. You > > need to convert the driver to this new API and get rid of this whole > > endianness non-sense to simplify a lot the driver. > > =20 > I am not guessing anything but just factor out the existing common nand c= ache read logic into the single default function(or one for page read and a= nother for parameter read as I mentioned in another thread) and allow SoC t= o overrides the implementation when needed. No, you are trying to guess what type of read the core is performing, either a regular data page read or a parameter page read. > I agree ->exec_op can possibly get rid of the parameter page read functio= n and is the way to go. But it won't help on the page read for endianess. You told me there is no endianess issue with the data pages, so why it won't help on the page read? > It's not that I am against exec_op but I want to take one step a time > and I'd like to get these fixes I don't see any fix here? Let me know if I am missing something but right now I see a new version of the controller being supported with its own constraints. If you are fixing existing code for already supported platform, then make it clear and we can discuss this. But if you just want to support the bcmbca flavor, then there is no risk mitigation involved here, and a conversion is the right step :) > and support for bcmbca soc first and > then work on the exec_op API to minimize the change and reduce the > risk. >=20 > >> =20 > >>>> Not sure how much this can be simplified... Or we have default > >>>> implementation in brcmnand.c but then there is one condition check > >>>> too. Page read is done at 512 bytes burst. One or two conditions > >>>> check outside of the per 512 bytes read loop does not sounds too bad > >>>> if performance is concern. =20 > >>> > >>> It is unreadable. That is my main concern. =20 > >>> >>>> >>>>>> +} =20 > >>>>>> + > >>>>>> static void brcmnand_clear_ecc_addr(struct brcmnand_controller= *ctrl) > >>>>>> { =20 > >>>>>> >> @@ -1811,20 +1835,11 @@ static void brcmnand_cmdfunc(struct= nand_chip *chip, unsigned command, =20 > >>>>>> native_cmd =3D=3D CMD_PARAMETER_CHANGE_COL) { > >>>>>> /* Copy flash cache word-wise */ > >>>>>> u32 *flash_cache =3D (u32 *)ctrl->flash_cache; > >>>>>> - int i; =20 > >>>>>> >> brcmnand_soc_data_bus_prepare(ctrl->soc, true); > >>>>>> >> - /* =20 > >>>>>> - * Must cache the FLASH_CACHE now, since changes in > >>>>>> - * SECTOR_SIZE_1K may invalidate it > >>>>>> - */ > >>>>>> - for (i =3D 0; i < FC_WORDS; i++) > >>>>>> - /* > >>>>>> - * Flash cache is big endian for parameter pages, at > >>>>>> - * least on STB SoCs > >>>>>> - */ > >>>>>> - flash_cache[i] =3D be32_to_cpu(brcmnand_read_fc(ctrl, i)); > >>>>>> + brcmnand_read_data_bus(ctrl, ctrl->nand_fc, flash_cache, > >>>>>> + FC_WORDS, true); =20 > >>>>>> >> brcmnand_soc_data_bus_unprepare(ctrl->soc, true); > >>>>>> >> @@ -2137,7 +2152,7 @@ static int brcmnand_read_by_pio(struc= t mtd_info *mtd, struct nand_chip *chip, =20 > >>>>>> { > >>>>>> struct brcmnand_host *host =3D nand_get_controller_data(chip); > >>>>>> struct brcmnand_controller *ctrl =3D host->ctrl; > >>>>>> - int i, j, ret =3D 0; > >>>>>> + int i, ret =3D 0; =20 > >>>>>> >> brcmnand_clear_ecc_addr(ctrl); > >>>>>> >> @@ -2150,8 +2165,9 @@ static int brcmnand_read_by_pio(struc= t mtd_info *mtd, struct nand_chip *chip, =20 > >>>>>> if (likely(buf)) { > >>>>>> brcmnand_soc_data_bus_prepare(ctrl->soc, false); =20 > >>>>>> >> - for (j =3D 0; j < FC_WORDS; j++, buf++) =20 > >>>>>> - *buf =3D brcmnand_read_fc(ctrl, j); > >>>>>> + brcmnand_read_data_bus(ctrl, ctrl->nand_fc, buf, > >>>>>> + FC_WORDS, false); > >>>>>> + buf +=3D FC_WORDS; =20 > >>>>>> >> brcmnand_soc_data_bus_unprepare(ctrl->soc, false); =20 > >>>>>> } > >>>>>> diff --git a/drivers/mtd/nand/raw/brcmnand/brcmnand.h b/drivers/mt= d/nand/raw/brcmnand/brcmnand.h > >>>>>> index f1f93d85f50d..88819bc395f8 100644 > >>>>>> --- a/drivers/mtd/nand/raw/brcmnand/brcmnand.h > >>>>>> +++ b/drivers/mtd/nand/raw/brcmnand/brcmnand.h > >>>>>> @@ -24,6 +24,8 @@ struct brcmnand_soc { > >>>>>> void (*ctlrdy_set_enabled)(struct brcmnand_soc *soc, bool en); > >>>>>> void (*prepare_data_bus)(struct brcmnand_soc *soc, bool prepa= re, > >>>>>> bool is_param); > >>>>>> + void (*read_data_bus)(struct brcmnand_soc *soc, void __iomem *fl= ash_cache, > >>>>>> + u32 *buffer, int fc_words, bool is_param); > >>>>>> const struct brcmnand_io_ops *ops; > >>>>>> }; =20 > >>>>>> > > =20 > >>>>> Thanks, > >>>>> Miqu=C3=A8l =20 > >>>>> > > =20 > >>> Thanks, > >>> Miqu=C3=A8l =20 > >>> > > =20 > > Thanks, > > Miqu=C3=A8l > > =20 Thanks, Miqu=C3=A8l