aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/input/keyboard/sh_keysc.c
diff options
context:
space:
mode:
authorMagnus Damm <damm@opensource.se>2011-04-28 09:34:32 -0700
committerDmitry Torokhov <dmitry.torokhov@gmail.com>2011-04-28 09:36:48 -0700
commit2dfb9a85ecb86f00b085d6fca7d4bb8dc6764710 (patch)
tree70faa39293e4c02d4baf9951c0f9d83a35e88b2b /drivers/input/keyboard/sh_keysc.c
parentb6d2a3e6ff6a7019b4a240b6bc4a4d74ce82d533 (diff)
downloadkernel_samsung_smdk4412-2dfb9a85ecb86f00b085d6fca7d4bb8dc6764710.tar.gz
kernel_samsung_smdk4412-2dfb9a85ecb86f00b085d6fca7d4bb8dc6764710.tar.bz2
kernel_samsung_smdk4412-2dfb9a85ecb86f00b085d6fca7d4bb8dc6764710.zip
Input: sh_keysc - switch to threaded IRQ handler
Update the KEYSC driver to make use of threaded IRQs with IRQF_ONESHOT to improve interrupt latency. The driver is using udelay() in the ISR to make sure the hardware has stabilized. Without using interrupt threads this delay may affect the latency of the rest of the system. Also pass dev_name() as string for /proc/interrupts. Signed-off-by: Magnus Damm <damm@opensource.se> Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
Diffstat (limited to 'drivers/input/keyboard/sh_keysc.c')
-rw-r--r--drivers/input/keyboard/sh_keysc.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/input/keyboard/sh_keysc.c b/drivers/input/keyboard/sh_keysc.c
index 429ac2b7743..66eea50fccf 100644
--- a/drivers/input/keyboard/sh_keysc.c
+++ b/drivers/input/keyboard/sh_keysc.c
@@ -231,7 +231,8 @@ static int __devinit sh_keysc_probe(struct platform_device *pdev)
input->keycodesize = sizeof(pdata->keycodes[0]);
input->keycodemax = ARRAY_SIZE(pdata->keycodes);
- error = request_irq(irq, sh_keysc_isr, 0, pdev->name, pdev);
+ error = request_threaded_irq(irq, NULL, sh_keysc_isr, IRQF_ONESHOT,
+ dev_name(&pdev->dev), pdev);
if (error) {
dev_err(&pdev->dev, "failed to request IRQ\n");
goto err3;