summaryrefslogtreecommitdiffstats
path: root/drivers/gpio
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@linaro.org>2019-11-03 17:38:39 -0500
committerLinus Walleij <linus.walleij@linaro.org>2019-11-03 17:38:39 -0500
commit806766af3909258ccab74265e33ce8afd21af952 (patch)
treed868b17c82f35ef082a91d0a6917b1f2aa2fd4d6 /drivers/gpio
parent459f7cb9a3b90b1574acc001ad1f6bf5bb748ac7 (diff)
Revert "gpio: merrifield: Move hardware initialization to callback"
This reverts commit 4c87540940cbc7ddbe9674087919c605fd5c2ef1. This revert is a prerequisite for the later revert of commit 8f86a5b4ad679e4836733b47414226074eee4e4d. Reported-by: Hans de Goede <hdegoede@redhat.com> Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/gpio')
-rw-r--r--drivers/gpio/gpio-merrifield.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/drivers/gpio/gpio-merrifield.c b/drivers/gpio/gpio-merrifield.c
index 2f1e9da81c1e..9596024c9161 100644
--- a/drivers/gpio/gpio-merrifield.c
+++ b/drivers/gpio/gpio-merrifield.c
@@ -362,9 +362,8 @@ static void mrfld_irq_handler(struct irq_desc *desc)
362 chained_irq_exit(irqchip, desc); 362 chained_irq_exit(irqchip, desc);
363} 363}
364 364
365static int mrfld_irq_init_hw(struct gpio_chip *chip) 365static void mrfld_irq_init_hw(struct mrfld_gpio *priv)
366{ 366{
367 struct mrfld_gpio *priv = gpiochip_get_data(chip);
368 void __iomem *reg; 367 void __iomem *reg;
369 unsigned int base; 368 unsigned int base;
370 369
@@ -376,8 +375,6 @@ static int mrfld_irq_init_hw(struct gpio_chip *chip)
376 reg = gpio_reg(&priv->chip, base, GFER); 375 reg = gpio_reg(&priv->chip, base, GFER);
377 writel(0, reg); 376 writel(0, reg);
378 } 377 }
379
380 return 0;
381} 378}
382 379
383static const char *mrfld_gpio_get_pinctrl_dev_name(struct mrfld_gpio *priv) 380static const char *mrfld_gpio_get_pinctrl_dev_name(struct mrfld_gpio *priv)
@@ -450,7 +447,6 @@ static int mrfld_gpio_probe(struct pci_dev *pdev, const struct pci_device_id *id
450 447
451 girq = &priv->chip.irq; 448 girq = &priv->chip.irq;
452 girq->chip = &mrfld_irqchip; 449 girq->chip = &mrfld_irqchip;
453 girq->init_hw = mrfld_irq_init_hw;
454 girq->parent_handler = mrfld_irq_handler; 450 girq->parent_handler = mrfld_irq_handler;
455 girq->num_parents = 1; 451 girq->num_parents = 1;
456 girq->parents = devm_kcalloc(&pdev->dev, girq->num_parents, 452 girq->parents = devm_kcalloc(&pdev->dev, girq->num_parents,
@@ -463,6 +459,8 @@ static int mrfld_gpio_probe(struct pci_dev *pdev, const struct pci_device_id *id
463 girq->default_type = IRQ_TYPE_NONE; 459 girq->default_type = IRQ_TYPE_NONE;
464 girq->handler = handle_bad_irq; 460 girq->handler = handle_bad_irq;
465 461
462 mrfld_irq_init_hw(priv);
463
466 pci_set_drvdata(pdev, priv); 464 pci_set_drvdata(pdev, priv);
467 retval = devm_gpiochip_add_data(&pdev->dev, &priv->chip, priv); 465 retval = devm_gpiochip_add_data(&pdev->dev, &priv->chip, priv);
468 if (retval) { 466 if (retval) {