]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/commitdiff
pinctrl: baytrail: Register GPIO chip after chip->to_irq is set
authorJin Yao <yao.jin@intel.com>
Thu, 15 May 2014 15:28:47 +0000 (18:28 +0300)
committerLinus Walleij <linus.walleij@linaro.org>
Thu, 22 May 2014 22:01:53 +0000 (00:01 +0200)
If chip->to_irq is NULL ACPI GPIO helpers don't register GPIO event
handlers thus preventing any ACPI GPIO triggered events. Solve this by
calling gpiochip_add() after we have set up drivers chip->to_irq hook.

Signed-off-by: Jin Yao <yao.jin@intel.com>
Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/pinctrl-baytrail.c

index 447f1dc25ea6c682baefc3a43eea5bf87231ac20..7c65c9dab215cf59923e38f3c862e6a6d4e24a8f 100644 (file)
@@ -527,12 +527,6 @@ static int byt_gpio_probe(struct platform_device *pdev)
        gc->can_sleep = false;
        gc->dev = dev;
 
-       ret = gpiochip_add(gc);
-       if (ret) {
-               dev_err(&pdev->dev, "failed adding byt-gpio chip\n");
-               return ret;
-       }
-
        /* set up interrupts  */
        irq_rc = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
        if (irq_rc && irq_rc->start) {
@@ -550,6 +544,12 @@ static int byt_gpio_probe(struct platform_device *pdev)
                irq_set_chained_handler(hwirq, byt_gpio_irq_handler);
        }
 
+       ret = gpiochip_add(gc);
+       if (ret) {
+               dev_err(&pdev->dev, "failed adding byt-gpio chip\n");
+               return ret;
+       }
+
        pm_runtime_enable(dev);
 
        return 0;