linux-fbdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Sascha Hauer <s.hauer@pengutronix.de>
To: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Cc: linux-kernel@vger.kernel.org,
	linux-fbdev-devel@lists.sourceforge.net, adaplas@gmail.com,
	linux-arm-kernel@lists.arm.linux.org.uk,
	Dan Williams <dan.j.williams@intel.com>,
	Geert Uytterhoeven <geert@linux-m68k.org>
Subject: Re: [PATCH 0/4 v6] i.MX31: dmaengine and framebuffer drivers
Date: Tue, 6 Jan 2009 11:19:29 +0100	[thread overview]
Message-ID: <20090106101929.GD18861@pengutronix.de> (raw)
In-Reply-To: <Pine.LNX.4.64.0901061021180.5393@axis700.grange>

On Tue, Jan 06, 2009 at 10:51:37AM +0100, Guennadi Liakhovetski wrote:
> 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:
> > > 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...

Can *please* anybody else say something to this issue to calm this down?
To make it easier for you please sign:

[ ] The code is fine the way it is. Sascha go home.
[ ] The code could be better, but hey, it works and the world is not
    perfect.
[ ] No, we shouldn't abuse chained interrupts for internal irq
    dispatching.

> 
> > 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.

That's one of the use cases for chained interrupts, yes.

> Or any of overflow interrupts?

The overflow interrupts are channel interrupts and should be handled by
the idmac code. Who else should know how to recover from a channel
overflow?

> 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.

Then I propose to change all drivers this way. I want to see how
many interrupts in my network driver I get for errors, tx and so on, 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.

Yes, I know, but it was their idea to treat the channel status bits as
interrupts, even if they invented their own API instead of using the
existing one.

Sascha

-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

  reply	other threads:[~2009-01-06 10:19 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-12-26 17:11 [PATCH 0/4 v6] i.MX31: dmaengine and framebuffer drivers Guennadi Liakhovetski
2008-12-26 17:11 ` [PATCH 1/4 v6] dmaengine: add async_tx_clear_ack() macro Guennadi Liakhovetski
2008-12-26 17:11 ` [PATCH 2/4 v6] i.MX31: Image Processing Unit DMA and IRQ drivers Guennadi Liakhovetski
2008-12-26 17:11 ` [PATCH 3/4 v6] i.MX31: framebuffer driver Guennadi Liakhovetski
2008-12-26 17:11 ` [PATCH 4/4 v6] i.MX31: platform bindings and initialisation for IPU and framebuffer drivers Guennadi Liakhovetski
2009-01-05 19:43 ` [PATCH 0/4 v6] i.MX31: dmaengine " Dan Williams
2009-01-05 21:02   ` Guennadi Liakhovetski
2009-01-05 21:35     ` Dan Williams
2009-01-16 10:09   ` Guennadi Liakhovetski
2009-01-16 17:39     ` Dan Williams
2009-01-06  9:04 ` Sascha Hauer
2009-01-06  9:51   ` Guennadi Liakhovetski
2009-01-06 10:19     ` Sascha Hauer [this message]
2009-01-06 13:20       ` Hans J. Koch
2009-01-08 11:15         ` [PATCH 2/4 v7] i.MX31: Image Processing Unit DMA and IRQ drivers Guennadi Liakhovetski
2009-01-08 10:50 ` [PATCH 0/4 v6] i.MX31: dmaengine and framebuffer drivers Sascha Hauer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20090106101929.GD18861@pengutronix.de \
    --to=s.hauer@pengutronix.de \
    --cc=adaplas@gmail.com \
    --cc=dan.j.williams@intel.com \
    --cc=g.liakhovetski@gmx.de \
    --cc=geert@linux-m68k.org \
    --cc=linux-arm-kernel@lists.arm.linux.org.uk \
    --cc=linux-fbdev-devel@lists.sourceforge.net \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).