Thread (29 messages) 29 messages, 8 authors, 2011-07-13

[PATCH v7 1/3] MTD : add the common code for GPMI-NFC controller driver

STALE5560d

From: Shawn Guo <hidden>
Date: 2011-06-29 14:00:39
Subsystem: dma generic offload engine subsystem, the rest · Maintainers: Vinod Koul, Linus Torvalds

On Wed, Jun 29, 2011 at 02:29:42PM +0200, Wolfram Sang wrote:
quoted
quoted
Still, the problem exists: When a second channel GPMI channel is
requested, dmaengine will return -EBUSY, because the DMAIRQ is already
taken.
Yes, we should change the DMA code, it is a DMA bug.
I ever submitted a patch about the issue:
http://patchwork.ozlabs.org/patch/87145/
That approach was rejected because it would register the same handler
n-times where one time would do. Your other approach puts too much
mach-specific details into the driver IMO and probably won't scale very
well. Maybe we should add something to the private dma_data (like flags
indicating SHARED) and then do some refcounting?
I would suggest leave this gpmi specific quirk to gpmi driver to sort
out.  With the following mxs-dma change, it should work if gpmi driver
can pass the valid gpmi irq number for only one gpmi channel, and -1
for all others.
diff --git a/drivers/dma/mxs-dma.c b/drivers/dma/mxs-dma.c
index 88aad4f..ea27002 100644
--- a/drivers/dma/mxs-dma.c
+++ b/drivers/dma/mxs-dma.c
@@ -327,10 +327,12 @@ static int mxs_dma_alloc_chan_resources(struct dma_chan *chan)

        memset(mxs_chan->ccw, 0, PAGE_SIZE);

-       ret = request_irq(mxs_chan->chan_irq, mxs_dma_int_handler,
-                               0, "mxs-dma", mxs_dma);
-       if (ret)
-               goto err_irq;
+       if (mxs_chan->chan_irq >= 0) {
+               ret = request_irq(mxs_chan->chan_irq, mxs_dma_int_handler,
+                                       0, "mxs-dma", mxs_dma);
+               if (ret)
+                       goto err_irq;
+       }

        ret = clk_enable(mxs_dma->clk);
        if (ret)
-- 
Regards,
Shawn
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help