All of lore.kernel.org
 help / color / mirror / Atom feed
From: Boris Brezillon <boris.brezillon@bootlin.com>
To: Chris Packham <Chris.Packham@alliedtelesis.co.nz>
Cc: Daniel Mack <daniel@zonque.org>,
	Miquel Raynal <miquel.raynal@bootlin.com>,
	"linux-mtd@lists.infradead.org" <linux-mtd@lists.infradead.org>,
	"stable@vger.kernel.org" <stable@vger.kernel.org>
Subject: Re: [PATCH v2] mtd: rawnand: marvell: check for RDY bits after enabling the IRQ
Date: Tue, 2 Oct 2018 11:36:10 +0200	[thread overview]
Message-ID: <20181002113610.380abf9c@bbrezillon> (raw)
In-Reply-To: <b98170dbd30541d8aa5b51be7efe850d@svr-chch-ex1.atlnz.lc>

On Mon, 1 Oct 2018 22:15:28 +0000
Chris Packham <Chris.Packham@alliedtelesis.co.nz> wrote:

> On 02/10/18 11:13, Boris Brezillon wrote:
> > On Mon, 1 Oct 2018 22:01:27 +0000
> > Chris Packham <Chris.Packham@alliedtelesis.co.nz> wrote:
> >   
> >> On 02/10/18 10:41, Boris Brezillon wrote:  
> >>> On Mon, 1 Oct 2018 22:34:38 +0200
> >>> Boris Brezillon <boris.brezillon@bootlin.com> 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.  
> > 
> > Except we still don't know why this is happening, and I'm not sure I
> > want to take a fix without understanding why it does fix the problem.  
> 
> Agreed. My only guess is that there is some interrupt that is missed in 
> the short period they are disabled when calling complete().

Disabling interrupts when taking a spinlock means masking the IRQ line,
but the interrupt still exists and should be there when linux unmasks
the IRQ line. I don't think this is the problem we're chasing.

Looks more like something 

> 
> > Also, it looks like complete() is not called until the RDDREQ, WRDREQ
> > and WRCMDREQ are cleared in the interrupt handler [1], which is weird.
> > Miquel, do you happen to remember why you had to do that?
> > 
> > [1]https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/mtd/nand/raw/marvell_nand.c?h=v4.19-rc6#n689
> >   
> 

  reply	other threads:[~2018-10-02  9:36 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-27  7:17 [PATCH v2] mtd: rawnand: marvell: check for RDY bits after enabling the IRQ Daniel Mack
2018-09-27  8:11 ` Miquel Raynal
2018-09-27  8:56   ` Boris Brezillon
2018-09-27 21:55     ` Chris Packham
2018-09-28  6:40       ` Boris Brezillon
2018-09-28  6:56         ` Boris Brezillon
2018-09-28  8:12         ` Miquel Raynal
2018-09-28  7:43       ` Daniel Mack
2018-09-28  8:24         ` Miquel Raynal
2018-09-28  8:29           ` Daniel Mack
2018-09-30 21:10             ` Chris Packham
2018-10-01  5:31               ` Daniel Mack
2018-10-01 19:59                 ` Chris Packham
2018-10-01 20:34                   ` Boris Brezillon
2018-10-01 21:41                     ` Boris Brezillon
2018-10-01 22:01                       ` Chris Packham
2018-10-01 22:13                         ` Boris Brezillon
2018-10-01 22:15                           ` Chris Packham
2018-10-02  9:36                             ` Boris Brezillon [this message]
2018-10-02  9:37                               ` Boris Brezillon
2018-10-02  6:46                           ` Miquel Raynal
2018-10-02  7:25                             ` Miquel Raynal
2018-10-02  8:22                               ` Daniel Mack
2018-10-02 20:53                                 ` Chris Packham
2018-10-03  7:33                                   ` Miquel Raynal
2018-10-03  7:54                                     ` Daniel Mack
2018-10-01 22:44 ` Boris Brezillon
2018-10-02  7:42   ` Daniel Mack

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20181002113610.380abf9c@bbrezillon \
    --to=boris.brezillon@bootlin.com \
    --cc=Chris.Packham@alliedtelesis.co.nz \
    --cc=daniel@zonque.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=miquel.raynal@bootlin.com \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.