mirror of
https://github.com/torvalds/linux.git
synced 2026-03-08 04:44:45 +01:00
Input: gpio_keys - fall back to platform_get_irq() for interrupt-only keys
To allow transitioning away from gpio-keys platform data attempt to retrieve IRQ for interrupt-only keys using platform_get_irq_optional() if interrupt is not specified in platform data. Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
This commit is contained in:
parent
7ff5745994
commit
ed8a4ef29d
1 changed files with 12 additions and 5 deletions
|
|
@ -616,12 +616,19 @@ static int gpio_keys_setup_key(struct platform_device *pdev,
|
|||
break;
|
||||
}
|
||||
} else {
|
||||
if (!button->irq) {
|
||||
dev_err(dev, "Found button without gpio or irq\n");
|
||||
return -EINVAL;
|
||||
}
|
||||
if (button->irq) {
|
||||
bdata->irq = button->irq;
|
||||
} else {
|
||||
irq = platform_get_irq_optional(pdev, idx);
|
||||
if (irq < 0) {
|
||||
error = irq;
|
||||
return dev_err_probe(dev, error,
|
||||
"Unable to determine IRQ# for button #%d",
|
||||
idx);
|
||||
}
|
||||
|
||||
bdata->irq = button->irq;
|
||||
bdata->irq = irq;
|
||||
}
|
||||
|
||||
if (button->type && button->type != EV_KEY) {
|
||||
dev_err(dev, "Only EV_KEY allowed for IRQ buttons.\n");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue