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 8DE0CC7EE25 for ; Thu, 8 Jun 2023 06:15:52 +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=NshKS4PsunBdz+opqC+qVAortcj3wK+1itG25VewkMM=; b=j5I6aCuG31CyWa Rd2K8KgMcOwWJk5moq7a9yAHFXOayHwqzn8RdCMmmx3pp9bGyHq6rKwPJmIF6GDKMBPStY7aoLvJN QTAeUjpfUPrT3MzaiMs2bIrqqxqBffiMv5qa3MMfEwYW46lAtT5K7eQ4aSyZBGC50Y480oNSoIOlR qHydsx6RmYzcU4/aauvPHLZcwWw/jsmDZJwwNFz/t8HqauOBREVi5yIeGJl0HwTcKheYmxGFUygcl l1KjscKXnZb8Q+fjP0J5xLV1N2w1WwOU4ItNKv0GNdqINvQwREcAPHWd7PMRyp25kkQthPJcUzQ0t eC/D0otgneb9Uaj+c9+Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1q78vd-008E7H-0u; Thu, 08 Jun 2023 06:15:25 +0000 Received: from relay9-d.mail.gandi.net ([2001:4b98:dc4:8::229]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1q78vY-008E5j-1G; Thu, 08 Jun 2023 06:15:22 +0000 X-GND-Sasl: miquel.raynal@bootlin.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1686204916; 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=7t59aesvioWdyAbdyEBuOAeoddZ3/oqLnKZdNI13uCA=; b=lEZBhrZMIt4xSORfHBtP47kskrP8CzB4m/YFvTV5WYwLcgdrm+htCGKSX+jfM2KOHpx2gt Nr5ZNChNHi63Det4EvULCqlpe/GznOMQ8kjFGauHoqb6voGrQsLdqUn/8Zf6wEqv7OUgDP AOLHsCAP13zIGN5FtsoPHxrdNQVSgGfcP7JR4XgnYfyh1gJfdb8fXyQ/l0eV/Dqam76UBo hEk8WAAl7PJaRbqCXDJUal6xg3BAsOl/i20L3o3adAvk/hMpvpIw/uaDs+NfoZJsUBtCpY NLe9V7cy8nzKioGUGPYa5pgJLgvvdbNmzdqk4rZ4BMuJCcj8tjkP51IdROnDeA== 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 CFDDAFF80B; Thu, 8 Jun 2023 06:15:12 +0000 (UTC) Date: Thu, 8 Jun 2023 08:15:12 +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: <20230608081512.52fa07fb@xps-13> In-Reply-To: <11a7132c-7f10-ee47-0a23-d444ed29d980@broadcom.com> References: <20230606231252.94838-1-william.zhang@broadcom.com> <20230606231252.94838-11-william.zhang@broadcom.com> <20230607102056.5b1bfa5b@xps-13> <11a7132c-7f10-ee47-0a23-d444ed29d980@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-20230607_231520_741383_ABD868A4 X-CRM114-Status: GOOD ( 38.65 ) 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 SGkgV2lsbGlhbSwKCndpbGxpYW0uemhhbmdAYnJvYWRjb20uY29tIHdyb3RlIG9uIFdlZCwgNyBK dW4gMjAyMyAxMzoxMjowMiAtMDcwMDoKCj4gSGkgTWlxdWVsLAo+IAo+IE9uIDA2LzA3LzIwMjMg MDE6MjAgQU0sIE1pcXVlbCBSYXluYWwgd3JvdGU6Cj4gPiBIaSBXaWxsaWFtLAo+ID4gCj4gPiB3 aWxsaWFtLnpoYW5nQGJyb2FkY29tLmNvbSB3cm90ZSBvbiBUdWUsICA2IEp1biAyMDIzIDE2OjEy OjUwIC0wNzAwOgo+ID4gICAKPiA+PiBUaGUgQkNNQkNBIGJyb2FkYmFuZCBTb0MgaW50ZWdyYXRl cyB0aGUgTkFORCBjb250cm9sbGVyIGRpZmZlcmVudGx5IHRoYW4KPiA+PiBTVEIsIGlQcm9jIGFu ZCBvdGhlciBTb0NzLiAgSXQgaGFzIGRpZmZlcmVudCBlbmRpYW5uZXNzIGZvciBOQU5EIGNhY2hl Cj4gPj4gZGF0YSBhbmQgT05GSSBwYXJhbWV0ZXIgZGF0YS4KPiA+Pgo+ID4+IEFkZCBhIFNvQyBy ZWFkIGRhdGEgYnVzIHNoaW0gZm9yIEJDTUJDQSB0byBtZWV0IHRoZSBzcGVjaWZpYyBTb0MgbmVl ZAo+ID4+IGFuZCBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudCB1c2luZyB0aGUgb3B0aW1pemVkIG1l bWNweSBmdW5jdGlvbiBvbiBOQU5ECj4gPj4gY2FjaGUgbWVtb3J5Lgo+ID4+Cj4gPj4gU2lnbmVk LW9mZi1ieTogV2lsbGlhbSBaaGFuZyA8d2lsbGlhbS56aGFuZ0Bicm9hZGNvbS5jb20+Cj4gPj4g LS0tCj4gPj4KPiA+PiAgIGRyaXZlcnMvbXRkL25hbmQvcmF3L2JyY21uYW5kL2JjbWJjYV9uYW5k LmMgfCAzNiArKysrKysrKysrKysrKysrKwo+ID4+ICAgZHJpdmVycy9tdGQvbmFuZC9yYXcvYnJj bW5hbmQvYnJjbW5hbmQuYyAgICB8IDQ0ICsrKysrKysrKysrKysrLS0tLS0tLQo+ID4+ICAgZHJp dmVycy9tdGQvbmFuZC9yYXcvYnJjbW5hbmQvYnJjbW5hbmQuaCAgICB8ICAyICsKPiA+PiAgIDMg ZmlsZXMgY2hhbmdlZCwgNjggaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCj4gPj4KPiA+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvYnJjbW5hbmQvYmNtYmNhX25hbmQu YyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L2JyY21uYW5kL2JjbWJjYV9uYW5kLmMKPiA+PiBpbmRl eCA3ZTQ4YjZhMGJmYTIuLjg5OTEwM2E2MmM5OCAxMDA2NDQKPiA+PiAtLS0gYS9kcml2ZXJzL210 ZC9uYW5kL3Jhdy9icmNtbmFuZC9iY21iY2FfbmFuZC5jCj4gPj4gKysrIGIvZHJpdmVycy9tdGQv bmFuZC9yYXcvYnJjbW5hbmQvYmNtYmNhX25hbmQuYwo+ID4+IEBAIC0yNiw2ICsyNiwxOCBAQCBl bnVtIHsKPiA+PiAgIAlCQ01CQ0FfQ1RMUkRZCQk9IEJJVCg0KSwKPiA+PiAgIH07ICAKPiA+PiAg ID4+ICsjaWYgZGVmaW5lZChDT05GSUdfQVJNNjQpICAKPiA+PiArI2RlZmluZSBBTElHTl9SRVEJ CTgKPiA+PiArI2Vsc2UKPiA+PiArI2RlZmluZSBBTElHTl9SRVEJCTQKPiA+PiArI2VuZGlmCj4g Pj4gKwo+ID4+ICtzdGF0aWMgaW5saW5lIGJvb2wgYmNtYmNhX25hbmRfaXNfYnVmX2FsaWduZWQo dm9pZCAqZmxhc2hfY2FjaGUsICB2b2lkICpidWZmZXIpCj4gPj4gK3sKPiA+PiArCXJldHVybiBJ U19BTElHTkVEKCh1aW50cHRyX3QpYnVmZmVyLCBBTElHTl9SRVEpICYmCj4gPj4gKwkJCQlJU19B TElHTkVEKCh1aW50cHRyX3QpZmxhc2hfY2FjaGUsIEFMSUdOX1JFUSk7Cj4gPj4gK30KPiA+PiAr Cj4gPj4gICBzdGF0aWMgYm9vbCBiY21iY2FfbmFuZF9pbnRjX2FjayhzdHJ1Y3QgYnJjbW5hbmRf c29jICpzb2MpCj4gPj4gICB7Cj4gPj4gICAJc3RydWN0IGJjbWJjYV9uYW5kX3NvYyAqcHJpdiA9 Cj4gPj4gQEAgLTU2LDYgKzY4LDI5IEBAIHN0YXRpYyB2b2lkIGJjbWJjYV9uYW5kX2ludGNfc2V0 KHN0cnVjdCBicmNtbmFuZF9zb2MgKnNvYywgYm9vbCBlbikKPiA+PiAgIAlicmNtbmFuZF93cml0 ZWwodmFsLCBtbWlvKTsKPiA+PiAgIH0gIAo+ID4+ICAgPj4gK3N0YXRpYyB2b2lkIGJjbWJjYV9y ZWFkX2RhdGFfYnVzKHN0cnVjdCBicmNtbmFuZF9zb2MgKnNvYywgIAo+ID4+ICsJCQkJIHZvaWQg X19pb21lbSAqZmxhc2hfY2FjaGUsICB1MzIgKmJ1ZmZlciwKPiA+PiArCQkJCSBpbnQgZmNfd29y ZHMsIGJvb2wgaXNfcGFyYW0pCj4gPj4gK3sKPiA+PiArCWludCBpOwo+ID4+ICsKPiA+PiArCWlm ICghaXNfcGFyYW0pIHsKPiA+PiArCQkvKgo+ID4+ICsJCSAqIG1lbWNweSBjYW4gZG8gdW5hbGln bmVkIGFsaWduZWQgYWNjZXNzIGRlcGVuZGluZyBvbiBzb3VyY2UKPiA+PiArCQkgKiBhbmQgZGVz dCBhZGRyZXNzLCB3aGljaCBpcyBpbmNvbXBhdGlibGUgd2l0aCBuYW5kIGNhY2hlLiBGYWxsYmFj awo+ID4+ICsJCSAqIHRvIHRoZSBtZW1jcHkgZm9yIGlvIHZlcnNpb24KPiA+PiArCQkgKi8KPiA+ PiArCQlpZiAoYmNtYmNhX25hbmRfaXNfYnVmX2FsaWduZWQoZmxhc2hfY2FjaGUsIGJ1ZmZlcikp Cj4gPj4gKwkJCW1lbWNweSgodm9pZCAqKWJ1ZmZlciwgKHZvaWQgKilmbGFzaF9jYWNoZSwgZmNf d29yZHMgKiA0KTsKPiA+PiArCQllbHNlCj4gPj4gKwkJCW1lbWNweV9mcm9taW8oKHZvaWQgKili dWZmZXIsICh2b2lkICopZmxhc2hfY2FjaGUsIGZjX3dvcmRzICogNCk7Cj4gPj4gKwl9IGVsc2Ug ewo+ID4+ICsJCS8qIEZsYXNoIGNhY2hlIGhhcyBzYW1lIGVuZGlhbiBhcyB0aGUgaG9zdCBmb3Ig cGFyYW1ldGVyIHBhZ2VzICovCj4gPj4gKwkJZm9yIChpID0gMDsgaSA8IGZjX3dvcmRzOyBpKyss IGJ1ZmZlcisrKQo+ID4+ICsJCQkqYnVmZmVyID0gX19yYXdfcmVhZGwoZmxhc2hfY2FjaGUgKyBp ICogNCk7Cj4gPj4gKwl9Cj4gPj4gK30KPiA+PiArCj4gPj4gICBzdGF0aWMgaW50IGJjbWJjYV9u YW5kX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gPj4gICB7Cj4gPj4gICAJ c3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKPiA+PiBAQCAtNzUsNiArMTEwLDcgQEAg c3RhdGljIGludCBiY21iY2FfbmFuZF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2 KSAgCj4gPj4gICA+PiAgIAlzb2MtPmN0bHJkeV9hY2sgPSBiY21iY2FfbmFuZF9pbnRjX2Fjazsg IAo+ID4+ICAgCXNvYy0+Y3RscmR5X3NldF9lbmFibGVkID0gYmNtYmNhX25hbmRfaW50Y19zZXQ7 Cj4gPj4gKwlzb2MtPnJlYWRfZGF0YV9idXMgPSBiY21iY2FfcmVhZF9kYXRhX2J1czsgIAo+ID4+ ICAgPj4gICAJcmV0dXJuIGJyY21uYW5kX3Byb2JlKHBkZXYsIHNvYyk7ICAKPiA+PiAgIH0KPiA+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvYnJjbW5hbmQvYnJjbW5hbmQuYyBi L2RyaXZlcnMvbXRkL25hbmQvcmF3L2JyY21uYW5kL2JyY21uYW5kLmMKPiA+PiBpbmRleCBkOTIw ZTg4YzdmNWIuLjY1NmJlNGQ3MzAxNiAxMDA2NDQKPiA+PiAtLS0gYS9kcml2ZXJzL210ZC9uYW5k L3Jhdy9icmNtbmFuZC9icmNtbmFuZC5jCj4gPj4gKysrIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcv YnJjbW5hbmQvYnJjbW5hbmQuYwo+ID4+IEBAIC04MTQsNiArODE0LDMwIEBAIHN0YXRpYyBpbmxp bmUgdTMyIGVkdV9yZWFkbChzdHJ1Y3QgYnJjbW5hbmRfY29udHJvbGxlciAqY3RybCwKPiA+PiAg IAlyZXR1cm4gYnJjbW5hbmRfcmVhZGwoY3RybC0+ZWR1X2Jhc2UgKyBvZmZzKTsKPiA+PiAgIH0g IAo+ID4+ICAgPj4gK3N0YXRpYyBpbmxpbmUgdm9pZCBicmNtbmFuZF9yZWFkX2RhdGFfYnVzKHN0 cnVjdCBicmNtbmFuZF9jb250cm9sbGVyICpjdHJsLCAgCj4gPj4gKwkJCQkJICAgdm9pZCBfX2lv bWVtICpmbGFzaF9jYWNoZSwgdTMyICpidWZmZXIsCj4gPj4gKwkJCQkJICAgaW50IGZjX3dvcmRz LCBib29sIGlzX3BhcmFtKSAgCj4gPiAKPiA+IEkgc3Ryb25nbHkgZGlzbGlrZSB0aGlzICJpc19w YXJhbSIgYm9vbGVhbi4KPiA+IAo+ID4gV2hlbiBpcyB0aGUgZGF0YSBpbiBob3N0IGVuZGlhbm5l c3M/IFdoZW4gaXMgaXQgbm90PyAgCj4gVGhpcyBpcyBsaXR0bGUgYml0IGNvbXBsaWNhdGVkLiAg V2UgaGF2ZSB0d28gdHlwZSBkYXRhIHJlYWQgZnJvbSBuYW5kIGNhY2hlLiBPbmUgZm9yIHBhZ2Ug cmVhZCBhbmQgdGhlIG90aGVyIGZvciBwYXJhbWV0ZXIgYW5kIG9uZmkgZGF0YSByZWFkIGZyb20g dGhlIGNvbnRyb2xsZXIgc2lkZS4gQnV0IGl0IGRlcGVuZHMgb24gaG93IFNvQyBpbnRlZ3JhdGUg dGhlIG5hbmQgY2FjaGUgdG8gc3lzdGVtLiBJbiBicm9hZGJhbmQgU29DLCBib3RoIHBhZ2UgYW5k IHBhcmFtZXRlciBkYXRhIGFyZSBpbiBob3N0IGVuZGlhbmVzcyBidXQgb3RoZXIgU29DcyBpcyBu b3QgdGhlIHNhbWUuCj4gCj4gSSBhbSBvcGVuIHRvIHN1Z2dlc3Rpb24gZm9yIGlzX3BhcmFtIGZ1 bmN0aW9uIGFyZ3VtZW50IGJ1dCB0byBmYWN0b3Igb3V0IHRoaXMgY29tbW9uIGNvZGUgaW4gbW9y ZSBzdHJ1Y3R1cmVkIHdheSwgSSBkb24ndCBzZWUgb3RoZXIgd2F5IGFyb3VuZC4KCkFscmlnaHQs IHNvIHRoaXMgaXMgU29DIGRlcGVuZGVudCwgdmVyeSB3ZWxsIC0+IGEgKHN1Yiljb21wYXRpYmxl IHBlcgpTb0MgKyBwbGF0Zm9ybSBkYXRhIGFzc29jaWF0ZWQgdG8gaXQgd2l0aCB0aGUgcmlnaHQg ZnVuY3Rpb24uCgo+ID4gSWYgd2UgdGhpbmsgYWJvdXQgYW4gZXhlY19vcCgpIGNvbnZlcnNpb24g YW5kIGRyb3AgY21kZnVuYygpLCB3aGF0Cj4gPiB3b3VsZCBiZSB0aGUgZGlzY3JpbWluYW50Pwo+ ID4gICAKPiBJZiB3ZSBuZWVkIHRvIGltcGxlbWVudCBleGVjX29wIGluIHRoZSBmdXR1cmUsICB0 aGUgZGF0YSBpcyBub3QgY29taW5nIGZyb20gbmFuZCBjYWNoZSBidXQgc29tZSBvdGhlciBsb3cg bGV2ZWwgZGF0YSByZWdpc3RlciB3aGljaCBtYXkgbm90IHN1YmplY3QgdG8gdGhlIGVuZGlhbmVz cyBpc3N1ZS4KCkNhbid0IHlvdSB1c2UgdGhlIHNhbWUgY2FjaGUgYWxsIHRoZSB0aW1lIGhlcmUg YXMgd2VsbCB0aGVuPyBBbmQgYXZvaWQKdGhlIG5lZWQgZm9yIHRoaXMgb3Zlcmx5IGNvbXBsZXgg bG9naWM/Cgo+IAo+ID4+ICt7Cj4gPj4gKwlzdHJ1Y3QgYnJjbW5hbmRfc29jICpzb2MgPSBjdHJs LT5zb2M7Cj4gPj4gKwlpbnQgaTsKPiA+PiArCj4gPj4gKwlpZiAoc29jLT5yZWFkX2RhdGFfYnVz KSB7Cj4gPj4gKwkJc29jLT5yZWFkX2RhdGFfYnVzKHNvYywgZmxhc2hfY2FjaGUsIGJ1ZmZlciwg ZmNfd29yZHMsIGlzX3BhcmFtKTsKPiA+PiArCX0gZWxzZSB7Cj4gPj4gKwkJaWYgKCFpc19wYXJh bSkgewo+ID4+ICsJCQlmb3IgKGkgPSAwOyBpIDwgZmNfd29yZHM7IGkrKywgYnVmZmVyKyspCj4g Pj4gKwkJCQkqYnVmZmVyID0gYnJjbW5hbmRfcmVhZF9mYyhjdHJsLCBpKTsKPiA+PiArCQl9IGVs c2Ugewo+ID4+ICsJCQlmb3IgKGkgPSAwOyBpIDwgZmNfd29yZHM7IGkrKykKPiA+PiArCQkJCS8q Cj4gPj4gKwkJCQkgKiBGbGFzaCBjYWNoZSBpcyBiaWcgZW5kaWFuIGZvciBwYXJhbWV0ZXIgcGFn ZXMsIGF0Cj4gPj4gKwkJCQkgKiBsZWFzdCBvbiBTVEIgU29Dcwo+ID4+ICsJCQkJICovCj4gPj4g KwkJCQlidWZmZXJbaV0gPSBiZTMyX3RvX2NwdShicmNtbmFuZF9yZWFkX2ZjKGN0cmwsIGkpKTsK PiA+PiArCQl9Cj4gPj4gKwl9Cj4gPj4gK30KPiA+PiArCj4gPj4gICBzdGF0aWMgdm9pZCBicmNt bmFuZF9jbGVhcl9lY2NfYWRkcihzdHJ1Y3QgYnJjbW5hbmRfY29udHJvbGxlciAqY3RybCkKPiA+ PiAgIHsgIAo+ID4+ICAgPj4gQEAgLTE4MTEsMjAgKzE4MzUsMTEgQEAgc3RhdGljIHZvaWQgYnJj bW5hbmRfY21kZnVuYyhzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwLCB1bnNpZ25lZCBjb21tYW5kLCAg Cj4gPj4gICAJCQluYXRpdmVfY21kID09IENNRF9QQVJBTUVURVJfQ0hBTkdFX0NPTCkgewo+ID4+ ICAgCQkvKiBDb3B5IGZsYXNoIGNhY2hlIHdvcmQtd2lzZSAqLwo+ID4+ICAgCQl1MzIgKmZsYXNo X2NhY2hlID0gKHUzMiAqKWN0cmwtPmZsYXNoX2NhY2hlOwo+ID4+IC0JCWludCBpOyAgCj4gPj4g ICA+PiAgIAkJYnJjbW5hbmRfc29jX2RhdGFfYnVzX3ByZXBhcmUoY3RybC0+c29jLCB0cnVlKTsK PiA+PiAgID4+IC0JCS8qICAKPiA+PiAtCQkgKiBNdXN0IGNhY2hlIHRoZSBGTEFTSF9DQUNIRSBu b3csIHNpbmNlIGNoYW5nZXMgaW4KPiA+PiAtCQkgKiBTRUNUT1JfU0laRV8xSyBtYXkgaW52YWxp ZGF0ZSBpdAo+ID4+IC0JCSAqLwo+ID4+IC0JCWZvciAoaSA9IDA7IGkgPCBGQ19XT1JEUzsgaSsr KQo+ID4+IC0JCQkvKgo+ID4+IC0JCQkgKiBGbGFzaCBjYWNoZSBpcyBiaWcgZW5kaWFuIGZvciBw YXJhbWV0ZXIgcGFnZXMsIGF0Cj4gPj4gLQkJCSAqIGxlYXN0IG9uIFNUQiBTb0NzCj4gPj4gLQkJ CSAqLwo+ID4+IC0JCQlmbGFzaF9jYWNoZVtpXSA9IGJlMzJfdG9fY3B1KGJyY21uYW5kX3JlYWRf ZmMoY3RybCwgaSkpOwo+ID4+ICsJCWJyY21uYW5kX3JlYWRfZGF0YV9idXMoY3RybCwgY3RybC0+ bmFuZF9mYywgZmxhc2hfY2FjaGUsCj4gPj4gKwkJCQkgICBGQ19XT1JEUywgdHJ1ZSk7ICAKPiA+ PiAgID4+ICAgCQlicmNtbmFuZF9zb2NfZGF0YV9idXNfdW5wcmVwYXJlKGN0cmwtPnNvYywgdHJ1 ZSk7Cj4gPj4gICA+PiBAQCAtMjEzNyw3ICsyMTUyLDcgQEAgc3RhdGljIGludCBicmNtbmFuZF9y ZWFkX2J5X3BpbyhzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgc3RydWN0IG5hbmRfY2hpcCAqY2hpcCwg IAo+ID4+ICAgewo+ID4+ICAgCXN0cnVjdCBicmNtbmFuZF9ob3N0ICpob3N0ID0gbmFuZF9nZXRf Y29udHJvbGxlcl9kYXRhKGNoaXApOwo+ID4+ICAgCXN0cnVjdCBicmNtbmFuZF9jb250cm9sbGVy ICpjdHJsID0gaG9zdC0+Y3RybDsKPiA+PiAtCWludCBpLCBqLCByZXQgPSAwOwo+ID4+ICsJaW50 IGksIHJldCA9IDA7ICAKPiA+PiAgID4+ICAgCWJyY21uYW5kX2NsZWFyX2VjY19hZGRyKGN0cmwp Owo+ID4+ICAgPj4gQEAgLTIxNTAsOCArMjE2NSw5IEBAIHN0YXRpYyBpbnQgYnJjbW5hbmRfcmVh ZF9ieV9waW8oc3RydWN0IG10ZF9pbmZvICptdGQsIHN0cnVjdCBuYW5kX2NoaXAgKmNoaXAsICAK PiA+PiAgIAkJaWYgKGxpa2VseShidWYpKSB7Cj4gPj4gICAJCQlicmNtbmFuZF9zb2NfZGF0YV9i dXNfcHJlcGFyZShjdHJsLT5zb2MsIGZhbHNlKTsgIAo+ID4+ICAgPj4gLQkJCWZvciAoaiA9IDA7 IGogPCBGQ19XT1JEUzsgaisrLCBidWYrKykgIAo+ID4+IC0JCQkJKmJ1ZiA9IGJyY21uYW5kX3Jl YWRfZmMoY3RybCwgaik7Cj4gPj4gKwkJCWJyY21uYW5kX3JlYWRfZGF0YV9idXMoY3RybCwgY3Ry bC0+bmFuZF9mYywgYnVmLAo+ID4+ICsJCQkJCUZDX1dPUkRTLCBmYWxzZSk7Cj4gPj4gKwkJCWJ1 ZiArPSBGQ19XT1JEUzsgIAo+ID4+ICAgPj4gICAJCQlicmNtbmFuZF9zb2NfZGF0YV9idXNfdW5w cmVwYXJlKGN0cmwtPnNvYywgZmFsc2UpOyAgCj4gPj4gICAJCX0KPiA+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9tdGQvbmFuZC9yYXcvYnJjbW5hbmQvYnJjbW5hbmQuaCBiL2RyaXZlcnMvbXRkL25h bmQvcmF3L2JyY21uYW5kL2JyY21uYW5kLmgKPiA+PiBpbmRleCBmMWY5M2Q4NWY1MGQuLjg4ODE5 YmMzOTVmOCAxMDA2NDQKPiA+PiAtLS0gYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9icmNtbmFuZC9i cmNtbmFuZC5oCj4gPj4gKysrIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvYnJjbW5hbmQvYnJjbW5h bmQuaAo+ID4+IEBAIC0yNCw2ICsyNCw4IEBAIHN0cnVjdCBicmNtbmFuZF9zb2Mgewo+ID4+ICAg CXZvaWQgKCpjdGxyZHlfc2V0X2VuYWJsZWQpKHN0cnVjdCBicmNtbmFuZF9zb2MgKnNvYywgYm9v bCBlbik7Cj4gPj4gICAJdm9pZCAoKnByZXBhcmVfZGF0YV9idXMpKHN0cnVjdCBicmNtbmFuZF9z b2MgKnNvYywgYm9vbCBwcmVwYXJlLAo+ID4+ICAgCQkJCSBib29sIGlzX3BhcmFtKTsKPiA+PiAr CXZvaWQgKCpyZWFkX2RhdGFfYnVzKShzdHJ1Y3QgYnJjbW5hbmRfc29jICpzb2MsIHZvaWQgX19p b21lbSAqZmxhc2hfY2FjaGUsCj4gPj4gKwkJCQkgdTMyICpidWZmZXIsIGludCBmY193b3Jkcywg Ym9vbCBpc19wYXJhbSk7Cj4gPj4gICAJY29uc3Qgc3RydWN0IGJyY21uYW5kX2lvX29wcyAqb3Bz Owo+ID4+ICAgfTsgIAo+ID4+ICAgPiA+ICAgCj4gPiBUaGFua3MsCj4gPiBNaXF1w6hsCj4gPiAg IAoKClRoYW5rcywKTWlxdcOobAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCkxpbnV4IE1URCBkaXNjdXNzaW9uIG1haWxpbmcgbGlzdApodHRw Oi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LW10ZC8K 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 A63CCC7EE23 for ; Thu, 8 Jun 2023 06:15:52 +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=yCv663LfMMgecF+71ibETJEjKYL8wpMhpC0RLmGRHuc=; b=ux0FIqSL02Rm1x mLC4ToO6OXWh0jaCTIGYo3nYx5oNsM9PiPO+y0bkScbB/YM/e2Ipeq9hWdfpWCArlzyi4cMs1jiOk Ky+n2jhqYfsYmIqGg7bEUQr8h9lF5lLQdEW56WJf7OJQYyIGz4a+1YcgL/Ga2C1xU8Bb8k0jKWsxI AgHDhqqgtXjaJhKhrWbrLB7gwpAmFXXUSXCWSE6fG1lLxQTt17yLF13J/JD+q15+EPNCvsCfD0Czi OiKe/N/krMfbVDT5o4Lxvg5CPyxYFXxEivfSGLZxbDvZXfkhM3Q51Mk7HUSfmCDMtTRxtLpfFUJu3 8ILAVIvYSyiQyMy29qlw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.96 #2 (Red Hat Linux)) id 1q78vc-008E70-2I; Thu, 08 Jun 2023 06:15:24 +0000 Received: from relay9-d.mail.gandi.net ([2001:4b98:dc4:8::229]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1q78vY-008E5j-1G; Thu, 08 Jun 2023 06:15:22 +0000 X-GND-Sasl: miquel.raynal@bootlin.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1686204916; 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=7t59aesvioWdyAbdyEBuOAeoddZ3/oqLnKZdNI13uCA=; b=lEZBhrZMIt4xSORfHBtP47kskrP8CzB4m/YFvTV5WYwLcgdrm+htCGKSX+jfM2KOHpx2gt Nr5ZNChNHi63Det4EvULCqlpe/GznOMQ8kjFGauHoqb6voGrQsLdqUn/8Zf6wEqv7OUgDP AOLHsCAP13zIGN5FtsoPHxrdNQVSgGfcP7JR4XgnYfyh1gJfdb8fXyQ/l0eV/Dqam76UBo hEk8WAAl7PJaRbqCXDJUal6xg3BAsOl/i20L3o3adAvk/hMpvpIw/uaDs+NfoZJsUBtCpY NLe9V7cy8nzKioGUGPYa5pgJLgvvdbNmzdqk4rZ4BMuJCcj8tjkP51IdROnDeA== 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 CFDDAFF80B; Thu, 8 Jun 2023 06:15:12 +0000 (UTC) Date: Thu, 8 Jun 2023 08:15:12 +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: <20230608081512.52fa07fb@xps-13> In-Reply-To: <11a7132c-7f10-ee47-0a23-d444ed29d980@broadcom.com> References: <20230606231252.94838-1-william.zhang@broadcom.com> <20230606231252.94838-11-william.zhang@broadcom.com> <20230607102056.5b1bfa5b@xps-13> <11a7132c-7f10-ee47-0a23-d444ed29d980@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-20230607_231520_741383_ABD868A4 X-CRM114-Status: GOOD ( 38.65 ) 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 SGkgV2lsbGlhbSwKCndpbGxpYW0uemhhbmdAYnJvYWRjb20uY29tIHdyb3RlIG9uIFdlZCwgNyBK dW4gMjAyMyAxMzoxMjowMiAtMDcwMDoKCj4gSGkgTWlxdWVsLAo+IAo+IE9uIDA2LzA3LzIwMjMg MDE6MjAgQU0sIE1pcXVlbCBSYXluYWwgd3JvdGU6Cj4gPiBIaSBXaWxsaWFtLAo+ID4gCj4gPiB3 aWxsaWFtLnpoYW5nQGJyb2FkY29tLmNvbSB3cm90ZSBvbiBUdWUsICA2IEp1biAyMDIzIDE2OjEy OjUwIC0wNzAwOgo+ID4gICAKPiA+PiBUaGUgQkNNQkNBIGJyb2FkYmFuZCBTb0MgaW50ZWdyYXRl cyB0aGUgTkFORCBjb250cm9sbGVyIGRpZmZlcmVudGx5IHRoYW4KPiA+PiBTVEIsIGlQcm9jIGFu ZCBvdGhlciBTb0NzLiAgSXQgaGFzIGRpZmZlcmVudCBlbmRpYW5uZXNzIGZvciBOQU5EIGNhY2hl Cj4gPj4gZGF0YSBhbmQgT05GSSBwYXJhbWV0ZXIgZGF0YS4KPiA+Pgo+ID4+IEFkZCBhIFNvQyBy ZWFkIGRhdGEgYnVzIHNoaW0gZm9yIEJDTUJDQSB0byBtZWV0IHRoZSBzcGVjaWZpYyBTb0MgbmVl ZAo+ID4+IGFuZCBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudCB1c2luZyB0aGUgb3B0aW1pemVkIG1l bWNweSBmdW5jdGlvbiBvbiBOQU5ECj4gPj4gY2FjaGUgbWVtb3J5Lgo+ID4+Cj4gPj4gU2lnbmVk LW9mZi1ieTogV2lsbGlhbSBaaGFuZyA8d2lsbGlhbS56aGFuZ0Bicm9hZGNvbS5jb20+Cj4gPj4g LS0tCj4gPj4KPiA+PiAgIGRyaXZlcnMvbXRkL25hbmQvcmF3L2JyY21uYW5kL2JjbWJjYV9uYW5k LmMgfCAzNiArKysrKysrKysrKysrKysrKwo+ID4+ICAgZHJpdmVycy9tdGQvbmFuZC9yYXcvYnJj bW5hbmQvYnJjbW5hbmQuYyAgICB8IDQ0ICsrKysrKysrKysrKysrLS0tLS0tLQo+ID4+ICAgZHJp dmVycy9tdGQvbmFuZC9yYXcvYnJjbW5hbmQvYnJjbW5hbmQuaCAgICB8ICAyICsKPiA+PiAgIDMg ZmlsZXMgY2hhbmdlZCwgNjggaW5zZXJ0aW9ucygrKSwgMTQgZGVsZXRpb25zKC0pCj4gPj4KPiA+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvYnJjbW5hbmQvYmNtYmNhX25hbmQu YyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L2JyY21uYW5kL2JjbWJjYV9uYW5kLmMKPiA+PiBpbmRl eCA3ZTQ4YjZhMGJmYTIuLjg5OTEwM2E2MmM5OCAxMDA2NDQKPiA+PiAtLS0gYS9kcml2ZXJzL210 ZC9uYW5kL3Jhdy9icmNtbmFuZC9iY21iY2FfbmFuZC5jCj4gPj4gKysrIGIvZHJpdmVycy9tdGQv bmFuZC9yYXcvYnJjbW5hbmQvYmNtYmNhX25hbmQuYwo+ID4+IEBAIC0yNiw2ICsyNiwxOCBAQCBl bnVtIHsKPiA+PiAgIAlCQ01CQ0FfQ1RMUkRZCQk9IEJJVCg0KSwKPiA+PiAgIH07ICAKPiA+PiAg ID4+ICsjaWYgZGVmaW5lZChDT05GSUdfQVJNNjQpICAKPiA+PiArI2RlZmluZSBBTElHTl9SRVEJ CTgKPiA+PiArI2Vsc2UKPiA+PiArI2RlZmluZSBBTElHTl9SRVEJCTQKPiA+PiArI2VuZGlmCj4g Pj4gKwo+ID4+ICtzdGF0aWMgaW5saW5lIGJvb2wgYmNtYmNhX25hbmRfaXNfYnVmX2FsaWduZWQo dm9pZCAqZmxhc2hfY2FjaGUsICB2b2lkICpidWZmZXIpCj4gPj4gK3sKPiA+PiArCXJldHVybiBJ U19BTElHTkVEKCh1aW50cHRyX3QpYnVmZmVyLCBBTElHTl9SRVEpICYmCj4gPj4gKwkJCQlJU19B TElHTkVEKCh1aW50cHRyX3QpZmxhc2hfY2FjaGUsIEFMSUdOX1JFUSk7Cj4gPj4gK30KPiA+PiAr Cj4gPj4gICBzdGF0aWMgYm9vbCBiY21iY2FfbmFuZF9pbnRjX2FjayhzdHJ1Y3QgYnJjbW5hbmRf c29jICpzb2MpCj4gPj4gICB7Cj4gPj4gICAJc3RydWN0IGJjbWJjYV9uYW5kX3NvYyAqcHJpdiA9 Cj4gPj4gQEAgLTU2LDYgKzY4LDI5IEBAIHN0YXRpYyB2b2lkIGJjbWJjYV9uYW5kX2ludGNfc2V0 KHN0cnVjdCBicmNtbmFuZF9zb2MgKnNvYywgYm9vbCBlbikKPiA+PiAgIAlicmNtbmFuZF93cml0 ZWwodmFsLCBtbWlvKTsKPiA+PiAgIH0gIAo+ID4+ICAgPj4gK3N0YXRpYyB2b2lkIGJjbWJjYV9y ZWFkX2RhdGFfYnVzKHN0cnVjdCBicmNtbmFuZF9zb2MgKnNvYywgIAo+ID4+ICsJCQkJIHZvaWQg X19pb21lbSAqZmxhc2hfY2FjaGUsICB1MzIgKmJ1ZmZlciwKPiA+PiArCQkJCSBpbnQgZmNfd29y ZHMsIGJvb2wgaXNfcGFyYW0pCj4gPj4gK3sKPiA+PiArCWludCBpOwo+ID4+ICsKPiA+PiArCWlm ICghaXNfcGFyYW0pIHsKPiA+PiArCQkvKgo+ID4+ICsJCSAqIG1lbWNweSBjYW4gZG8gdW5hbGln bmVkIGFsaWduZWQgYWNjZXNzIGRlcGVuZGluZyBvbiBzb3VyY2UKPiA+PiArCQkgKiBhbmQgZGVz dCBhZGRyZXNzLCB3aGljaCBpcyBpbmNvbXBhdGlibGUgd2l0aCBuYW5kIGNhY2hlLiBGYWxsYmFj awo+ID4+ICsJCSAqIHRvIHRoZSBtZW1jcHkgZm9yIGlvIHZlcnNpb24KPiA+PiArCQkgKi8KPiA+ PiArCQlpZiAoYmNtYmNhX25hbmRfaXNfYnVmX2FsaWduZWQoZmxhc2hfY2FjaGUsIGJ1ZmZlcikp Cj4gPj4gKwkJCW1lbWNweSgodm9pZCAqKWJ1ZmZlciwgKHZvaWQgKilmbGFzaF9jYWNoZSwgZmNf d29yZHMgKiA0KTsKPiA+PiArCQllbHNlCj4gPj4gKwkJCW1lbWNweV9mcm9taW8oKHZvaWQgKili dWZmZXIsICh2b2lkICopZmxhc2hfY2FjaGUsIGZjX3dvcmRzICogNCk7Cj4gPj4gKwl9IGVsc2Ug ewo+ID4+ICsJCS8qIEZsYXNoIGNhY2hlIGhhcyBzYW1lIGVuZGlhbiBhcyB0aGUgaG9zdCBmb3Ig cGFyYW1ldGVyIHBhZ2VzICovCj4gPj4gKwkJZm9yIChpID0gMDsgaSA8IGZjX3dvcmRzOyBpKyss IGJ1ZmZlcisrKQo+ID4+ICsJCQkqYnVmZmVyID0gX19yYXdfcmVhZGwoZmxhc2hfY2FjaGUgKyBp ICogNCk7Cj4gPj4gKwl9Cj4gPj4gK30KPiA+PiArCj4gPj4gICBzdGF0aWMgaW50IGJjbWJjYV9u YW5kX3Byb2JlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gPj4gICB7Cj4gPj4gICAJ c3RydWN0IGRldmljZSAqZGV2ID0gJnBkZXYtPmRldjsKPiA+PiBAQCAtNzUsNiArMTEwLDcgQEAg c3RhdGljIGludCBiY21iY2FfbmFuZF9wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2 KSAgCj4gPj4gICA+PiAgIAlzb2MtPmN0bHJkeV9hY2sgPSBiY21iY2FfbmFuZF9pbnRjX2Fjazsg IAo+ID4+ICAgCXNvYy0+Y3RscmR5X3NldF9lbmFibGVkID0gYmNtYmNhX25hbmRfaW50Y19zZXQ7 Cj4gPj4gKwlzb2MtPnJlYWRfZGF0YV9idXMgPSBiY21iY2FfcmVhZF9kYXRhX2J1czsgIAo+ID4+ ICAgPj4gICAJcmV0dXJuIGJyY21uYW5kX3Byb2JlKHBkZXYsIHNvYyk7ICAKPiA+PiAgIH0KPiA+ PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tdGQvbmFuZC9yYXcvYnJjbW5hbmQvYnJjbW5hbmQuYyBi L2RyaXZlcnMvbXRkL25hbmQvcmF3L2JyY21uYW5kL2JyY21uYW5kLmMKPiA+PiBpbmRleCBkOTIw ZTg4YzdmNWIuLjY1NmJlNGQ3MzAxNiAxMDA2NDQKPiA+PiAtLS0gYS9kcml2ZXJzL210ZC9uYW5k L3Jhdy9icmNtbmFuZC9icmNtbmFuZC5jCj4gPj4gKysrIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcv YnJjbW5hbmQvYnJjbW5hbmQuYwo+ID4+IEBAIC04MTQsNiArODE0LDMwIEBAIHN0YXRpYyBpbmxp bmUgdTMyIGVkdV9yZWFkbChzdHJ1Y3QgYnJjbW5hbmRfY29udHJvbGxlciAqY3RybCwKPiA+PiAg IAlyZXR1cm4gYnJjbW5hbmRfcmVhZGwoY3RybC0+ZWR1X2Jhc2UgKyBvZmZzKTsKPiA+PiAgIH0g IAo+ID4+ICAgPj4gK3N0YXRpYyBpbmxpbmUgdm9pZCBicmNtbmFuZF9yZWFkX2RhdGFfYnVzKHN0 cnVjdCBicmNtbmFuZF9jb250cm9sbGVyICpjdHJsLCAgCj4gPj4gKwkJCQkJICAgdm9pZCBfX2lv bWVtICpmbGFzaF9jYWNoZSwgdTMyICpidWZmZXIsCj4gPj4gKwkJCQkJICAgaW50IGZjX3dvcmRz LCBib29sIGlzX3BhcmFtKSAgCj4gPiAKPiA+IEkgc3Ryb25nbHkgZGlzbGlrZSB0aGlzICJpc19w YXJhbSIgYm9vbGVhbi4KPiA+IAo+ID4gV2hlbiBpcyB0aGUgZGF0YSBpbiBob3N0IGVuZGlhbm5l c3M/IFdoZW4gaXMgaXQgbm90PyAgCj4gVGhpcyBpcyBsaXR0bGUgYml0IGNvbXBsaWNhdGVkLiAg V2UgaGF2ZSB0d28gdHlwZSBkYXRhIHJlYWQgZnJvbSBuYW5kIGNhY2hlLiBPbmUgZm9yIHBhZ2Ug cmVhZCBhbmQgdGhlIG90aGVyIGZvciBwYXJhbWV0ZXIgYW5kIG9uZmkgZGF0YSByZWFkIGZyb20g dGhlIGNvbnRyb2xsZXIgc2lkZS4gQnV0IGl0IGRlcGVuZHMgb24gaG93IFNvQyBpbnRlZ3JhdGUg dGhlIG5hbmQgY2FjaGUgdG8gc3lzdGVtLiBJbiBicm9hZGJhbmQgU29DLCBib3RoIHBhZ2UgYW5k IHBhcmFtZXRlciBkYXRhIGFyZSBpbiBob3N0IGVuZGlhbmVzcyBidXQgb3RoZXIgU29DcyBpcyBu b3QgdGhlIHNhbWUuCj4gCj4gSSBhbSBvcGVuIHRvIHN1Z2dlc3Rpb24gZm9yIGlzX3BhcmFtIGZ1 bmN0aW9uIGFyZ3VtZW50IGJ1dCB0byBmYWN0b3Igb3V0IHRoaXMgY29tbW9uIGNvZGUgaW4gbW9y ZSBzdHJ1Y3R1cmVkIHdheSwgSSBkb24ndCBzZWUgb3RoZXIgd2F5IGFyb3VuZC4KCkFscmlnaHQs IHNvIHRoaXMgaXMgU29DIGRlcGVuZGVudCwgdmVyeSB3ZWxsIC0+IGEgKHN1Yiljb21wYXRpYmxl IHBlcgpTb0MgKyBwbGF0Zm9ybSBkYXRhIGFzc29jaWF0ZWQgdG8gaXQgd2l0aCB0aGUgcmlnaHQg ZnVuY3Rpb24uCgo+ID4gSWYgd2UgdGhpbmsgYWJvdXQgYW4gZXhlY19vcCgpIGNvbnZlcnNpb24g YW5kIGRyb3AgY21kZnVuYygpLCB3aGF0Cj4gPiB3b3VsZCBiZSB0aGUgZGlzY3JpbWluYW50Pwo+ ID4gICAKPiBJZiB3ZSBuZWVkIHRvIGltcGxlbWVudCBleGVjX29wIGluIHRoZSBmdXR1cmUsICB0 aGUgZGF0YSBpcyBub3QgY29taW5nIGZyb20gbmFuZCBjYWNoZSBidXQgc29tZSBvdGhlciBsb3cg bGV2ZWwgZGF0YSByZWdpc3RlciB3aGljaCBtYXkgbm90IHN1YmplY3QgdG8gdGhlIGVuZGlhbmVz cyBpc3N1ZS4KCkNhbid0IHlvdSB1c2UgdGhlIHNhbWUgY2FjaGUgYWxsIHRoZSB0aW1lIGhlcmUg YXMgd2VsbCB0aGVuPyBBbmQgYXZvaWQKdGhlIG5lZWQgZm9yIHRoaXMgb3Zlcmx5IGNvbXBsZXgg bG9naWM/Cgo+IAo+ID4+ICt7Cj4gPj4gKwlzdHJ1Y3QgYnJjbW5hbmRfc29jICpzb2MgPSBjdHJs LT5zb2M7Cj4gPj4gKwlpbnQgaTsKPiA+PiArCj4gPj4gKwlpZiAoc29jLT5yZWFkX2RhdGFfYnVz KSB7Cj4gPj4gKwkJc29jLT5yZWFkX2RhdGFfYnVzKHNvYywgZmxhc2hfY2FjaGUsIGJ1ZmZlciwg ZmNfd29yZHMsIGlzX3BhcmFtKTsKPiA+PiArCX0gZWxzZSB7Cj4gPj4gKwkJaWYgKCFpc19wYXJh bSkgewo+ID4+ICsJCQlmb3IgKGkgPSAwOyBpIDwgZmNfd29yZHM7IGkrKywgYnVmZmVyKyspCj4g Pj4gKwkJCQkqYnVmZmVyID0gYnJjbW5hbmRfcmVhZF9mYyhjdHJsLCBpKTsKPiA+PiArCQl9IGVs c2Ugewo+ID4+ICsJCQlmb3IgKGkgPSAwOyBpIDwgZmNfd29yZHM7IGkrKykKPiA+PiArCQkJCS8q Cj4gPj4gKwkJCQkgKiBGbGFzaCBjYWNoZSBpcyBiaWcgZW5kaWFuIGZvciBwYXJhbWV0ZXIgcGFn ZXMsIGF0Cj4gPj4gKwkJCQkgKiBsZWFzdCBvbiBTVEIgU29Dcwo+ID4+ICsJCQkJICovCj4gPj4g KwkJCQlidWZmZXJbaV0gPSBiZTMyX3RvX2NwdShicmNtbmFuZF9yZWFkX2ZjKGN0cmwsIGkpKTsK PiA+PiArCQl9Cj4gPj4gKwl9Cj4gPj4gK30KPiA+PiArCj4gPj4gICBzdGF0aWMgdm9pZCBicmNt bmFuZF9jbGVhcl9lY2NfYWRkcihzdHJ1Y3QgYnJjbW5hbmRfY29udHJvbGxlciAqY3RybCkKPiA+ PiAgIHsgIAo+ID4+ICAgPj4gQEAgLTE4MTEsMjAgKzE4MzUsMTEgQEAgc3RhdGljIHZvaWQgYnJj bW5hbmRfY21kZnVuYyhzdHJ1Y3QgbmFuZF9jaGlwICpjaGlwLCB1bnNpZ25lZCBjb21tYW5kLCAg Cj4gPj4gICAJCQluYXRpdmVfY21kID09IENNRF9QQVJBTUVURVJfQ0hBTkdFX0NPTCkgewo+ID4+ ICAgCQkvKiBDb3B5IGZsYXNoIGNhY2hlIHdvcmQtd2lzZSAqLwo+ID4+ICAgCQl1MzIgKmZsYXNo X2NhY2hlID0gKHUzMiAqKWN0cmwtPmZsYXNoX2NhY2hlOwo+ID4+IC0JCWludCBpOyAgCj4gPj4g ICA+PiAgIAkJYnJjbW5hbmRfc29jX2RhdGFfYnVzX3ByZXBhcmUoY3RybC0+c29jLCB0cnVlKTsK PiA+PiAgID4+IC0JCS8qICAKPiA+PiAtCQkgKiBNdXN0IGNhY2hlIHRoZSBGTEFTSF9DQUNIRSBu b3csIHNpbmNlIGNoYW5nZXMgaW4KPiA+PiAtCQkgKiBTRUNUT1JfU0laRV8xSyBtYXkgaW52YWxp ZGF0ZSBpdAo+ID4+IC0JCSAqLwo+ID4+IC0JCWZvciAoaSA9IDA7IGkgPCBGQ19XT1JEUzsgaSsr KQo+ID4+IC0JCQkvKgo+ID4+IC0JCQkgKiBGbGFzaCBjYWNoZSBpcyBiaWcgZW5kaWFuIGZvciBw YXJhbWV0ZXIgcGFnZXMsIGF0Cj4gPj4gLQkJCSAqIGxlYXN0IG9uIFNUQiBTb0NzCj4gPj4gLQkJ CSAqLwo+ID4+IC0JCQlmbGFzaF9jYWNoZVtpXSA9IGJlMzJfdG9fY3B1KGJyY21uYW5kX3JlYWRf ZmMoY3RybCwgaSkpOwo+ID4+ICsJCWJyY21uYW5kX3JlYWRfZGF0YV9idXMoY3RybCwgY3RybC0+ bmFuZF9mYywgZmxhc2hfY2FjaGUsCj4gPj4gKwkJCQkgICBGQ19XT1JEUywgdHJ1ZSk7ICAKPiA+ PiAgID4+ICAgCQlicmNtbmFuZF9zb2NfZGF0YV9idXNfdW5wcmVwYXJlKGN0cmwtPnNvYywgdHJ1 ZSk7Cj4gPj4gICA+PiBAQCAtMjEzNyw3ICsyMTUyLDcgQEAgc3RhdGljIGludCBicmNtbmFuZF9y ZWFkX2J5X3BpbyhzdHJ1Y3QgbXRkX2luZm8gKm10ZCwgc3RydWN0IG5hbmRfY2hpcCAqY2hpcCwg IAo+ID4+ICAgewo+ID4+ICAgCXN0cnVjdCBicmNtbmFuZF9ob3N0ICpob3N0ID0gbmFuZF9nZXRf Y29udHJvbGxlcl9kYXRhKGNoaXApOwo+ID4+ICAgCXN0cnVjdCBicmNtbmFuZF9jb250cm9sbGVy ICpjdHJsID0gaG9zdC0+Y3RybDsKPiA+PiAtCWludCBpLCBqLCByZXQgPSAwOwo+ID4+ICsJaW50 IGksIHJldCA9IDA7ICAKPiA+PiAgID4+ICAgCWJyY21uYW5kX2NsZWFyX2VjY19hZGRyKGN0cmwp Owo+ID4+ICAgPj4gQEAgLTIxNTAsOCArMjE2NSw5IEBAIHN0YXRpYyBpbnQgYnJjbW5hbmRfcmVh ZF9ieV9waW8oc3RydWN0IG10ZF9pbmZvICptdGQsIHN0cnVjdCBuYW5kX2NoaXAgKmNoaXAsICAK PiA+PiAgIAkJaWYgKGxpa2VseShidWYpKSB7Cj4gPj4gICAJCQlicmNtbmFuZF9zb2NfZGF0YV9i dXNfcHJlcGFyZShjdHJsLT5zb2MsIGZhbHNlKTsgIAo+ID4+ICAgPj4gLQkJCWZvciAoaiA9IDA7 IGogPCBGQ19XT1JEUzsgaisrLCBidWYrKykgIAo+ID4+IC0JCQkJKmJ1ZiA9IGJyY21uYW5kX3Jl YWRfZmMoY3RybCwgaik7Cj4gPj4gKwkJCWJyY21uYW5kX3JlYWRfZGF0YV9idXMoY3RybCwgY3Ry bC0+bmFuZF9mYywgYnVmLAo+ID4+ICsJCQkJCUZDX1dPUkRTLCBmYWxzZSk7Cj4gPj4gKwkJCWJ1 ZiArPSBGQ19XT1JEUzsgIAo+ID4+ICAgPj4gICAJCQlicmNtbmFuZF9zb2NfZGF0YV9idXNfdW5w cmVwYXJlKGN0cmwtPnNvYywgZmFsc2UpOyAgCj4gPj4gICAJCX0KPiA+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9tdGQvbmFuZC9yYXcvYnJjbW5hbmQvYnJjbW5hbmQuaCBiL2RyaXZlcnMvbXRkL25h bmQvcmF3L2JyY21uYW5kL2JyY21uYW5kLmgKPiA+PiBpbmRleCBmMWY5M2Q4NWY1MGQuLjg4ODE5 YmMzOTVmOCAxMDA2NDQKPiA+PiAtLS0gYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9icmNtbmFuZC9i cmNtbmFuZC5oCj4gPj4gKysrIGIvZHJpdmVycy9tdGQvbmFuZC9yYXcvYnJjbW5hbmQvYnJjbW5h bmQuaAo+ID4+IEBAIC0yNCw2ICsyNCw4IEBAIHN0cnVjdCBicmNtbmFuZF9zb2Mgewo+ID4+ICAg CXZvaWQgKCpjdGxyZHlfc2V0X2VuYWJsZWQpKHN0cnVjdCBicmNtbmFuZF9zb2MgKnNvYywgYm9v bCBlbik7Cj4gPj4gICAJdm9pZCAoKnByZXBhcmVfZGF0YV9idXMpKHN0cnVjdCBicmNtbmFuZF9z b2MgKnNvYywgYm9vbCBwcmVwYXJlLAo+ID4+ICAgCQkJCSBib29sIGlzX3BhcmFtKTsKPiA+PiAr CXZvaWQgKCpyZWFkX2RhdGFfYnVzKShzdHJ1Y3QgYnJjbW5hbmRfc29jICpzb2MsIHZvaWQgX19p b21lbSAqZmxhc2hfY2FjaGUsCj4gPj4gKwkJCQkgdTMyICpidWZmZXIsIGludCBmY193b3Jkcywg Ym9vbCBpc19wYXJhbSk7Cj4gPj4gICAJY29uc3Qgc3RydWN0IGJyY21uYW5kX2lvX29wcyAqb3Bz Owo+ID4+ICAgfTsgIAo+ID4+ICAgPiA+ICAgCj4gPiBUaGFua3MsCj4gPiBNaXF1w6hsCj4gPiAg IAoKClRoYW5rcywKTWlxdcOobAoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGludXgtYXJtLWtlcm5l bEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQub3JnL21haWxtYW4v bGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo= 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 4780BC7EE25 for ; Thu, 8 Jun 2023 06:15:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234305AbjFHGPX (ORCPT ); Thu, 8 Jun 2023 02:15:23 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51290 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233170AbjFHGPT (ORCPT ); Thu, 8 Jun 2023 02:15:19 -0400 Received: from relay9-d.mail.gandi.net (relay9-d.mail.gandi.net [217.70.183.199]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1D551106 for ; Wed, 7 Jun 2023 23:15:17 -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=1686204916; 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=7t59aesvioWdyAbdyEBuOAeoddZ3/oqLnKZdNI13uCA=; b=lEZBhrZMIt4xSORfHBtP47kskrP8CzB4m/YFvTV5WYwLcgdrm+htCGKSX+jfM2KOHpx2gt Nr5ZNChNHi63Det4EvULCqlpe/GznOMQ8kjFGauHoqb6voGrQsLdqUn/8Zf6wEqv7OUgDP AOLHsCAP13zIGN5FtsoPHxrdNQVSgGfcP7JR4XgnYfyh1gJfdb8fXyQ/l0eV/Dqam76UBo hEk8WAAl7PJaRbqCXDJUal6xg3BAsOl/i20L3o3adAvk/hMpvpIw/uaDs+NfoZJsUBtCpY NLe9V7cy8nzKioGUGPYa5pgJLgvvdbNmzdqk4rZ4BMuJCcj8tjkP51IdROnDeA== 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 CFDDAFF80B; Thu, 8 Jun 2023 06:15:12 +0000 (UTC) Date: Thu, 8 Jun 2023 08:15:12 +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: <20230608081512.52fa07fb@xps-13> In-Reply-To: <11a7132c-7f10-ee47-0a23-d444ed29d980@broadcom.com> References: <20230606231252.94838-1-william.zhang@broadcom.com> <20230606231252.94838-11-william.zhang@broadcom.com> <20230607102056.5b1bfa5b@xps-13> <11a7132c-7f10-ee47-0a23-d444ed29d980@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 Wed, 7 Jun 2023 13:12:02 -0700: > Hi Miquel, >=20 > On 06/07/2023 01:20 AM, Miquel Raynal wrote: > > Hi William, > >=20 > > william.zhang@broadcom.com wrote on Tue, 6 Jun 2023 16:12:50 -0700: > > =20 > >> The BCMBCA broadband SoC integrates the NAND controller differently th= an > >> STB, iProc and other SoCs. It has different endianness for NAND cache > >> data and ONFI parameter data. > >> > >> Add a SoC read data bus shim for BCMBCA to meet the specific SoC need > >> 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, voi= d *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 brcmnand_so= c *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. Fallback > >> + * 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_device= *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/mtd/na= nd/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_contr= oller *ctrl, > >> return brcmnand_readl(ctrl->edu_base + offs); > >> } =20 > >> >> +static inline void brcmnand_read_data_bus(struct brcmnand_contro= ller *ctrl, =20 > >> + void __iomem *flash_cache, u32 *buffer, > >> + int fc_words, bool is_param) =20 > >=20 > > I strongly dislike this "is_param" boolean. > >=20 > > When is the data in host endianness? When is it not? =20 > This is little bit complicated. We have two type data read from nand cac= he. One for page read and the other for parameter and onfi data read from t= he controller side. But it depends on how SoC integrate the nand cache to s= ystem. In broadband SoC, both page and parameter data are in host endianess= but other SoCs is not the same. >=20 > I am open to suggestion for is_param function argument but to factor out = this common code in more structured way, I don't see other way around. Alright, so this is SoC dependent, very well -> a (sub)compatible per SoC + platform data associated to it with the right function. > > If we think about an exec_op() conversion and drop cmdfunc(), what > > would be the discriminant? > > =20 > If we need to implement exec_op in the future, the data is not coming fr= om nand cache but some other low level data register which may not subject = to the endianess issue. Can't you use the same cache all the time here as well then? And avoid the need for this overly complex logic? >=20 > >> +{ > >> + 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)); > >> + } > >> + } > >> +} > >> + > >> 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(struct 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(struct 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/mtd/na= nd/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 prepare, > >> bool is_param); > >> + void (*read_data_bus)(struct brcmnand_soc *soc, void __iomem *flash_= cache, > >> + u32 *buffer, int fc_words, bool is_param); > >> const struct brcmnand_io_ops *ops; > >> }; =20 > >> > > =20 > > Thanks, > > Miqu=C3=A8l > > =20 Thanks, Miqu=C3=A8l