Thread (16 messages) 16 messages, 4 authors, 2009-01-16

Re: [PATCH 0/4 v6] i.MX31: dmaengine and framebuffer drivers

From: Guennadi Liakhovetski <hidden>
Date: 2009-01-06 09:51:45
Also in: lkml

Hi Sascha

On Tue, 6 Jan 2009, Sascha Hauer wrote:
Hi Guennadi,

On Fri, Dec 26, 2008 at 06:11:13PM +0100, Guennadi Liakhovetski wrote:
quoted
Hi,

This is version 6 of dmaengine and framebuffer drivers for i.MX31.

Changes since version 5: as requested by Sascha Hauer switched to dynamic 
IPU IRQ mapping.
I tried to express that it's really odd that you demux your _internal_
interrupts as chained handlers.
Your last comment was:
Preferably a way which does not involve introducing 100+ unused
interrupts.
which I have done. Now we're back to demux / not demux...
Consider a network driver which has a
rx, tx and an error status bit, all of them can trigger an interrupt. A
you aware of a single driver that uses chained interrupts for this
case?
No, they don't have to, because all this happens inside one driver
and this can easily be dispatched in one interrupt handler. IMHO chained
interrupts only make sense when you have an interrupt source which
leaves your driver code and you don't know who might be interested in,
like the assorted non channel interrupts the IPU also provides.

I bet you'd never have the idea for such a code design without the
Freescale code as a sample.
Think about other IPU interrupts. For now I removed the CSI interrupt, but 
it may well be needed at some point. Or any of overflow interrupts? What 
do we do then? Why shall we build in limitations from the beginning, when 
there is an implementation already there, which doesn't have them? Sorry, 
do not understand.

I know you proposed to dispatch all DMA EOF interrupts to one IRQ number 
and (optionally / as required) others to single IRQs. But I like to see 
single DMA sources as separate entries in /proc/interrupts, even if only 
for debugging.

And no, it is not thanks to Freescals code, that I'm doing that, it's more 
contrary to their code - they do not implement an irq_chip API and instead 
add an API of their own.
Note that arch/arm/plat-mxc/include/mach/mx31.h does not apply anymore
due to upstream changes.
If we agree on the rest, I'll submit a v7 - updating mx31.h to its current 
state and fixing Kconfig / NR_IRQS.

Thanks
Guennadi
---
Guennadi Liakhovetski, Ph.D.
Freelance Open-Source Software Developer
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help