Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752059AbdI2O3j (ORCPT ); Fri, 29 Sep 2017 10:29:39 -0400 Received: from mail.free-electrons.com ([62.4.15.54]:59047 "EHLO mail.free-electrons.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751224AbdI2O3h (ORCPT ); Fri, 29 Sep 2017 10:29:37 -0400 Date: Fri, 29 Sep 2017 16:29:35 +0200 From: Boris Brezillon To: Masahiro Yamada Cc: linux-mtd@lists.infradead.org, Cyrille Pitchen , Linux Kernel Mailing List , Marek Vasut , Brian Norris , Richard Weinberger , David Woodhouse Subject: Re: [PATCH v2 0/2] mtd: nand: wait for tWHR, and fix the setup_data_interface of Denali Message-ID: <20170929162935.597f4fb8@bbrezillon> In-Reply-To: References: <1506681520-13897-1-git-send-email-yamada.masahiro@socionext.com> <20170929142635.07d55f77@bbrezillon> X-Mailer: Claws Mail 3.14.1 (GTK+ 2.24.31; x86_64-pc-linux-gnu) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2712 Lines: 82 On Fri, 29 Sep 2017 23:06:42 +0900 Masahiro Yamada wrote: > 2017-09-29 21:26 GMT+09:00 Boris Brezillon : > > On Fri, 29 Sep 2017 19:38:38 +0900 > > Masahiro Yamada wrote: > > > >> 1/2 : add NAND_WAIT_TWHR and nand_whr_delay(). > >> You can set this new flag if you want nand_command(_lp) > >> to insert tWHR delay where needed. > >> > >> 2/2 : Fix Denali setup_data_interface. > >> Boris' suggestion in v1 was a good reminder that > >> made me realize tCCS was missing in the driver. Fix it now. > >> > >> > >> Changes in v2: > >> - Add nand_whr_delay() helper > >> Wait for tWHR only for drivers that explicitly set NAND_WAIT_TWHR flag > >> - newly added > >> > >> Masahiro Yamada (2): > >> mtd: nand: wait for tWHR after NAND_CMD_STATUS / NAND_CMD_READID > > > > Hm, I thought you were introducing this to then use it in the denali > > driver. Sorry, but I don't want to apply something that nobody needs. > > If someone ever complains about a missing delay I'll point him to your > > patch, but until then I'll keep the core unchanged. > > > At first, I thought this was necessary for me, > but I realized it was my misunderstanding. > > > Please let me explain one more. > > See commit 3158fa0e739615769cc047d2428f30f4c3b6640e. > > Prior to that commit, READID waited for #R/B transition, > it was wrong, so I fixed it. > > However, it dropped the delay completely. > If somebody was implicitly relying on the delay of chip->dev_ready, > the first byte might be read out before the valid data > is available. > > This was motivation of v1, where inserted ndelay(200) > unconditionally. Okay. Anyway, this extra delay is activated with an opt-in flag (I know, I'm the one who asked that), and noone set this flag in chip->options, so, if there's a bug, it's still here even after applying "mtd: nand: wait for tWHR after NAND_CMD_STATUS / NAND_CMD_READID". Honestly, I think all advanced controllers have the tWHR/tRHW timings enforced in the HW logic (configurable through a reg). This leaves basic controllers like the nand-gpio one, and even for these ones, the delay between the chip->cmd_ctrl(ADDR) and chip->read_buf() calls is probably long enough to hide the problem. Note that I'm absolutely not against this patch, it's just that I'd like to have a real user before merging this logic. > > > > > > >> mtd: nand: denali: fix setup_data_interface to meet tCCS delay > > > > This one is valid. I'll queue it to nand/next soon. > > If you drop 1/2, please let me do v3. > > V2 mentions NAND_WAIT_TWHR, this is strange. > Sure. > >