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 X-Spam-Level: X-Spam-Status: No, score=-15.8 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED, USER_AGENT_SANE_2 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 62C62C433E0 for ; Fri, 12 Feb 2021 08:20:43 +0000 (UTC) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id E064F64E6B for ; Fri, 12 Feb 2021 08:20:42 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org E064F64E6B Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=bootlin.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-mtd-bounces+linux-mtd=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: Content-Type:Cc:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To:Message-ID: Subject: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=J5tUaCy5wFppwUP2NFLWSxWhm3eLGp+BtxIoO2z8uiY=; b=gfZcz/vkIFhi0EaFwtMDtMlZQ jnIj4XsZneHgpblwvn/iD7+Gr+UGznCEVnZM0rCk9iS1zvySPMZAiHTk9jVNqXkq5qMOUajpV3jnM 9KGr3Urev/Ngz0IQSeYWtgxFR1nFQt7k60P7GjpgBfbyD9/nA4iOBP81LcseKVQ08fLpnfu745IXt Ndc1tChbDj+SmFlQaTzHYApF2c8BHroEtXmdNFDbp57YD5Fs8Kt3GkGBlAeNwiaey/6buaMs0NVs2 S2gHKvJmb5B4yT1b9YhRLUR9r7QUM2FTBxAuKz8FMV0N4/HLzVnBOFvDkC7liYrgMo/6lh7f/0ELj y3NmJkOmA==; Received: from localhost ([::1] helo=merlin.infradead.org) by merlin.infradead.org with esmtp (Exim 4.92.3 #3 (Red Hat Linux)) id 1lATgC-0003EA-0P; Fri, 12 Feb 2021 08:19:56 +0000 Received: from relay3-d.mail.gandi.net ([217.70.183.195]) by merlin.infradead.org with esmtps (Exim 4.92.3 #3 (Red Hat Linux)) id 1lATg8-0003De-KK for linux-mtd@lists.infradead.org; Fri, 12 Feb 2021 08:19:54 +0000 X-Originating-IP: 90.2.4.167 Received: from xps13 (aputeaux-654-1-105-167.w90-2.abo.wanadoo.fr [90.2.4.167]) (Authenticated sender: miquel.raynal@bootlin.com) by relay3-d.mail.gandi.net (Postfix) with ESMTPSA id 3D36A60010; Fri, 12 Feb 2021 08:19:46 +0000 (UTC) Date: Fri, 12 Feb 2021 09:19:45 +0100 From: Miquel Raynal To: mdalam@codeaurora.org Subject: Re: [PATCH V4] mtd: rawnand: qcom: update last code word register Message-ID: <20210212091945.304c2530@xps13> In-Reply-To: References: <1611869959-5109-1-git-send-email-mdalam@codeaurora.org> <20210210090144.GE19226@work> <20210211150759.506f3463@xps13> Organization: Bootlin X-Mailer: Claws Mail 3.17.4 (GTK+ 2.24.32; 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-20210212_031952_997532_88318A75 X-CRM114-Status: GOOD ( 30.98 ) X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: vigneshr@ti.com, linux-kernel@vger.kernel.org, boris.brezillon@collabora.com, linux-mtd@lists.infradead.org, Manivannan Sadhasivam , sricharan@codeaurora.org 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 SGVsbG8sCgptZGFsYW1AY29kZWF1cm9yYS5vcmcgd3JvdGUgb24gRnJpLCAxMiBGZWIgMjAyMSAw MTowMDo0NyArMDUzMDoKCj4gT24gMjAyMS0wMi0xMSAxOTozNywgTWlxdWVsIFJheW5hbCB3cm90 ZToKPiA+IEhlbGxvLAo+ID4gCj4gPiBNYW5pdmFubmFuIFNhZGhhc2l2YW0gPG1hbml2YW5uYW4u c2FkaGFzaXZhbUBsaW5hcm8ub3JnPiB3cm90ZSBvbiBXZWQsCj4gPiAxMCBGZWIgMjAyMSAxNDoz MTo0NCArMDUzMDoKPiA+ICAgCj4gPj4gT24gRnJpLCBKYW4gMjksIDIwMjEgYXQgMDM6MDk6MTlB TSArMDUzMCwgTWQgU2FkcmUgQWxhbSB3cm90ZTogIAo+ID4+ID4gRnJvbSBRUElDIHZlcnNpb24g Mi4wIG9ud2FyZHMgbmV3IHJlZ2lzdGVyIGdvdCBhZGRlZCB0bwo+ID4+ID4gcmVhZCBsYXN0IGNv ZGV3b3JkLiBUaGlzIGNoYW5nZSB3aWxsIGFkZCB0aGUgUkVBRF9MT0NBVElPTl9MQVNUX0NXX24K PiA+PiA+IHJlZ2lzdGVyLgo+ID4+ID4KPiA+PiA+IEZvciBmaXJzdCB0aHJlZSBjb2RlIHdvcmQg UkVBRF9MT0NBVElPTl9uIHJlZ2lzdGVyIHdpbGwgYmUKPiA+PiA+IHVzZS5Gb3IgbGFzdCBjb2Rl IHdvcmQgUkVBRF9MT0NBVElPTl9MQVNUX0NXX24gcmVnaXN0ZXIgd2lsbCBiZQo+ID4+ID4gdXNl LiAgCj4gPiAKPiA+IFNvcnJ5IGZvciB0aGUgbGF0ZSBub3RpY2UsIEkgdGhpbmsgdGhlIHBhdGNo IGlzIGZpbmUgYnV0IGlmIHlvdSBkb24ndAo+ID4gbWluZCBJIHdvdWxkIGxpa2UgdG8gcHJvcG9z ZSBhIHNtYWxsIGNoYW5nZSB0aGF0IHNob3VsZCBzaW1wbGlmeSB5b3VyCj4gPiBwYXRjaCBhIGxv dCwgc2VlIGJlbG93Lgo+ID4gICAKPiA+PiA+Cj4gPj4gPiBTaWduZWQtb2ZmLWJ5OiBNZCBTYWRy ZSBBbGFtIDxtZGFsYW1AY29kZWF1cm9yYS5vcmc+ICAKPiA+PiA+PiBSZXZpZXdlZC1ieTogTWFu aXZhbm5hbiBTYWRoYXNpdmFtIDxtYW5pdmFubmFuLnNhZGhhc2l2YW1AbGluYXJvLm9yZz4KPiA+ PiA+PiBUaGFua3MsICAKPiA+PiBNYW5pICAKPiA+PiA+PiA+IC0tLSAgCj4gPj4gPiBbVjRdCj4g Pj4gPiAgKiBNb2RpZmllZCBjb25kaXRpb24gZm9yIG5hbmRjX3NldF9yZWFkX2xvY19sYXN0KCkg aW4gcWNvbV9uYW5kY19yZWFkX2N3X3JhdygpLgo+ID4+ID4gICogQWRkZWQgb25lIGFkZGl0aW9u YWwgYXJndW1lbnQgImxhc3RfY3ciIHRvIHRoZSBmdW5jdGlvbiBjb25maWdfbmFuZF9jd19yZWFk KCkKPiA+PiA+ICAgIHRvIGhhbmRsZSBsYXN0IGNvZGUgd29yZCBjb25kaXRpb24uCj4gPj4gPiAg KiBDaGFuZ2VkIHRvdGFsIG51bWJlciBvZiBsYXN0IGNvZGUgd29yZCByZWdpc3RlciAiTkFORF9S RUFEX0xPQ0FUSU9OX0xBU1RfQ1dfMCIgdG8gNAo+ID4+ID4gICAgd2hpbGUgZG9pbmcgY29kZSB3 b3JkIGNvbmZpZ3VyYXRpb24uCj4gPj4gPiAgZHJpdmVycy9tdGQvbmFuZC9yYXcvcWNvbV9uYW5k Yy5jIHwgMTEwICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCj4gPj4gPiAg MSBmaWxlIGNoYW5nZWQsIDg0IGluc2VydGlvbnMoKyksIDI2IGRlbGV0aW9ucygtKQo+ID4+ID4K PiA+PiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9xY29tX25hbmRjLmMgYi9k cml2ZXJzL210ZC9uYW5kL3Jhdy9xY29tX25hbmRjLmMKPiA+PiA+IGluZGV4IDY2N2U0YmYuLjk0 ODRiZTggMTAwNjQ0Cj4gPj4gPiAtLS0gYS9kcml2ZXJzL210ZC9uYW5kL3Jhdy9xY29tX25hbmRj LmMKPiA+PiA+ICsrKyBiL2RyaXZlcnMvbXRkL25hbmQvcmF3L3Fjb21fbmFuZGMuYwo+ID4+ID4g QEAgLTQ4LDYgKzQ4LDEwIEBACj4gPj4gPiAgI2RlZmluZQlOQU5EX1JFQURfTE9DQVRJT05fMQkJ MHhmMjQKPiA+PiA+ICAjZGVmaW5lCU5BTkRfUkVBRF9MT0NBVElPTl8yCQkweGYyOAo+ID4+ID4g ICNkZWZpbmUJTkFORF9SRUFEX0xPQ0FUSU9OXzMJCTB4ZjJjCj4gPj4gPiArI2RlZmluZQlOQU5E X1JFQURfTE9DQVRJT05fTEFTVF9DV18wCTB4ZjQwCj4gPj4gPiArI2RlZmluZQlOQU5EX1JFQURf TE9DQVRJT05fTEFTVF9DV18xCTB4ZjQ0Cj4gPj4gPiArI2RlZmluZQlOQU5EX1JFQURfTE9DQVRJ T05fTEFTVF9DV18yCTB4ZjQ4Cj4gPj4gPiArI2RlZmluZQlOQU5EX1JFQURfTE9DQVRJT05fTEFT VF9DV18zCTB4ZjRjCj4gPj4gPgo+ID4+ID4gIC8qIGR1bW15IHJlZ2lzdGVyIG9mZnNldHMsIHVz ZWQgYnkgd3JpdGVfcmVnX2RtYSAqLwo+ID4+ID4gICNkZWZpbmUJTkFORF9ERVZfQ01EMV9SRVNU T1JFCQkweGRlYWQKPiA+PiA+IEBAIC0xODcsNiArMTkxLDEyIEBAIG5hbmRjX3NldF9yZWcobmFu ZGMsIE5BTkRfUkVBRF9MT0NBVElPTl8jI3JlZywJCQlcCj4gPj4gPiAgCSAgICAgICgoc2l6ZSkg PDwgUkVBRF9MT0NBVElPTl9TSVpFKSB8CQkJXAo+ID4+ID4gIAkgICAgICAoKGlzX2xhc3QpIDw8 IFJFQURfTE9DQVRJT05fTEFTVCkpCj4gPj4gPgo+ID4+ID4gKyNkZWZpbmUgbmFuZGNfc2V0X3Jl YWRfbG9jX2xhc3QobmFuZGMsIHJlZywgb2Zmc2V0LCBzaXplLCBpc19sYXN0KQlcCj4gPj4gPiAr bmFuZGNfc2V0X3JlZyhuYW5kYywgTkFORF9SRUFEX0xPQ0FUSU9OX0xBU1RfQ1dfIyNyZWcsCQkJ XAo+ID4+ID4gKwkgICAgICAoKG9mZnNldCkgPDwgUkVBRF9MT0NBVElPTl9PRkZTRVQpIHwJCVwK PiA+PiA+ICsJICAgICAgKChzaXplKSA8PCBSRUFEX0xPQ0FUSU9OX1NJWkUpIHwJCQlcCj4gPj4g PiArCSAgICAgICgoaXNfbGFzdCkgPDwgUkVBRF9MT0NBVElPTl9MQVNUKSkKPiA+PiA+ICsgIAo+ ID4gCj4gPiBZb3UgY291bGQgcmVuYW1lIHRoZSBtYWNybyBuYW5kY19zZXRfcmVhZF9sb2MoKSBp bnRvCj4gPiBuYW5kY19zZXRfcmVhZF9sb2NfZmlyc3QoKSBvciBhbnl0aGluZyBlbHNlIHRoYXQg bWFrZSBzZW5zZSwgdGhlbiBoYXZlCj4gPiBhIGhlbHBlciB3aGljaCBkb2VzOgo+ID4gCj4gPiBu YW5kY19zZXRfcmVhZF9sb2MoKQo+ID4gewo+ID4gCWlmIChjb25kaXRpb24gZm9yIGZpcnN0KQo+ ID4gCQlyZXR1cm4gbmFuZGNfc2V0X3JlYWRfbG9jX2ZpcnN0KCk7Cj4gPiAJZWxzZQo+ID4gCQly ZXR1cm4gbmFuZGNfc2V0X3JlYWRfbG9jX2xhc3QoKTsKPiA+IH0KPiA+ICAgCj4gCj4gICAgWWVz IHRoaXMgaXMgbW9yZSBwcmVjaXNlIHdheSAmIHNpbXBsaWZ5IHRoZSBwYXRjaCBhIGxvdC4KPiAg ICBCdXQgZm9yIHRoaXMgaSBoYXZlIHRvIGNoYW5nZSB0aGVzZSB0d28gbWFjcm8gYXMgYSBmdW5j dGlvbi4KPiAKPiAgICBuYW5kY19zZXRfcmVhZF9sb2MoKSAmIG5hbmRjX3NldF9yZWFkX2xvY19s YXN0KCkuCj4gCj4gICAgU2luY2UgZm9yIGxhc3QgY29kZSB3b3JkIHJlZ2lzdGVyIHdlIGFyZSB1 c2luZyBUb2tlbiBQYXN0aW5nIE9wZXJhdG9yIyMuCj4gCj4gICAgU28gaWYgaSBhbSBpbXBsZW1l bnRpbmcgbGlrZSB0aGUgYmVsb3cuCj4gCj4gICAgLyogaGVscGVyIHRvIGNvbmZpZ3VyZSBsb2Nh dGlvbiByZWdpc3RlciB2YWx1ZXMgKi8KPiAgICBzdGF0aWMgdm9pZCBuYW5kY19zZXRfcmVhZF9s b2Moc3RydWN0IHFjb21fbmFuZF9jb250cm9sbGVyICpuYW5kYywgaW50IHJlZywKPiAgICAgICAg ICAgICAgICAgICAgaW50IG9mZnNldCwgaW50IHNpemUsIGludCBpc19sYXN0LCBib29sIGxhc3Rf Y3cpCj4gICAgewo+ICAgICAgICAgICAgaWYgKGxhc3RfY3cpCj4gICAgICAgICAgICAgICAgICAg IHJldHVybiBuYW5kY19zZXRfcmVhZF9sb2NfbGFzdChuYW5kYywgcmVnLCBvZmZzZXQsIHNpemUs IGlzX2xhc3QpOwo+ICAgICAgICAgICAgZWxzZQo+ICAgICAgICAgICAgICAgICAgICByZXR1cm4g bmFuZGNfc2V0X3JlYWRfbG9jX2ZpcnN0KG5hbmRjLCByZWcsIG9mZnNldCwgc2l6ZSwgaXNfbGFz dCk7Cj4gICB9Cj4gCj4gICAgU28gaGVyZSBmb3IgbWFjcm8gZXhwYW5zaW9uIHJlZyBzaG91bGQg YmUgYSB2YWx1ZSBub3QgYSB2YXJpYWJsZSBlbHNlIGl0IHdpbGwgYmUgZXhwZW5kZWQgbGlrZQo+ ICAgIE5BTkRfUkVBRF9MT0NBVElPTl9MQVNUX0NXX3JlZyBpbnN0ZWFkIG9mIE5BTkRfUkVBRF9M T0NBVElPTl9MQVNUX0NXXzAsMSwyLDMgZXRjLgoKSSBrbm93IGl0IGludm9sdmVzIGEgbGl0dGxl IGJpdCBtb3JlIGNvbXB1dGF0aW9uIGJ1dCBJIHdvbmRlciBpZiB1c2luZwpmdW5jcyBpbnN0ZWFk IG9mIG1hY3JvcyBoZXJlIHdvdWxkIG5vdCBiZSBuaWNlcj8gUGVyaGFwcyBzb21ldGhpbmcgbGlr ZToKCglsb2MgPSBpc19sYXN0ID8gTkFORF9SRUFEX0xPQ0FUSU9OIC8qIDB4ZjIwICovIDogTkFO RF9SRUFEX0xPQ0FUSU9OX0xBU1QgLyogMHhmNDAgKi87Cglsb2MgKz0gcmVnICogMjsKCj4gICB0 aGUgY2FsbCBmb3IgbmFuZGNfc2V0X3JlYWRfbG9jKCkgYXMgbmFuZGNfc2V0X3JlYWRfbG9jKG5h bmRjLCAwLCByZWFkX2xvYywgZGF0YV9zaXplMSwgMCwgdHJ1ZSk7IC0tLT4gZm9yIGxhc3QgY29k ZSB3b3JkLgo+ICAgbmFuZGNfc2V0X3JlYWRfbG9jKG5hbmRjLCAwLCByZWFkX2xvYywgZGF0YV9z aXplMSwgMCwgZmFsc2UpOyAtLS0+IGZvciBmaXJzdCB0aHJlZSBjb2RlIHdyb2QuCgpJIHRoaW5r IGl0J3MgYmVzdCB0byBmb3J3YXJkICdjdycgYXMgYSBwYXJhbWV0ZXIgYW5kIGRvIHRoZQpjb21w dXRhdGlvbiBvZiBpc19sYXN0IGxvY2FsbHkuCgo+ICAgU28gaXMgdGhpcyBvayBmb3IgeW91IHRv IGNvbnZlcnQgdGhlc2UgdHdvIG1hY3JvIGludG8gZnVuY3Rpb24gPwo+IAo+ID4gQW5kIGluIHRo ZSByZXN0IG9mIHlvdXIgcGF0Y2ggeW91IHdvbid0IGhhdmUgdG8gdG91Y2ggYW55dGhpbmcgZWxz ZS4KPiA+IAo+ID4gVGhhbmtzLAo+ID4gTWlxdcOobCAgCgpUaGFua3MsCk1pcXXDqGwKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpMaW51eCBN VEQgZGlzY3Vzc2lvbiBtYWlsaW5nIGxpc3QKaHR0cDovL2xpc3RzLmluZnJhZGVhZC5vcmcvbWFp bG1hbi9saXN0aW5mby9saW51eC1tdGQvCg== 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 X-Spam-Level: X-Spam-Status: No, score=-15.2 required=3.0 tests=BAYES_00, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_SANE_2 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8E699C433E0 for ; Fri, 12 Feb 2021 08:21:02 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 5898A64E6C for ; Fri, 12 Feb 2021 08:21:02 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229653AbhBLIUq convert rfc822-to-8bit (ORCPT ); Fri, 12 Feb 2021 03:20:46 -0500 Received: from relay3-d.mail.gandi.net ([217.70.183.195]:35123 "EHLO relay3-d.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229469AbhBLIUh (ORCPT ); Fri, 12 Feb 2021 03:20:37 -0500 X-Originating-IP: 90.2.4.167 Received: from xps13 (aputeaux-654-1-105-167.w90-2.abo.wanadoo.fr [90.2.4.167]) (Authenticated sender: miquel.raynal@bootlin.com) by relay3-d.mail.gandi.net (Postfix) with ESMTPSA id 3D36A60010; Fri, 12 Feb 2021 08:19:46 +0000 (UTC) Date: Fri, 12 Feb 2021 09:19:45 +0100 From: Miquel Raynal To: mdalam@codeaurora.org Cc: Manivannan Sadhasivam , boris.brezillon@collabora.com, linux-mtd@lists.infradead.org, linux-kernel@vger.kernel.org, vigneshr@ti.com, sricharan@codeaurora.org Subject: Re: [PATCH V4] mtd: rawnand: qcom: update last code word register Message-ID: <20210212091945.304c2530@xps13> In-Reply-To: References: <1611869959-5109-1-git-send-email-mdalam@codeaurora.org> <20210210090144.GE19226@work> <20210211150759.506f3463@xps13> Organization: Bootlin X-Mailer: Claws Mail 3.17.4 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hello, mdalam@codeaurora.org wrote on Fri, 12 Feb 2021 01:00:47 +0530: > On 2021-02-11 19:37, Miquel Raynal wrote: > > Hello, > > > > Manivannan Sadhasivam wrote on Wed, > > 10 Feb 2021 14:31:44 +0530: > > > >> On Fri, Jan 29, 2021 at 03:09:19AM +0530, Md Sadre Alam wrote: > >> > From QPIC version 2.0 onwards new register got added to > >> > read last codeword. This change will add the READ_LOCATION_LAST_CW_n > >> > register. > >> > > >> > For first three code word READ_LOCATION_n register will be > >> > use.For last code word READ_LOCATION_LAST_CW_n register will be > >> > use. > > > > Sorry for the late notice, I think the patch is fine but if you don't > > mind I would like to propose a small change that should simplify your > > patch a lot, see below. > > > >> > > >> > Signed-off-by: Md Sadre Alam > >> >> Reviewed-by: Manivannan Sadhasivam > >> >> Thanks, > >> Mani > >> >> > --- > >> > [V4] > >> > * Modified condition for nandc_set_read_loc_last() in qcom_nandc_read_cw_raw(). > >> > * Added one additional argument "last_cw" to the function config_nand_cw_read() > >> > to handle last code word condition. > >> > * Changed total number of last code word register "NAND_READ_LOCATION_LAST_CW_0" to 4 > >> > while doing code word configuration. > >> > drivers/mtd/nand/raw/qcom_nandc.c | 110 +++++++++++++++++++++++++++++--------- > >> > 1 file changed, 84 insertions(+), 26 deletions(-) > >> > > >> > diff --git a/drivers/mtd/nand/raw/qcom_nandc.c b/drivers/mtd/nand/raw/qcom_nandc.c > >> > index 667e4bf..9484be8 100644 > >> > --- a/drivers/mtd/nand/raw/qcom_nandc.c > >> > +++ b/drivers/mtd/nand/raw/qcom_nandc.c > >> > @@ -48,6 +48,10 @@ > >> > #define NAND_READ_LOCATION_1 0xf24 > >> > #define NAND_READ_LOCATION_2 0xf28 > >> > #define NAND_READ_LOCATION_3 0xf2c > >> > +#define NAND_READ_LOCATION_LAST_CW_0 0xf40 > >> > +#define NAND_READ_LOCATION_LAST_CW_1 0xf44 > >> > +#define NAND_READ_LOCATION_LAST_CW_2 0xf48 > >> > +#define NAND_READ_LOCATION_LAST_CW_3 0xf4c > >> > > >> > /* dummy register offsets, used by write_reg_dma */ > >> > #define NAND_DEV_CMD1_RESTORE 0xdead > >> > @@ -187,6 +191,12 @@ nandc_set_reg(nandc, NAND_READ_LOCATION_##reg, \ > >> > ((size) << READ_LOCATION_SIZE) | \ > >> > ((is_last) << READ_LOCATION_LAST)) > >> > > >> > +#define nandc_set_read_loc_last(nandc, reg, offset, size, is_last) \ > >> > +nandc_set_reg(nandc, NAND_READ_LOCATION_LAST_CW_##reg, \ > >> > + ((offset) << READ_LOCATION_OFFSET) | \ > >> > + ((size) << READ_LOCATION_SIZE) | \ > >> > + ((is_last) << READ_LOCATION_LAST)) > >> > + > > > > You could rename the macro nandc_set_read_loc() into > > nandc_set_read_loc_first() or anything else that make sense, then have > > a helper which does: > > > > nandc_set_read_loc() > > { > > if (condition for first) > > return nandc_set_read_loc_first(); > > else > > return nandc_set_read_loc_last(); > > } > > > > Yes this is more precise way & simplify the patch a lot. > But for this i have to change these two macro as a function. > > nandc_set_read_loc() & nandc_set_read_loc_last(). > > Since for last code word register we are using Token Pasting Operator##. > > So if i am implementing like the below. > > /* helper to configure location register values */ > static void nandc_set_read_loc(struct qcom_nand_controller *nandc, int reg, > int offset, int size, int is_last, bool last_cw) > { > if (last_cw) > return nandc_set_read_loc_last(nandc, reg, offset, size, is_last); > else > return nandc_set_read_loc_first(nandc, reg, offset, size, is_last); > } > > So here for macro expansion reg should be a value not a variable else it will be expended like > NAND_READ_LOCATION_LAST_CW_reg instead of NAND_READ_LOCATION_LAST_CW_0,1,2,3 etc. I know it involves a little bit more computation but I wonder if using funcs instead of macros here would not be nicer? Perhaps something like: loc = is_last ? NAND_READ_LOCATION /* 0xf20 */ : NAND_READ_LOCATION_LAST /* 0xf40 */; loc += reg * 2; > the call for nandc_set_read_loc() as nandc_set_read_loc(nandc, 0, read_loc, data_size1, 0, true); ---> for last code word. > nandc_set_read_loc(nandc, 0, read_loc, data_size1, 0, false); ---> for first three code wrod. I think it's best to forward 'cw' as a parameter and do the computation of is_last locally. > So is this ok for you to convert these two macro into function ? > > > And in the rest of your patch you won't have to touch anything else. > > > > Thanks, > > Miquèl Thanks, Miquèl