On 02/10/18 10:41, Boris Brezillon wrote: > On Mon, 1 Oct 2018 22:34:38 +0200 > Boris Brezillon <boris.brezillon@xxxxxxxxxxx> wrote: > >>> >>> I'd previously tried readl() based on the same hunch. No change. >>> >>> I think my snippet above might be misleading. While a delay between >>> readl_relaxed() and the if should not change the outcome, this is also a >>> delay between marvell_nfc_enable_int() and marvell_nfc_disable_int() >>> which is probably more significant. Sure enough if I move the delay to >>> just before the marvell_nfc_disable_int() the error is not seen. >> >> AFAICT, your timeout always happens when waiting for RDREQ, not RDYM. >> So maybe disabling MRDY too early has a side-effect on the RDREQ event. > > Can you try with this patch [1]? It should ensure that NDSR_RDY bits > are cleared before starting an operation. > > [1]http://code.bulix.org/lgs30c-468205 > No luck. I applied that on top of Daniel's and got the same result. One thing that does look promising is the following modification of Daniel's patch[1]. Which moves the RDY check to before where the interrupts are enabled. [1] - http://code.bulix.org/gc7a6d-468226 ______________________________________________________ Linux MTD discussion mailing list http://lists.infradead.org/mailman/listinfo/linux-mtd/