RE: [PATCH v2 2/4] fsl-dma: remove attribute DMA_INTERRUPT of dmaengine
From: Liu Qiang-B32616 <hidden>
Date: 2012-07-12 02:33:14
Also in:
linux-crypto
-----Original Message----- From: Ira W. Snyder [mailto:iws@ovro.caltech.edu] Sent: Thursday, July 12, 2012 12:17 AM To: Liu Qiang-B32616 Cc: linux-crypto@vger.kernel.org; linuxppc-dev@lists.ozlabs.org; Vinod Koul; herbert@gondor.hengli.com.au; Dan Williams; davem@davemloft.net Subject: Re: [PATCH v2 2/4] fsl-dma: remove attribute DMA_INTERRUPT of dmaengine =20 On Wed, Jul 11, 2012 at 05:00:53PM +0800, Qiang Liu wrote:quoted
Delete attribute DMA_INTERRUPT because fsl-dma doesn't support thisfunction,quoted
exception will be thrown if talitos is used to offload xor at the sametime.quoted
=20 Both drivers/misc/carma/carma-fpga.c and drivers/misc/carma/carma-fpga-program.c expect the DMA_INTERRUPT property, though they do not use it. The mask is set for historical reasons. It is safe to delete the line "dma_cap_set(DMA_INTERRUPT, mask);" from both drivers. =20 I don't know which other drivers may expect this feature to be present. These are only the ones which I maintain.
The only place is in async_tx api which the feature is used. But it does no= t work fine as expected of DMA_INTERRUPT. In fsl-dma, it will raise a program error if source or destination address is zero.
=20 Other than that, you can add my: Acked-by: Ira W. Snyder <redacted>
Thanks.
=20quoted
Cc: Dan Williams <redacted> Cc: Vinod Koul <redacted> Cc: Li Yang <redacted> Signed-off-by: Qiang Liu <redacted> --- drivers/dma/fsldma.c | 31 ------------------------------- 1 files changed, 0 insertions(+), 31 deletions(-)diff --git a/drivers/dma/fsldma.c b/drivers/dma/fsldma.c index 8f84761..4f2f212 100644 --- a/drivers/dma/fsldma.c +++ b/drivers/dma/fsldma.c@@ -543,35 +543,6 @@ static void fsl_dma_free_chan_resources(structdma_chan *dchan)quoted
} static struct dma_async_tx_descriptor * -fsl_dma_prep_interrupt(struct dma_chan *dchan, unsigned long flags) -{ - struct fsldma_chan *chan; - struct fsl_desc_sw *new; - - if (!dchan) - return NULL; - - chan =3D to_fsl_chan(dchan); - - new =3D fsl_dma_alloc_descriptor(chan); - if (!new) { - chan_err(chan, "%s\n", msg_ld_oom); - return NULL; - } - - new->async_tx.cookie =3D -EBUSY; - new->async_tx.flags =3D flags; - - /* Insert the link descriptor to the LD ring */ - list_add_tail(&new->node, &new->tx_list); - - /* Set End-of-link to the last link descriptor of new list */ - set_ld_eol(chan, new); - - return &new->async_tx; -} - -static struct dma_async_tx_descriptor * fsl_dma_prep_memcpy(struct dma_chan *dchan, dma_addr_t dma_dst, dma_addr_t dma_src, size_t len, unsigned long flags)@@ -1352,12 +1323,10 @@ static int __devinit fsldma_of_probe(structplatform_device *op)quoted
fdev->irq =3D irq_of_parse_and_map(op->dev.of_node, 0); dma_cap_set(DMA_MEMCPY, fdev->common.cap_mask); - dma_cap_set(DMA_INTERRUPT, fdev->common.cap_mask); dma_cap_set(DMA_SG, fdev->common.cap_mask); dma_cap_set(DMA_SLAVE, fdev->common.cap_mask); fdev->common.device_alloc_chan_resources =3Dfsl_dma_alloc_chan_resources;quoted
fdev->common.device_free_chan_resources =3Dfsl_dma_free_chan_resources;quoted
- fdev->common.device_prep_dma_interrupt =3D fsl_dma_prep_interrupt; fdev->common.device_prep_dma_memcpy =3D fsl_dma_prep_memcpy; fdev->common.device_prep_dma_sg =3D fsl_dma_prep_sg; fdev->common.device_tx_status =3D fsl_tx_status; -- 1.7.5.1 _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev