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=-1.0 required=3.0 tests=DKIMWL_WL_HIGH,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_PASS, URIBL_BLOCKED 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 86DC4C169C4 for ; Fri, 8 Feb 2019 21:45:58 +0000 (UTC) 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 mail.kernel.org (Postfix) with ESMTPS id 55F0D21908 for ; Fri, 8 Feb 2019 21:45:58 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="l/C1TgZO" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 55F0D21908 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=bombadil.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=OqDmamwHeUnlNob1qX7RaykwOvk/bsWt+w9dLAkJ1C8=; b=l/C1TgZOgGHpOF TS9qiUWZ7R2mhp+ZGT5UgmL6y/2qJ1XDC0pEv31JeTY1Grg87u7mmFtcZlSTK7DfaH7nMSKpaRIIX uyA9qMXY7cqG8cr9gv2E2wr1qS+t+LRuRiC/aRfZTBjEBuKq2oMWLlSYuW3AS1S/y05dp27CoLQnl V14DmezfxKw86oe9Mp3EjzQfemKn7YNZ+RoKbNbbCPJ5TnWsQula+Imyutirpjk6ch5b//eobKban qXrAJt1Ia/u6BGZl6eydTZsDoPotfoqZO6G7EWxQ1sD+PYExB7GUOps2VI53ZU+Sra9tUhjsc87oN hIdJKEPu5Sg7VxeDRClA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.90_1 #2 (Red Hat Linux)) id 1gsDy7-0005zD-P5; Fri, 08 Feb 2019 21:45:55 +0000 Received: from relay1-d.mail.gandi.net ([217.70.183.193]) by bombadil.infradead.org with esmtps (Exim 4.90_1 #2 (Red Hat Linux)) id 1gsDy3-0005yT-Jc for linux-mtd@lists.infradead.org; Fri, 08 Feb 2019 21:45:53 +0000 X-Originating-IP: 91.224.148.103 Received: from xps13 (unknown [91.224.148.103]) (Authenticated sender: miquel.raynal@bootlin.com) by relay1-d.mail.gandi.net (Postfix) with ESMTPSA id 279CC240006; Fri, 8 Feb 2019 21:45:41 +0000 (UTC) Date: Fri, 8 Feb 2019 22:45:40 +0100 From: Miquel Raynal To: Masahiro Yamada Subject: Re: [PATCH] mtd: rawnand: call onfi_fill_data_interface() once again after nand_detect Message-ID: <20190208224540.7e5b628c@xps13> In-Reply-To: References: <1549533476-3742-1-git-send-email-yamada.masahiro@socionext.com> <20190207111606.6b72dc34@xps13> <20190207140136.2ae62982@xps13> Organization: Bootlin X-Mailer: Claws Mail 3.17.1 (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-20190208_134551_947169_691DA1FC X-CRM114-Status: GOOD ( 31.43 ) X-BeenThere: linux-mtd@lists.infradead.org X-Mailman-Version: 2.1.21 Precedence: list List-Id: Linux MTD discussion mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Boris Brezillon , Richard Weinberger , Linux Kernel Mailing List , Marek Vasut , linux-mtd , Brian Norris , David Woodhouse 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 SGkgTWFzYWhpcm8sCgpNYXNhaGlybyBZYW1hZGEgPHlhbWFkYS5tYXNhaGlyb0Bzb2Npb25leHQu Y29tPiB3cm90ZSBvbiBGcmksIDggRmViCjIwMTkgMTc6MzU6MzIgKzA5MDA6Cgo+IEhJIE1pcXVl bCwKPiAKPiBPbiBUaHUsIEZlYiA3LCAyMDE5IGF0IDEwOjAyIFBNIE1pcXVlbCBSYXluYWwgPG1p cXVlbC5yYXluYWxAYm9vdGxpbi5jb20+IHdyb3RlOgo+ID4KPiA+IEhpIE1hc2FoaXJvLAo+ID4K PiA+IE1hc2FoaXJvIFlhbWFkYSA8eWFtYWRhLm1hc2FoaXJvQHNvY2lvbmV4dC5jb20+IHdyb3Rl IG9uIFRodSwgNyBGZWIKPiA+IDIwMTkgMTk6NDY6NTQgKzA5MDA6Cj4gPiAgCj4gPiA+IE9uIFRo dSwgRmViIDcsIDIwMTkgYXQgNzoxNiBQTSBNaXF1ZWwgUmF5bmFsIDxtaXF1ZWwucmF5bmFsQGJv b3RsaW4uY29tPiB3cm90ZTogIAo+ID4gPiA+Cj4gPiA+ID4gSGkgTWFzYWhpcm8sCj4gPiA+ID4K PiA+ID4gPiBNYXNhaGlybyBZYW1hZGEgPHlhbWFkYS5tYXNhaGlyb0Bzb2Npb25leHQuY29tPiB3 cm90ZSBvbiBUaHUsICA3IEZlYgo+ID4gPiA+IDIwMTkgMTg6NTc6NTYgKzA5MDA6Cj4gPiA+ID4g IAo+ID4gPiA+ID4gbmFuZF9zY2FuX2lkZW50KCkgY2FsbHMgb25maV9maWxsX2RhdGFfaW50ZXJm YWNlKCkgYXQgaXRzIGVudHJ5Cj4gPiA+ID4gPiB0byBzZXQgdXAgdGhlIGluaXRpYWwgdGltaW5n IHBhcmFtZXRlcnMuCj4gPiA+ID4gPgo+ID4gPiA+ID4gVGhlIHRpbWluZyBwYXJhbWV0ZXJzIGFy ZSBuZWVkZWQgbm90IG9ubHkgZm9yIC0+c2V0dXBfZGF0YV9pbnRlcmZhY2UoKSwKPiA+ID4gPiA+ IGJ1dCBhbHNvIGZvciBnaXZpbmcgdGhlIGNvcnJlY3QgZGVsYXkgdG8gTkFORF9PUF9XQUlUX1JE WSwgZm9yIGV4YW1wbGUuCj4gPiA+ID4gPgo+ID4gPiA+ID4gSWYgdGhlIGRyaXZlciBzZXRzIHRo ZSBOQU5EX0tFRVBfVElNSU5HUyBmbGFnLCBvciBkb2VzIG5vdCBzdXBwb3J0ICAKPiA+ID4gPiA+ IC0+c2V0dXBfZGF0YV9pbnRlcmZhY2UoKSBob29rLCB0aG9zZSBwYXJhbWV0ZXJzIHdpbGwgbmV2 ZXIgdXBkYXRlZC4gIAo+ID4gPiA+Cj4gPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiBiZSAgCj4gPiA+Cj4gPiA+IFdpbGwg Zml4IChpZiB2MiBpcyB3ZWxjb21lKQo+ID4gPgo+ID4gPiAgCj4gPiA+ID4gPgo+ID4gPiA+ID4g QmVmb3JlIG5hbmRfZGV0ZWN0KCksIHdlIG5ldmVyIGtub3cgd2hldGhlciB0aGUgY2hpcCBpcyBP TkZpIG9yIG5vdC4KPiA+ID4gPiA+IFNvLCBvbmZpX2ZpbGxfZGF0YV9pbnRlcmZhY2UoKSBoYXMg dG8gYXNzdW1lIHRoZSB3b3JzdCBjYXNlLCBpLmUuCj4gPiA+ID4gPiBub24tT05GaS4gIAo+ID4g PiA+Cj4gPiA+ID4gcy9PTkZpL09ORkkvPyAgCj4gPiA+Cj4gPiA+IFdpbGwgZml4Lgo+ID4gPgo+ ID4gPiBMb29rcyBsaWtlIEkgd2FzIG1pc3VuZGVyc3RhbmRpbmcKPiA+ID4gbWF5YmUgYmVjYXVz ZSB0aGUgbGV0dGVyICdJJyBpbiB0aGUgbG9nbwo+ID4gPiAoaHR0cDovL3d3dy5vbmZpLm9yZy8p Cj4gPiA+IGxvb2tzIGxpa2UgYSBsb3dlcmNhc2UuLi4KPiA+ID4KPiA+ID4gIAo+ID4KPiA+IE9o IHJpZ2h0LiBJIGRvbid0IGtub3cgd2hhdCdzIGJlc3QuIFBpY2sgeW91ciBmYXZvcml0ZSA6KQo+ ID4gIAo+ID4gPgo+ID4gPiAgCj4gPiA+ID4gIAo+ID4gPiA+ID4KPiA+ID4gPiA+IEFmdGVyIG5h bmRfZGV0ZWN0KCksIGlmIHRoZSBjaGlwIHR1cm5zIG91dCB0byBiZSBPTkZpLWNvbXBsaWFudCwK PiA+ID4gPiA+IHdlIGNhbiBvcHRpbWl6ZSB0UFJPR19tYXgsIHRCRVJTX21heCwgZXRjLgo+ID4g PiA+ID4KPiA+ID4gPiA+IENhbGwgb25maV9maWxsX2RhdGFfaW50ZXJmYWNlKCkgb25jZSBhZ2Fp bi4gIAo+ID4gPiA+Cj4gPiA+ID4gU29ycnkgYnV0IEkgZG9uJ3QgZ2V0IHdoeSB0aGlzIGlzIG5l ZWRlZCBhcyB0aGVyZSBpcyB0aGUgc2FtZSBjYWxsIGF0Cj4gPiA+ID4gdGhlIHRvcCBvZiB0aGlz IGZ1bmN0aW9uLiBDYW4geW91IGJlIG1vcmUgc3BlY2lmaWMgb24gd2hlcmUvd2hlbiB0aGUKPiA+ ID4gPiBtaXNzaW5nIGNhbGwgcHJvZHVjZXMgYSBmYWlsdXJlPyAgCj4gPiA+Cj4gPiA+Cj4gPiA+ IG9uZmlfZmlsbF9kYXRhX2ludGVyZmFjZSgpIHNldHMgZGlmZmVyZW50IHZhbHVlcwo+ID4gPiBm b3IgdFBST0dfbWF4LCB0QkVSX21heCwgdFJfbWF4LCB0Q0NTX21pbgo+ID4gPiBkZXBlbmRpbmcg b24gd2hldGhlciB0aGUgY2hpcCBpcyBPTkZJIG9yIG5vdC4KPiA+ID4KPiA+ID4gRm9yIHRoZSBm aXJzdCBjYWxsLCBvbmZpX2ZpbGxfZGF0YV9pbnRlcmZhY2UoKQo+ID4gPiBjaG9vc2VzIHRoZSBl bHNlLXBhcnQgc2luY2Ugd2UgbmV2ZXIga25vdwo+ID4gPiB0aGUgY2hpcCBzcGVjaWZpY2F0aW9u IGF0IHRoaXMgcG9pbnQuCj4gPiA+Cj4gPiA+IElmIHdlIGNhbGwgb25maV9maWxsX2RhdGFfaW50 ZXJmYWNlKCkgb25jZSBhZ2Fpbgo+ID4gPiBhZnRlciBuYW5kX2RldGVjdCgpLCBpdCBtYXkgY2hv b3NlIHRoZSBpZi1wYXJ0Lgo+ID4gPgo+ID4gPgo+ID4gPiBJZiBhIGRyaXZlciBzdXBwb3J0cyAt PnNldHVwX2RhdGFfaW50ZXJmYWNlKCksCj4gPiA+IG5hbmRfaW5pdF9kYXRhX2ludGVyZmFjZSgp IHdpbGwgc2V0IHRoZSBvcHRpbWFsCj4gPiA+IHRpbWluZyBwYXJhbWV0ZXJzIGFueXdheS4KPiA+ ID4KPiA+ID4gQnV0LCBpZiBhIGRyaXZlciBkb2VzIG5vdCBzdXBwb3J0IC0+c2V0dXBfZGF0YV9p bnRlcmZhY2UoKSwKPiA+ID4gaXQgd2lsbCBub3QgaGFwcGVuIHNpbmNlIG5hbmRfaGFzX3NldHVw X2RhdGFfaWZhY2UoKSByZXR1cm5zIGZhbHNlLiAgCj4gPgo+ID4gQW5kIEkgdGhpbmsgdGhpcyBp cyB0aGUgZXhwZWN0ZWQgYmVoYXZpb3IuIENhbGxpbmcgYWdhaW4KPiA+IG9uZmlfZmlsbF9kYXRh X2ludGVyZmFjZSgpIHdvdWxkIHByb2JhYmx5IGVuaGFuY2UgYSBiaXQgdGhlIHRpbWluZ3MuCj4g PiBUaGUgZWZmZWN0IGlzIHRoYXQgbGF0ZXIgZXhjaGFuZ2VzIHdpdGggdGhlIE5BTkQgY2hpcCB3 b3VsZCBiZSBqdXN0IGEKPiA+IGJpdCBmYXN0ZXIuIEJ1dCBpZiB5b3UgY2FyZSBhYm91dCBwZXJm b3JtYW5jZSwgdGhlbiB3aHkgbm90IGltcGxlbWVudGluZyAgCj4gPiAtPnNldHVwX2RhdGFfaW50 ZXJmYWNlKCk/IEV2ZW4gYSBkdW1teSBpbXBsZW1lbnRhdGlvbiB3b3VsZCBkbyB0aGUgIAo+ID4g dHJpY2s6IG9ubHkgYWNjZXB0IHRpbWluZyBtb2RlIDAgd2l0aG91dCBhbnkgY2hhbmdlcyBvbiB0 aGUgY29udHJvbGxlcgo+ID4gc2lkZS4gIAo+IAo+IAo+IE15IGRyaXZlciAoZGVuYWxpKSBkb2Vz IGltcGxlbWVudCAtPnNldHVwX2RhdGFfaW50ZXJmYWNlKCkuCgpGb3J0dW5hdGVseSwgeWVzISA6 KQoKPiAKPiBXaGVuIEkgd2FzIHRlc3RpbmcgdGhpcyB0aG9yb3VnaGx5IG9uIG15IGJvYXJkLAo+ IEkgbm90aWNlZCB0aGUgdGltaW5nIHBhcmFtZXRlcnMgd2VyZSBzbGlnaHRseSBjaGFuZ2VkCj4g YWZ0ZXIgbmFuZF9kZXRlY3QoKSBkZXRlY3RlZCBPTkZJIGNoaXAuCgpJIHNlZS4KCj4gCj4gPiBV bmxlc3MgeW91IGdpdmUgbWUgYSB1c2UgY2FzZSB3aGVyZSB0aGlzIGlzIG5vdCBwb3NzaWJsZSwg SSBkb24ndCB0aGluawo+ID4gaXQgaXMgd29ydGggY2hhbmdpbmcgdGhpcyBwYXRoLiAgCj4gCj4g T25seSB0aGUgdXNlIGNhc2UgSSBjYW4gY29tZSB1cCB3aXRoIGlzIHdoZW4gTkFORF9LRUVQX1RJ TUlOR1Mgd2FzIHNldC4KPiBCdXQsIGl0IGlzIGp1c3QgYSBtYXR0ZXIgb2YgdGltZW91dCB2YWx1 ZXMuCj4gCj4gU28sIHBsZWFzZSB0aHJvdyBhd2F5IHRoaXMgcGF0Y2guCgpPayEKCgpUaGFua3Mg YW55d2F5IGZvciB0aGUgcHJvcG9zYWwhCk1pcXXDqGwKCl9fX19fX19fX19fX19fX19fX19fX19f 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 X-Spam-Level: X-Spam-Status: No, score=-1.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_PASS 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 884BDC169C4 for ; Fri, 8 Feb 2019 21:45:47 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 5B10221916 for ; Fri, 8 Feb 2019 21:45:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727441AbfBHVpp convert rfc822-to-8bit (ORCPT ); Fri, 8 Feb 2019 16:45:45 -0500 Received: from relay1-d.mail.gandi.net ([217.70.183.193]:55947 "EHLO relay1-d.mail.gandi.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727226AbfBHVpp (ORCPT ); Fri, 8 Feb 2019 16:45:45 -0500 X-Originating-IP: 91.224.148.103 Received: from xps13 (unknown [91.224.148.103]) (Authenticated sender: miquel.raynal@bootlin.com) by relay1-d.mail.gandi.net (Postfix) with ESMTPSA id 279CC240006; Fri, 8 Feb 2019 21:45:41 +0000 (UTC) Date: Fri, 8 Feb 2019 22:45:40 +0100 From: Miquel Raynal To: Masahiro Yamada Cc: Marek Vasut , Richard Weinberger , Boris Brezillon , Linux Kernel Mailing List , linux-mtd , Brian Norris , David Woodhouse Subject: Re: [PATCH] mtd: rawnand: call onfi_fill_data_interface() once again after nand_detect Message-ID: <20190208224540.7e5b628c@xps13> In-Reply-To: References: <1549533476-3742-1-git-send-email-yamada.masahiro@socionext.com> <20190207111606.6b72dc34@xps13> <20190207140136.2ae62982@xps13> Organization: Bootlin X-Mailer: Claws Mail 3.17.1 (GTK+ 2.24.32; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8BIT Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Masahiro, Masahiro Yamada wrote on Fri, 8 Feb 2019 17:35:32 +0900: > HI Miquel, > > On Thu, Feb 7, 2019 at 10:02 PM Miquel Raynal wrote: > > > > Hi Masahiro, > > > > Masahiro Yamada wrote on Thu, 7 Feb > > 2019 19:46:54 +0900: > > > > > On Thu, Feb 7, 2019 at 7:16 PM Miquel Raynal wrote: > > > > > > > > Hi Masahiro, > > > > > > > > Masahiro Yamada wrote on Thu, 7 Feb > > > > 2019 18:57:56 +0900: > > > > > > > > > nand_scan_ident() calls onfi_fill_data_interface() at its entry > > > > > to set up the initial timing parameters. > > > > > > > > > > The timing parameters are needed not only for ->setup_data_interface(), > > > > > but also for giving the correct delay to NAND_OP_WAIT_RDY, for example. > > > > > > > > > > If the driver sets the NAND_KEEP_TIMINGS flag, or does not support > > > > > ->setup_data_interface() hook, those parameters will never updated. > > > > > > > > ^ be > > > > > > Will fix (if v2 is welcome) > > > > > > > > > > > > > > > > Before nand_detect(), we never know whether the chip is ONFi or not. > > > > > So, onfi_fill_data_interface() has to assume the worst case, i.e. > > > > > non-ONFi. > > > > > > > > s/ONFi/ONFI/? > > > > > > Will fix. > > > > > > Looks like I was misunderstanding > > > maybe because the letter 'I' in the logo > > > (http://www.onfi.org/) > > > looks like a lowercase... > > > > > > > > > > Oh right. I don't know what's best. Pick your favorite :) > > > > > > > > > > > > > > > > > > > > > > After nand_detect(), if the chip turns out to be ONFi-compliant, > > > > > we can optimize tPROG_max, tBERS_max, etc. > > > > > > > > > > Call onfi_fill_data_interface() once again. > > > > > > > > Sorry but I don't get why this is needed as there is the same call at > > > > the top of this function. Can you be more specific on where/when the > > > > missing call produces a failure? > > > > > > > > > onfi_fill_data_interface() sets different values > > > for tPROG_max, tBER_max, tR_max, tCCS_min > > > depending on whether the chip is ONFI or not. > > > > > > For the first call, onfi_fill_data_interface() > > > chooses the else-part since we never know > > > the chip specification at this point. > > > > > > If we call onfi_fill_data_interface() once again > > > after nand_detect(), it may choose the if-part. > > > > > > > > > If a driver supports ->setup_data_interface(), > > > nand_init_data_interface() will set the optimal > > > timing parameters anyway. > > > > > > But, if a driver does not support ->setup_data_interface(), > > > it will not happen since nand_has_setup_data_iface() returns false. > > > > And I think this is the expected behavior. Calling again > > onfi_fill_data_interface() would probably enhance a bit the timings. > > The effect is that later exchanges with the NAND chip would be just a > > bit faster. But if you care about performance, then why not implementing > > ->setup_data_interface()? Even a dummy implementation would do the > > trick: only accept timing mode 0 without any changes on the controller > > side. > > > My driver (denali) does implement ->setup_data_interface(). Fortunately, yes! :) > > When I was testing this thoroughly on my board, > I noticed the timing parameters were slightly changed > after nand_detect() detected ONFI chip. I see. > > > Unless you give me a use case where this is not possible, I don't think > > it is worth changing this path. > > Only the use case I can come up with is when NAND_KEEP_TIMINGS was set. > But, it is just a matter of timeout values. > > So, please throw away this patch. Ok! Thanks anyway for the proposal! Miquèl