From mboxrd@z Thu Jan 1 00:00:00 1970 From: Thomas Gleixner Subject: Re: Threaded interrupts for synaptic touchscreen in HTC dream Date: Wed, 22 Jul 2009 16:52:21 +0200 (CEST) Message-ID: References: <5d5443650907210530x4aaa03d6gd47ef5f79a3ef8a4@mail.gmail.com> <20090721124933.GA5668@rakim.wolfsonmicro.main> <20090721160436.GD4352@dtor-d630.eng.vmware.com> <20090721222547.GA1948@opensource.wolfsonmicro.com> <20090722121800.GD21171@rakim.wolfsonmicro.main> <1248269443.27058.1449.camel@twins> <20090722143211.GB29404@rakim.wolfsonmicro.main> Mime-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Return-path: In-Reply-To: <20090722143211.GB29404-HF5t3jzXg/6ND3a5+9QAFujbO/Zr0HzV@public.gmane.org> Sender: linux-i2c-owner-u79uwXL29TY76Z2rM5mHXA@public.gmane.org To: Mark Brown Cc: Peter Zijlstra , Dmitry Torokhov , Trilok Soni , Pavel Machek , Arve Hj?nnev?g , kernel list , Brian Swetland , linux-input-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Andrew Morton , linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, Joonyoung Shim , m.szyprowski-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org, t.fujak-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org, kyungmin.park-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org, David Brownell , Daniel Ribeiro List-Id: linux-i2c@vger.kernel.org On Wed, 22 Jul 2009, Mark Brown wrote: > On Wed, Jul 22, 2009 at 04:18:26PM +0200, Thomas Gleixner wrote: > > On Wed, 22 Jul 2009, Peter Zijlstra wrote: > > > > Also, how important is it that subhandler1..n run in their own thread? > > > That is, can't we let them run from the thread that is otherwise waiting > > > for the completino anyway? > > > In those cases I suspect we can do that. I guess there can be async > > handling as well: the main handler queries the pending interrupts, > > masks them, wakes the handlers and returns. No wait for all threads to > > finish necessary before unmasking the main interrupt line. > > The chips I'm deling with can certainly support doing that but I'm not > sure there'd be enormous advantages - a lot of the interrupt handlers > will either be trivial (eg, RTC ticks or alarms) or be serialised by a > need to interact with the chip anyway. I'd expect this to be generally > true, though ICBW. So in your case it would be possible to run the various subdevice thread_fn handlers from your main interrupt thread one after each other ? Well, that indeed makes it a candidate for a nested structure handling, where your main thread calls handle_nested_irq(irq) which simply runs the thread function of that nested interrupt while keeping the semantics vs. disable/enable ... intact. Thanks, tglx