On Mon, Jul 31, 2017 at 07:14:10PM -0700, Dan Williams wrote:
> > static struct dma_async_tx_descriptor *
> > __ioat_prep_xor_lock(struct dma_chan *c, enum sum_check_flags *result,
> > diff --git a/include/linux/dmaengine.h b/include/linux/dmaengine.h
> > index 5336808..6202e7c 100644
> > --- a/include/linux/dmaengine.h
> > +++ b/include/linux/dmaengine.h
> > @@ -694,6 +694,8 @@ struct dma_filter {
> > * @device_prep_dma_memset: prepares a memset operation
> > * @device_prep_dma_memset_sg: prepares a memset operation over a scatter
> > list
> > * @device_prep_dma_interrupt: prepares an end of chain interrupt operation
> > + * @device_prep_dma_memcpy_to_sg: prepares memcpy from buffer to
> > scatterlist
> > + * @device_prep_dma_memcpy_from_sg: prepares memcpy from scatterlist to
> > buffer
> > * @device_prep_slave_sg: prepares a slave dma operation
> > * @device_prep_dma_cyclic: prepare a cyclic dma operation suitable for
> > audio.
> > * The function takes a buffer of size buf_len. The callback function
> > will
> > @@ -776,6 +778,14 @@ struct dma_device {
> > struct scatterlist *dst_sg, unsigned int dst_nents,
> > struct scatterlist *src_sg, unsigned int src_nents,
> > unsigned long flags);
> > + struct dma_async_tx_descriptor *(*device_prep_dma_memcpy_to_sg)(
> > + struct dma_chan *chan,
> > + struct scatterlist *dst_sg, unsigned int dst_nents,
> > + dma_addr_t src, unsigned long flags);
> > + struct dma_async_tx_descriptor *(*device_prep_dma_memcpy_from_sg)(
> > + struct dma_chan *chan, dma_addr_t dst,
> > + struct scatterlist *dst_sg, unsigned int dst_nents,
> > + unsigned long flags);
> >
> > struct dma_async_tx_descriptor *(*device_prep_slave_sg)(
> > struct dma_chan *chan, struct scatterlist *sgl,
> >
>
> Can we get away with just adding one new operation with a flag to
> indicate whether it is the 'to' or' 'from' sg case?
Yeah that would be better..
--
~Vinod
_______________________________________________
Linux-nvdimm mailing list
[email protected]
https://lists.01.org/mailman/listinfo/linux-nvdimm