[PATCH v7 1/3] MTD : add the common code for GPMI-NFC controller driver
From: Russell King - ARM Linux <hidden>
Date: 2011-06-29 12:42:14
From: Russell King - ARM Linux <hidden>
Date: 2011-06-29 12:42:14
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?
Why not just request the interrupt once when the mxs-dma stuff probes, rather than requesting it every time a channel is allocated? The interrupt handler itself is written to process all channels on the device anyway, so you only need it registered once. Using IRQF_SHARED to register multiple identical handlers is just idiotic, and adding refcounting is needless complexity.