2012-08-01 09:14:08

by Qiang Liu

[permalink] [raw]
Subject: [PATCH v5 2/6] fsl-dma: remove attribute DMA_INTERRUPT of dmaengine

From: Qiang Liu <[email protected]>

Delete attribute DMA_INTERRUPT because fsl-dma doesn't support this function,
exception will be thrown if talitos is used to offload xor at the same time.

Cc: Dan Williams <[email protected]>
Cc: Vinod Koul <[email protected]>
Cc: Li Yang <[email protected]>
Signed-off-by: Qiang Liu <[email protected]>
Acked-by: Ira W. Snyder <[email protected]>
---
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(struct dma_chan *dchan)
}

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 = to_fsl_chan(dchan);
-
- new = fsl_dma_alloc_descriptor(chan);
- if (!new) {
- chan_err(chan, "%s\n", msg_ld_oom);
- return NULL;
- }
-
- new->async_tx.cookie = -EBUSY;
- new->async_tx.flags = 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(struct platform_device *op)
fdev->irq = 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 = fsl_dma_alloc_chan_resources;
fdev->common.device_free_chan_resources = fsl_dma_free_chan_resources;
- fdev->common.device_prep_dma_interrupt = fsl_dma_prep_interrupt;
fdev->common.device_prep_dma_memcpy = fsl_dma_prep_memcpy;
fdev->common.device_prep_dma_sg = fsl_dma_prep_sg;
fdev->common.device_tx_status = fsl_tx_status;
--
1.7.5.1


2012-08-01 16:45:42

by Ira W. Snyder

[permalink] [raw]
Subject: Re: [PATCH v5 2/6] fsl-dma: remove attribute DMA_INTERRUPT of dmaengine

On Wed, Aug 01, 2012 at 04:49:08PM +0800, [email protected] wrote:
> From: Qiang Liu <[email protected]>
>
> Delete attribute DMA_INTERRUPT because fsl-dma doesn't support this function,
> exception will be thrown if talitos is used to offload xor at the same time.
>

I have no problem with this patch.

However, it ***WILL BREAK*** both drivers in drivers/misc/carma. Please
add my patch 7/7 titled "[PATCH 7/7] carma: remove unnecessary
DMA_INTERRUPT capability" to your series. I suggest placing it
immediately after this patch in your series.

The carma drivers use the fsldma driver exclusively.

> Cc: Dan Williams <[email protected]>
> Cc: Vinod Koul <[email protected]>
> Cc: Li Yang <[email protected]>
> Signed-off-by: Qiang Liu <[email protected]>
> Acked-by: Ira W. Snyder <[email protected]>
> ---
> 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(struct dma_chan *dchan)
> }
>
> 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 = to_fsl_chan(dchan);
> -
> - new = fsl_dma_alloc_descriptor(chan);
> - if (!new) {
> - chan_err(chan, "%s\n", msg_ld_oom);
> - return NULL;
> - }
> -
> - new->async_tx.cookie = -EBUSY;
> - new->async_tx.flags = 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(struct platform_device *op)
> fdev->irq = 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 = fsl_dma_alloc_chan_resources;
> fdev->common.device_free_chan_resources = fsl_dma_free_chan_resources;
> - fdev->common.device_prep_dma_interrupt = fsl_dma_prep_interrupt;
> fdev->common.device_prep_dma_memcpy = fsl_dma_prep_memcpy;
> fdev->common.device_prep_dma_sg = fsl_dma_prep_sg;
> fdev->common.device_tx_status = fsl_tx_status;
> --
> 1.7.5.1
>
>
> _______________________________________________
> Linuxppc-dev mailing list
> [email protected]
> https://lists.ozlabs.org/listinfo/linuxppc-dev

2012-08-02 04:52:30

by Liu Qiang-B32616

[permalink] [raw]
Subject: RE: [PATCH v5 2/6] fsl-dma: remove attribute DMA_INTERRUPT of dmaengine

> -----Original Message-----
> From: Ira W. Snyder [mailto:[email protected]]
> Sent: Thursday, August 02, 2012 12:36 AM
> To: Liu Qiang-B32616
> Cc: [email protected]; [email protected]; linux-
> [email protected]; [email protected]; Vinod Koul;
> [email protected]; Dan Williams; [email protected]
> Subject: Re: [PATCH v5 2/6] fsl-dma: remove attribute DMA_INTERRUPT of
> dmaengine
>
> On Wed, Aug 01, 2012 at 04:49:08PM +0800, [email protected] wrote:
> > From: Qiang Liu <[email protected]>
> >
> > Delete attribute DMA_INTERRUPT because fsl-dma doesn't support this
> > function, exception will be thrown if talitos is used to offload xor at
> the same time.
> >
>
> I have no problem with this patch.
>
> However, it ***WILL BREAK*** both drivers in drivers/misc/carma. Please
> add my patch 7/7 titled "[PATCH 7/7] carma: remove unnecessary
> DMA_INTERRUPT capability" to your series. I suggest placing it
> immediately after this patch in your series.
>
> The carma drivers use the fsldma driver exclusively.
Fine, thanks.

>
> > Cc: Dan Williams <[email protected]>
> > Cc: Vinod Koul <[email protected]>
> > Cc: Li Yang <[email protected]>
> > Signed-off-by: Qiang Liu <[email protected]>
> > Acked-by: Ira W. Snyder <[email protected]>
> > ---
> > 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(struct
> > dma_chan *dchan) }
> >
> > 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 = to_fsl_chan(dchan);
> > -
> > - new = fsl_dma_alloc_descriptor(chan);
> > - if (!new) {
> > - chan_err(chan, "%s\n", msg_ld_oom);
> > - return NULL;
> > - }
> > -
> > - new->async_tx.cookie = -EBUSY;
> > - new->async_tx.flags = 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(struct
> platform_device *op)
> > fdev->irq = 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 =
> fsl_dma_alloc_chan_resources;
> > fdev->common.device_free_chan_resources =
> fsl_dma_free_chan_resources;
> > - fdev->common.device_prep_dma_interrupt = fsl_dma_prep_interrupt;
> > fdev->common.device_prep_dma_memcpy = fsl_dma_prep_memcpy;
> > fdev->common.device_prep_dma_sg = fsl_dma_prep_sg;
> > fdev->common.device_tx_status = fsl_tx_status;
> > --
> > 1.7.5.1
> >
> >
> > _______________________________________________
> > Linuxppc-dev mailing list
> > [email protected]
> > https://lists.ozlabs.org/listinfo/linuxppc-dev