Re: [BUG] mtd: cfi_cmdset_0002: write regression since v4.17-rc1
From: Tokunori Ikegami <hidden>
Date: 2022-03-08 16:41:13
Also in:
lkml, regressions
Hi, On 2022/03/09 1:23, Ahmad Fatoum wrote:
Hello Tokunori-san, On 08.03.22 17:13, Tokunori Ikegami wrote:quoted
Hi Ahmad-san, On 2022/03/08 18:44, Ahmad Fatoum wrote:quoted
Hello Tokunori, On 06.03.22 16:49, Tokunori Ikegami wrote:quoted
Hi, On 2022/03/04 20:11, Ahmad Fatoum wrote:quoted
Hello Tokunori-san, On 20.02.22 13:22, Tokunori Ikegami wrote:quoted
Hi Ahmad-san, Could you please try the version 2 patch attached for the error case? This version is to check the DQ true data 0xFF by chip_good().I had a similar patch locally as well at first. I just tested yours and I can't reproduce the issue.Thanks for your support. Sorry if possible could you please retest the attached the patch again since this fixed the version 1 patch maintainer review comments?Works good. Tested-by: Ahmad Fatoum <a.fatoum@pengutronix.de>Thank you so much for your test.quoted
quoted
quoted
quoted
But I am not sure if this works or not since the error is possible to be caused by Hi-Z 0xff on floating bus or etc.That it works for me could be because of Hi-Z 0xff, which is why decided against it.I see.quoted
quoted
quoted
quoted
quoted
quoted
What seems to work for me is checking if chip_good or chip_ready and map_word is equal to 0xFF. I can't justify why this is ok though. (Worst case bus is floating at this point of time and Hi-Z is read as 0xff on CPU data lines...)Sorry I am not sure about this. I thought the chip_ready() itself is correct as implemented as the data sheet in the past. But it did not work correctly so changed to use chip_good() instead as it is also correct.What exactly in the datasheet makes you believe chip_good is not appropriate?I just mentioned about the actual issue behaviors as not worked chip_good() on S29GL964N and not worked chip_ready() on MX29GL512FHT2I-11G before etc. Anyway let me recheck the data sheet details as just checked it again quickly but needed more investigation to understand.As far as I checked still both chip_good() and chip_ready() seem correct but still the root cause is unknown. If as you mentioned the issue was cased by the DQ true data 0xFF I am not sure why the read work without any error after the write operation. Also if the error was caused by the Hi-Z 0xff on floating bus as mentioned I am not sure why the read work without any error after the write operation with chip_ready(). Sorry anyway the root cause is also unknown when the write operation was changed to use chip_good() instead of chip_ready().I've be ok with v1 then. Restores working behavior for me and shouldn't break others.Noted but still I am thinking the version 2 patch to check 0xff seems better than to use chip_ready() so let me consider this again later.The original version has less room for surprise as it restores previously working behavior. Assuming 0xFF to be good without backing from documentation is more risky IMO.The change to check 0xFF can be limited for the S29GL064N chip do you have any comment about this?I see that, but I am not sure it's the correct thing to do on the S29GL064N, even if it seems to work. In absence of definitive information from the vendor, I'd prefer we just restore behavior as it was before, i.e. using chip_ready instead of chip_good for S29GL064N. This is the way of least surprise.
Thanks for your comment. I see okay I will keep the version patch 2 reverting to use chip_ready() for S29GL064N under the review without the change to check 0xFF. Regards, Ikegami
quoted
Just attached the patch changed as so and thinking to send the patch as version 3 to the maintainer if you are okay. Regards, Ikegamiquoted
Thanks for your continued support, Ahmadquoted
Regards, Ikegamiquoted
Cheers and thanks again, Ahmadquoted
Regards, Ikegamiquoted
Regards, Ikegamiquoted
Cheers, Ahmad