[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20090721205841.GA7755@dtor-d630.eng.vmware.com>
Date: Tue, 21 Jul 2009 13:58:41 -0700
From: Dmitry Torokhov <dmitry.torokhov@...il.com>
To: Thomas Gleixner <tglx@...utronix.de>
Cc: Mark Brown <broonie@...nsource.wolfsonmicro.com>,
Trilok Soni <soni.trilok@...il.com>,
Pavel Machek <pavel@....cz>, Arve Hj?nnev?g <arve@...roid.com>,
kernel list <linux-kernel@...r.kernel.org>,
Brian Swetland <swetland@...gle.com>,
linux-input@...r.kernel.org, Andrew Morton <akpm@...l.org>,
linux-i2c@...r.kernel.org,
Joonyoung Shim <jy0922.shim@...sung.com>,
m.szyprowski@...sung.com, t.fujak@...sung.com,
kyungmin.park@...sung.com, David Brownell <david-b@...bell.net>,
Peter Zijlstra <peterz@...radead.org>
Subject: Re: Threaded interrupts for synaptic touchscreen in HTC dream
On Tue, Jul 21, 2009 at 10:30:26PM +0200, Thomas Gleixner wrote:
> On Tue, 21 Jul 2009, Dmitry Torokhov wrote:
>
> > On Tue, Jul 21, 2009 at 01:49:33PM +0100, Mark Brown wrote:
> > > On Tue, Jul 21, 2009 at 06:00:07PM +0530, Trilok Soni wrote:
> > >
> > > > Hopefully, this thread can give all details about threaded irq discussion.
> > >
> > > > http://lkml.org/lkml/2009/2/27/255
> > >
> > > Yes, I'm aware of that - I read it at the time. It seemed to peter out
> > > without any satisfactory solution, unfortunately. There's two separate
> > > issues here:
> > >
> > > - Ordinary devices on interrupt driven or slow buses like I2C. These
> > > need something along the lines of request_threaded_irq() that's allows
> > > them to schedule the main IRQ handler outside hardirq context so
> > > that they can interact with the device. They need to do something in
> > > hardirq context to disable the interrupt if it's level triggered but
> > > most of the time the only option they've got is to disable the IRQ
> > > and reenable it when the worker thread is done. This is the issue
> > > here.
>
> There is already a sane solution to the problem:
>
> See http://lkml.org/lkml/2009/7/17/174
>
> > > My immediate thought when I noticed this was that we should probably
> > > fix request_threaded_irq() so that it's useful for them; I'd been
> > > intending to do some digging and try to understand why it is
> > > currently implemented as it is.
>
> What's to fix there ?
>
duisable_irq_nosync() in the hard interrupt handler stops the thread
handler from running. Unfortunately there are devices where it is the
only thing we can do in the hard interrupt.
--
Dmitry
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists