On Tue, 21 Aug 2018 10:44:54 +0000
Naga Sureshkumar Relli <nagas...@xilinx.com> wrote:

> Hi Miquel,
> 
> > -----Original Message-----
> > From: Miquel Raynal [mailto:miquel.ray...@bootlin.com]
> > Sent: Tuesday, August 21, 2018 3:23 PM
> > To: Naga Sureshkumar Relli <nagas...@xilinx.com>
> > Cc: Boris Brezillon <boris.brezil...@bootlin.com>; rich...@nod.at; 
> > dw...@infradead.org;
> > computersforpe...@gmail.com; marek.va...@gmail.com; 
> > kyungmin.p...@samsung.com;
> > abs...@codeaurora.org; peterpand...@micron.com; frieder.schre...@exceet.de; 
> > linux-
> > m...@lists.infradead.org; linux-kernel@vger.kernel.org; Michal Simek 
> > <mich...@xilinx.com>;
> > nagasureshkumarre...@gmail.com
> > Subject: Re: [LINUX PATCH v10 1/2] dt-bindings: mtd: arasan: Add device 
> > tree binding
> > documentation
> > 
> > Hi Naga,
> > 
> > Naga Sureshkumar Relli <nagas...@xilinx.com> wrote on Tue, 21 Aug 2018
> > 09:22:07 +0000:
> >   
> > > Hi Boris,
> > >  
> > > > -----Original Message-----
> > > > From: Boris Brezillon [mailto:boris.brezil...@bootlin.com]
> > > > Sent: Tuesday, August 21, 2018 11:30 AM
> > > > To: Naga Sureshkumar Relli <nagas...@xilinx.com>
> > > > Cc: miquel.ray...@bootlin.com; rich...@nod.at; dw...@infradead.org;
> > > > computersforpe...@gmail.com; marek.va...@gmail.com;
> > > > kyungmin.p...@samsung.com; abs...@codeaurora.org;
> > > > peterpand...@micron.com; frieder.schre...@exceet.de; linux-
> > > > m...@lists.infradead.org; linux-kernel@vger.kernel.org; Michal Simek
> > > > <mich...@xilinx.com>; nagasureshkumarre...@gmail.com
> > > > Subject: Re: [LINUX PATCH v10 1/2] dt-bindings: mtd: arasan: Add
> > > > device tree binding documentation
> > > >
> > > > On Tue, 21 Aug 2018 05:47:18 +0000
> > > > Naga Sureshkumar Relli <nagas...@xilinx.com> wrote:
> > > >  
> > > > > > > +Required properties:
> > > > > > > +- compatible:            Should be "xlnx,zynqmp-nand" or 
> > > > > > > "arasan,nfc-v3p10"  
> > > > > >
> > > > > > In your example it's not an "or" since both are defined.  
> > > > > In our previous discussion
> > > > > (https://lore.kernel.org/patchwork/patch/748901/)
> > > > > We decided to have compatible strings like " compatible =
> > > > > "<soc-vendor>,<ip-revision>",  
> > > > "arasan,<ip-revision>";"  
> > > > > So it should be either of these.
> > > > > so I will write something like below "Possible values are
> > > > > "xlnx,zynqmp-nand"
> > > > >                       "arasan,nfc-v3p10"
> > > > > And in example I will mention any one compatible.
> > > > > Is it ok?  
> > > >
> > > > Hm, why do you need arasan,nfc-v3p10 at all if it's supposed to be
> > > > overloaded by a soc specific compat?  
> > > Actually we put these compatible strings based on the comments on v7 
> > > series.
> > > Anyway I will just keep "xlnx,zynqmp-nand" as compatible.  
> > > >  
> > > > > > > +
> > > > > > > +Optional properties:
> > > > > > > +- arasan,has-mdma: Enables DMA support  
> > > > > >
> > > > > > Can't you detect that based on the compatible (or thanks to a
> > > > > > register). If it's something you choose when configuring the IP
> > > > > > and can't detect at  
> > > > runtime I guess it's fine.  
> > > > > There is no way to select DMA when configuring the IP.
> > > > > But it has internal DMA and there is a register to select PIO or
> > > > > DMA while starting a  
> > > > transfer.  
> > > > > So if user really don't want DMA, then we will never set DMA in
> > > > > the code based on DT  
> > > > property.
> > > >
> > > > If it's a purely SW choice, then is shouldn't be described in the DT.
> > > > You can use a module param, but I'm not even sure why one would want to 
> > > > disable DMA.  
> > > UBIFS doesn't work with DMA, hence we are using a DT property to operate 
> > > the driver in  
> > IO.  
> > > But as you pointed (use virt_is_valid()), with this we can switch our 
> > > driver to operate in  
> > PIO or DMA.  
> > > I will remove this from DT.  
> > 
> > I don't get why UBIFS would not work with DMA? This is a significant 
> > drawback.  
> UBIFS uses vmalloc'ed buffers whereas for DMA it should be DMA-able, i.e uses 
> physically contiguous memory.
> Hence we used a DT property to make it work in PIO mode.
> Some discussion happened in https://patchwork.kernel.org/patch/9675007/.
> But whatever I said above, is with older arasan_nand driver, now anyway we 
> have
> virt_addr_valid(). By checking this we can use DMA or PIO.
> This is the information I have, but I may be wrong.

My recommandation: set the NAND_USE_BOUNCE_BUFFER and always use DMA.

Reply via email to