All of lore.kernel.org
 help / color / mirror / Atom feed
From: Boris Brezillon <boris.brezillon@collabora.com>
To: Lubomir Rintel <lkundrak@v3.sk>
Cc: Richard Weinberger <richard@nod.at>,
	Tudor Ambarus <tudor.ambarus@microchip.com>,
	linux-mtd@lists.infradead.org,
	Vignesh Raghavendra <vigneshr@ti.com>,
	Miquel Raynal <miquel.raynal@bootlin.com>
Subject: Re: [PATCH v2 00/19] mtd: rawnand: cafe: Convert to exec_op() (and more)
Date: Mon, 18 May 2020 16:50:24 +0200	[thread overview]
Message-ID: <20200518165024.4122351d@collabora.com> (raw)
In-Reply-To: <20200517164709.GA1651421@furthur.local>

On Sun, 17 May 2020 18:47:09 +0200
Lubomir Rintel <lkundrak@v3.sk> wrote:

> On Sat, May 16, 2020 at 10:18:37PM +0200, Boris Brezillon wrote:
> > On Sat, 16 May 2020 21:08:57 +0200
> > Boris Brezillon <boris.brezillon@collabora.com> wrote:
> >   
> > > On Sat, 16 May 2020 16:56:50 +0200
> > > Lubomir Rintel <lkundrak@v3.sk> wrote:
> > >   
> > > > On Fri, May 15, 2020 at 09:25:43PM +0200, Lubomir Rintel wrote:    
> > > > > On Fri, May 15, 2020 at 04:47:07PM +0200, Lubomir Rintel wrote:      
> > > > > > On Wed, May 13, 2020 at 07:10:38PM +0200, Boris Brezillon wrote:      
> > > > > > > Hi Lubomir,
> > > > > > > 
> > > > > > > On Tue, 12 May 2020 18:40:57 +0200
> > > > > > > Lubomir Rintel <lkundrak@v3.sk> wrote:
> > > > > > >       
> > > > > > > > I don't really mind the patch; I was just not sure why you removed the
> > > > > > > > acks and re-set the mask and suspected that maybe it was not
> > > > > > > > intentional.
> > > > > > > > 
> > > > > > > > That said, I've now disabled the camera and mmc and did my usual test
> > > > > > > > of mounting the filesystem and I'm seeing zero interrupts.
> > > > > > > > 
> > > > > > > > I suppose it's safe to assume that contrary to what I was imagining,
> > > > > > > > the masking works well and the interrupts I was seeing are indeed from
> > > > > > > > elsewhere (I guess the MMC driver polling the controller or something).
> > > > > > > > 
> > > > > > > > Also, the re-set of the mask from the interrupt handler is not realy
> > > > > > > > necessary (but I certainly wouldn't complain if you keep it in place).      
> > > > > > > 
> > > > > > > I pushed a new version to my nand/cafe-nand-exec-op-debug branch. This
> > > > > > > time I get rid of the IRQ handler as it's not used anyway. Let me know
> > > > > > > if that keeps working an I'll send a v3.      
> > > > > > 
> > > > > > I can confirm that your branch (as of 12ef1918985f "mtd: rawnand: cafe: Get
> > > > > > rid of the last printk()") is working great here:
> > > > > > 
> > > > > >   bash-5.0# time mount -t jffs2 mtd0 /mnt
> > > > > >   jffs2: notice: (101) jffs2_build_xattr_subsystem: complete building xattr subsystem, 0 of xdatum (0 unchecked, 0 orphan) and 0 of xref (0 dead, 0 orphan) .
> > > > > >   
> > > > > >   real    0m7.319s
> > > > > >   user    0m0.000s
> > > > > >   sys     0m7.294s
> > > > > >   bash-5.0# uname -a
> > > > > >   Linux (none) 5.7.0-rc3-00097-g12ef1918985f #114 PREEMPT Fri May 15 16:35:01 CEST 2020 i586 GNU/Linux
> > > > > >   bash-5.0#       
> > > > > 
> > > > > Spoke too soon again. Seems like the writes don't make it to the device:
> > > > > 
> > > > >   bash-5.0# mount -t jffs2 /dev/mtdblock0 /mnt
> > > > >   jffs2: Empty flash at 0x045a5798 ends at 0x045a5800
> > > > >   jffs2: notice: (98) jffs2_build_xattr_subsystem: complete building xattr subsystem, 1 of xdatum (0 unchecked, 0 orphan) and 1 of xref (0 dead, 0 orphan) f.
> > > > >   bash-5.0# touch /mnt/meh
> > > > >   bash-5.0# sync 
> > > > >   jffs2: jffs2_flush_wbuf(): Write failed with -5
> > > > >   jffs2: jffs2_flush_wbuf(): Write failed with -5
> > > > >   jffs2: jffs2_flush_wbuf(): Write failed with -5
> > > > >   jffs2: jffs2_flush_wbuf(): Write failed with -5
> > > > >   bash-5.0# 
> > > > > 
> > > > > I'll follow up once I know more; with some traces or hopefully a fix.      
> > > > 
> > > > Hi again. Hope you're having a good weekend.
> > > > 
> > > > Some good news and some bad news. Good news is that now I got around to
> > > > building an image with mtd_debug and got around to making erase, write
> > > > adn read work, withut the hassle of dealing with jffs2 (and hassle of
> > > > dealing with corrupted image from eariler attempts).
> > > > 
> > > > The bad news is that I have very little idea about what I'm actually
> > > > doing. Here's the branch with changes I've done, with my notes in
> > > > the commit messages:
> > > > 
> > > >   git fetch git://git.kernel.org/pub/scm/linux/kernel/git/lkundrak/linux.git \
> > > >       lr/nand/cafe-nand-exec-op-debug
> > > > 
> > > > The relevant changes:
> > > > 
> > > >   6ee7e0d11e19 fixup! mtd: rawnand: cafe: Demistify register fields    
> > > 
> > > This one is valid.
> > >   
> > > >   565d5f126e86 fixup! mtd: rawnand: cafe: Demistify register fields    
> > > 
> > > Here it should be
> > > 
> > > #define CAFE_NAND_ECC_SYN_REG(x)		((((x) / 2) * 4) + 0x50)
> > > 
> > > but maybe the loop is no longer valid after that.
> > >   
> > > >   064d381b4615 fixup! mtd: rawnand: cafe: Demistify register fields    
> > > 
> > > This one looks good too.
> > >   
> > > > 
> > > >     During the test with JFFS2 filesystem, I was seeing a metric ton of ECC
> > > >     errors. I have no clue where they came from because they presumably happened
> > > >     on an asynchronous writeback, but they no longer happen and I believe
> > > >     some of the above was to blame. Unfortunely I didn't investigate
> > > >     further, because in my setup it is hugely inconvenient to beat the image
> > > >     back into shape.
> > > > 
> > > >   085a6ad43151 Revert "mtd: rawnand: cafe: Don't leave ECC enabled in the write path"
> > > > 
> > > >     This triggered a WARN_ON(). Probably not too important, because the
> > > >     code in question gets thrown out afterwards.    
> > > 
> > > Oops. Maybe I should move it after the exec_op() conversion then.
> > >   
> > > > 
> > > >   4a9d95bf6d6b fixup! mtd: rawnand: cafe: Add exec_op() support
> > > > 
> > > >     An straightforward fix for page write op.    
> > > 
> > > Yep, that one is valid, thanks for the fix.
> > >   
> > > > 
> > > >   6959a724994d XXX add address to CMD_STATUS
> > > > 
> > > >     Tricky, and I have no idea what's going on. Perhaps you'll have an
> > > >     idea how to either address this more reasonably. As usual, I'm happy
> > > >     to apply patches with extra tracing if necessary.    
> > > 
> > > Duh, that one is super weird. I wonder if it doesn't have to do with
> > > the fact we're using DMA. Can you try with the DMA disabled?  
> 
> Disabling DMA makes things work.

Okay, I pushed a new version doing DMA only where there's at least one
address cycle.

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

  parent reply	other threads:[~2020-05-18 14:50 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-05-05 10:13 [PATCH v2 00/19] mtd: rawnand: cafe: Convert to exec_op() (and more) Boris Brezillon
2020-05-05 10:13 ` [PATCH v2 01/19] mtd: rawnand: Propage CS selection to sub operations Boris Brezillon
2020-05-24 19:17   ` Miquel Raynal
2020-05-05 10:13 ` [PATCH v2 02/19] mtd: rawnand: cafe: Get rid of an inaccurate kernel doc header Boris Brezillon
2020-05-05 10:13 ` [PATCH v2 03/19] mtd: rawnand: cafe: Rename cafe_nand_write_page_lowlevel() Boris Brezillon
2020-05-05 10:13 ` [PATCH v2 04/19] mtd: rawnand: cafe: Use a correct ECC mode and pass the ECC alg Boris Brezillon
2020-05-05 10:13 ` [PATCH v2 05/19] mtd: rawnand: cafe: Include linux/io.h instead of asm/io.h Boris Brezillon
2020-05-05 10:13 ` [PATCH v2 06/19] mtd: rawnand: cafe: Demistify register fields Boris Brezillon
     [not found]   ` <20200506204638.GB207924@furthur.local>
2020-05-06 20:53     ` Boris Brezillon
2020-05-05 10:13 ` [PATCH v2 07/19] mtd: rawnand: cafe: Factor out the controller initialization logic Boris Brezillon
2020-05-10 21:49   ` Miquel Raynal
2020-05-05 10:13 ` [PATCH v2 08/19] mtd: rawnand: cafe: Get rid of the debug module param Boris Brezillon
2020-05-05 10:13 ` [PATCH v2 09/19] mtd: rawnand: cafe: Use devm_kzalloc and devm_request_irq() Boris Brezillon
2020-05-05 10:13 ` [PATCH v2 10/19] mtd: rawnand: cafe: Get rid of a useless label Boris Brezillon
2020-05-05 10:13 ` [PATCH v2 11/19] mtd: rawnand: cafe: Explicitly inherit from nand_controller Boris Brezillon
2020-05-05 10:13 ` [PATCH v2 12/19] mtd: rawnand: cafe: Don't leave ECC enabled in the write path Boris Brezillon
2020-05-05 10:13 ` [PATCH v2 13/19] mtd: rawnand: cafe: Don't split things when reading/writing a page Boris Brezillon
2020-05-10 21:49   ` Miquel Raynal
2020-05-05 10:13 ` [PATCH v2 14/19] mtd: rawnand: cafe: Add exec_op() support Boris Brezillon
2020-05-05 10:13 ` [PATCH v2 15/19] mtd: rawnand: cafe: Get rid of the legacy interface implementation Boris Brezillon
2020-05-05 10:13 ` [PATCH v2 16/19] mtd: rawnand: cafe: Adjust the cafe_{read, write}_buf() prototypes Boris Brezillon
2020-05-05 10:13 ` [PATCH v2 17/19] mtd: rawnand: cafe: s/uint{8,16,32}_t/u{8,16,32}/ Boris Brezillon
2020-05-05 10:13 ` [PATCH v2 18/19] mtd: rawnand: cafe: Drop the cafe_{readl, writel}() wrappers Boris Brezillon
2020-05-10 21:45   ` [PATCH v2 18/19] mtd: rawnand: cafe: Drop the cafe_{readl,writel}() wrappers Miquel Raynal
2020-05-05 10:13 ` [PATCH v2 19/19] mtd: rawnand: cafe: Get rid of the last printk() Boris Brezillon
2020-05-10 21:43   ` Miquel Raynal
     [not found] ` <20200505144639.GB1997@furthur.local>
     [not found]   ` <20200505220152.GA157445@furthur.local>
2020-05-06  6:32     ` [PATCH v2 00/19] mtd: rawnand: cafe: Convert to exec_op() (and more) Boris Brezillon
     [not found]       ` <20200506155359.GA183666@furthur.local>
2020-05-06 16:11         ` Boris Brezillon
     [not found]           ` <20200506203635.GA207924@furthur.local>
2020-05-06 20:58             ` Boris Brezillon
2020-05-06 21:35             ` Boris Brezillon
     [not found]               ` <20200507134708.GA303404@furthur.local>
2020-05-07 14:11                 ` Boris Brezillon
2020-05-07 20:12                 ` Boris Brezillon
     [not found]                   ` <20200509193440.GA524772@furthur.local>
2020-05-09 20:01                     ` Boris Brezillon
     [not found]                       ` <20200509202855.GB524772@furthur.local>
2020-05-10  6:31                         ` Boris Brezillon
2020-05-10  6:45                           ` Boris Brezillon
     [not found]                             ` <20200510072108.GA587379@furthur.local>
2020-05-10  7:35                               ` Boris Brezillon
2020-05-11  8:23                                 ` Boris Brezillon
     [not found]                                   ` <20200512164057.GC604838@furthur.local>
2020-05-12 19:50                                     ` Boris Brezillon
2020-05-13 17:10                                     ` Boris Brezillon
     [not found]                                       ` <20200515144703.GA1245784@furthur.local>
     [not found]                                         ` <20200515192540.GB1245784@furthur.local>
     [not found]                                           ` <20200516145650.GA1433661@furthur.local>
2020-05-16 19:08                                             ` Boris Brezillon
2020-05-16 20:18                                               ` Boris Brezillon
     [not found]                                                 ` <20200517164709.GA1651421@furthur.local>
2020-05-18 14:50                                                   ` Boris Brezillon [this message]
     [not found]                                                     ` <20200520072331.GJ1695525@furthur.local>
2020-05-20  7:55                                                       ` Boris Brezillon
     [not found]                                                         ` <20200524115246.GC2781@furthur.local>
2020-05-24 14:55                                                           ` Boris Brezillon
2020-05-24 15:05                                                             ` Boris Brezillon
2020-05-24 15:29                                                           ` Boris Brezillon

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=20200518165024.4122351d@collabora.com \
    --to=boris.brezillon@collabora.com \
    --cc=linux-mtd@lists.infradead.org \
    --cc=lkundrak@v3.sk \
    --cc=miquel.raynal@bootlin.com \
    --cc=richard@nod.at \
    --cc=tudor.ambarus@microchip.com \
    --cc=vigneshr@ti.com \
    /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.