Input: dm355evm_keys - remove dm355evm_keys_hardirq
The genirq already provides default hard IRQ handler for threaded IRQs, no need to implement our own here. Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
This commit is contained in:
parent
30b37131aa
commit
3b0a9ce0a6
1 changed files with 9 additions and 17 deletions
|
@ -96,7 +96,13 @@ static struct {
|
||||||
{ 0x3169, KEY_PAUSE, },
|
{ 0x3169, KEY_PAUSE, },
|
||||||
};
|
};
|
||||||
|
|
||||||
/* runs in an IRQ thread -- can (and will!) sleep */
|
/*
|
||||||
|
* Because we communicate with the MSP430 using I2C, and all I2C calls
|
||||||
|
* in Linux sleep, we use a threaded IRQ handler. The IRQ itself is
|
||||||
|
* active low, but we go through the GPIO controller so we can trigger
|
||||||
|
* on falling edges and not worry about enabling/disabling the IRQ in
|
||||||
|
* the keypress handling path.
|
||||||
|
*/
|
||||||
static irqreturn_t dm355evm_keys_irq(int irq, void *_keys)
|
static irqreturn_t dm355evm_keys_irq(int irq, void *_keys)
|
||||||
{
|
{
|
||||||
struct dm355evm_keys *keys = _keys;
|
struct dm355evm_keys *keys = _keys;
|
||||||
|
@ -171,18 +177,6 @@ static irqreturn_t dm355evm_keys_irq(int irq, void *_keys)
|
||||||
return IRQ_HANDLED;
|
return IRQ_HANDLED;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
* Because we communicate with the MSP430 using I2C, and all I2C calls
|
|
||||||
* in Linux sleep, we use a threaded IRQ handler. The IRQ itself is
|
|
||||||
* active low, but we go through the GPIO controller so we can trigger
|
|
||||||
* on falling edges and not worry about enabling/disabling the IRQ in
|
|
||||||
* the keypress handling path.
|
|
||||||
*/
|
|
||||||
static irqreturn_t dm355evm_keys_hardirq(int irq, void *_keys)
|
|
||||||
{
|
|
||||||
return IRQ_WAKE_THREAD;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int dm355evm_setkeycode(struct input_dev *dev, int index, int keycode)
|
static int dm355evm_setkeycode(struct input_dev *dev, int index, int keycode)
|
||||||
{
|
{
|
||||||
u16 old_keycode;
|
u16 old_keycode;
|
||||||
|
@ -257,10 +251,8 @@ static int __devinit dm355evm_keys_probe(struct platform_device *pdev)
|
||||||
|
|
||||||
/* REVISIT: flush the event queue? */
|
/* REVISIT: flush the event queue? */
|
||||||
|
|
||||||
status = request_threaded_irq(keys->irq,
|
status = request_threaded_irq(keys->irq, NULL, dm355evm_keys_irq,
|
||||||
dm355evm_keys_hardirq, dm355evm_keys_irq,
|
IRQF_TRIGGER_FALLING, dev_name(&pdev->dev), keys);
|
||||||
IRQF_TRIGGER_FALLING,
|
|
||||||
dev_name(&pdev->dev), keys);
|
|
||||||
if (status < 0)
|
if (status < 0)
|
||||||
goto fail1;
|
goto fail1;
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue