[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <alpine.LFD.2.00.0910071221140.9428@localhost.localdomain>
Date: Wed, 7 Oct 2009 12:22:27 +0200 (CEST)
From: Thomas Gleixner <tglx@...utronix.de>
To: Uwe Kleine-König
<u.kleine-koenig@...gutronix.de>
cc: linux-kernel@...r.kernel.org, Russell King <rmk@....linux.org.uk>,
linux-rt-users@...r.kernel.org,
Sascha Hauer <s.hauer@...gutronix.de>
Subject: Re: Using set_irq_handler in set_irq_type callback?
On Wed, 7 Oct 2009, Uwe Kleine-König wrote:
> I think the fix for that is adding something like:
>
> if (type & IRQ_TYPE_EDGE_BOTH)
> set_irq_handler(irq, handle_edge_irq);
> else
> set_irq_handler(irq, handle_level_irq);
>
> to the chip's .set_type callback. (Doing this directly fails, as
> .set_type holds desc->lock which set_irq_handler acquires, too. So
> maybe I need to code up a handler that checks how a given irq triggers
> and then calls handle_edge_irq or handle_level_irq.)
Nope. See __set_irq_handler_unlocked()
Thanks,
tglx
Powered by blists - more mailing lists