On Sun, 3 May 2020 10:13:03 +0200 Boris Brezillon <boris.brezillon@xxxxxxxxxxxxx> wrote: > > > > > > > > I'm happy to test another patch, or add more tracing (I'm not at all > > > > familiar with NAND flashes or MTD for that matter, so I have little idea > > > > what to look for). > > > > > > I pushed a new version with extended traces. That should tell us what > > > those operations. > > > > Thank you. > > > > I moved the last debugging printk() right after the call to > > readl_poll_timeout(), otherwise we'd not be reaching it on errors. > > > > A quick grep for ret=-110 in the log reveals two kinds of errors: > > > > [ 15.046151] instr[0] = WAITRDY > > [ 15.065290] instr[1] = DATA_IN(len=2112) > > [ 16.085166] 2: ret=-110 status=80000000 wait=50000000 > > Ok, that's interesting. While the WAITRDY shouldn't be there, DATA-only > operations are allowed, and I'd expect at least a DMA_DONE event in > that case, but we get nothing. Maybe we should use DMA only if there's > at least one addr/cmd instruction. Or maybe the engine can't do > DATA-only operations. Or maybe length is actually 0 here, since my traces print instr->ctx.data.len instead of nand_subop_get_data_len(subop, i). > > > > > and > > > > [ 47.034418] instr[0] = WAITRDY > > [ 48.054781] 1: ret=-110 status=10000000 wait=c0000000 > > Yep, I don't expect operation to start with a WAITRDY, and this > situation is probably caused by this commit [1]. This commit is indeed introducing a regression (see the fix here [2]). That should work better now. > > > > > Full log here: > > https://people.freedesktop.org/~lkundrak/nand-raw-trace2.txt > > > > A log of your original patch, just in case the move of the logging > > statement was incorrect: > > https://people.freedesktop.org/~lkundrak/nand-raw-trace.txt > > > > Lubo > > [1]https://github.com/bbrezillon/linux/commit/30248fb955ba5e33a1863c8654f286b98c35d233 [2]https://github.com/bbrezillon/linux/commit/ec0460c61343a539889ab6298dd043d00717f19b ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/