RE: [PATCH -next 3/8] dmaengine: xilinx_dma: Introduce xilinx_dma_get_residue
From: Radhey Shyam Pandey
Date: Tue Oct 01 2019 - 08:03:54 EST
> -----Original Message-----
> From: Radhey Shyam Pandey
> Sent: Friday, September 27, 2019 10:46 AM
> To: Vinod Koul <vkoul@xxxxxxxxxx>
> Cc: dan.j.williams@xxxxxxxxx; Michal Simek <michals@xxxxxxxxxx>;
> nick.graumann@xxxxxxxxx; andrea.merello@xxxxxxxxx; Appana Durga
> Kedareswara Rao <appanad@xxxxxxxxxx>; mcgrof@xxxxxxxxxx;
> dmaengine@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> Subject: RE: [PATCH -next 3/8] dmaengine: xilinx_dma: Introduce
> xilinx_dma_get_residue
>
> > -----Original Message-----
> > From: Vinod Koul <vkoul@xxxxxxxxxx>
> > Sent: Thursday, September 26, 2019 10:48 PM
> > To: Radhey Shyam Pandey <radheys@xxxxxxxxxx>
> > Cc: dan.j.williams@xxxxxxxxx; Michal Simek <michals@xxxxxxxxxx>;
> > nick.graumann@xxxxxxxxx; andrea.merello@xxxxxxxxx; Appana Durga
> > Kedareswara Rao <appanad@xxxxxxxxxx>; mcgrof@xxxxxxxxxx;
> > dmaengine@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> > Subject: Re: [PATCH -next 3/8] dmaengine: xilinx_dma: Introduce
> > xilinx_dma_get_residue
> >
> > On 26-09-19, 05:52, Radhey Shyam Pandey wrote:
> >
> > > > > + * VDMA and simple mode do not support residue reporting,
> so the
> > > > > + * residue field will always be 0.
> > > > > + */
> > > > > + if (chan->xdev->dma_config->dmatype ==
> XDMA_TYPE_VDMA ||
> > > > !chan->has_sg)
> > > > > + return residue;
> > > >
> > > > why not check this in status callback?
> > > Assuming we mean to move vdma and non-sg check to
> > xilinx_dma_tx_status.
> > > Just a thought- Keeping this check in xilinx_dma_get_residue
> > > provides an abstraction and caller can simply call this func with
> > > knowing about IP config specific residue calculation. Considering
> > > this point does it looks ok ?
> >
> > well you are checking either way, so calling the lower level function
> > only when you need it makes more sense!
>
> Sure, will do it in v2.
Just noticed that xilinx_dma_get_residue() is called at the multiple
places i.e one in device_tx_status and other in _complete_descriptor.
To avoid code duplication, I will create a helper function to check
if residue calculation is supported.
> >
> > --
> > ~Vinod