Re: [PATCH v2 0/2] mtd: nand: wait for tWHR, and fix the setup_data_interface of Denali

From: Masahiro Yamada
Date: Fri Sep 29 2017 - 10:07:34 EST


2017-09-29 21:26 GMT+09:00 Boris Brezillon <boris.brezillon@xxxxxxxxxxxxxxxxxx>:
> On Fri, 29 Sep 2017 19:38:38 +0900
> Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx> 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.





>> 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.



--
Best Regards
Masahiro Yamada