Commit ed8a4ef2 authored by Dmitry Torokhov's avatar Dmitry Torokhov
Browse files

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: default avatarDmitry Torokhov <dmitry.torokhov@gmail.com>
parent 7ff57459
Loading
Loading
Loading
Loading
+12 −5
Original line number Diff line number Diff line
@@ -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");