aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pinctrl/intel
diff options
context:
space:
mode:
authorMika Westerberg <mika.westerberg@linux.intel.com>2016-09-20 08:15:23 -0400
committerLinus Walleij <linus.walleij@linaro.org>2016-09-23 08:59:42 -0400
commitd1073418d952f6a3557a888ffd666cc8c21362b1 (patch)
tree64b980dae02d7bb1e6f80707903831677137b66e /drivers/pinctrl/intel
parent47c950d1020226179d278297c85ba6a988ee398b (diff)
pinctrl: cherryview: Convert to use devm_gpiochip_add_data()
This simplifies the error handling and allows us to drop the whole chv_pinctrl_remove() function. Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Diffstat (limited to 'drivers/pinctrl/intel')
-rw-r--r--drivers/pinctrl/intel/pinctrl-cherryview.c21
1 files changed, 3 insertions, 18 deletions
diff --git a/drivers/pinctrl/intel/pinctrl-cherryview.c b/drivers/pinctrl/intel/pinctrl-cherryview.c
index d23be3a2fb35..30389f4ccab4 100644
--- a/drivers/pinctrl/intel/pinctrl-cherryview.c
+++ b/drivers/pinctrl/intel/pinctrl-cherryview.c
@@ -1538,7 +1538,7 @@ static int chv_gpio_probe(struct chv_pinctrl *pctrl, int irq)
1538 chip->base = -1; 1538 chip->base = -1;
1539 chip->irq_need_valid_mask = true; 1539 chip->irq_need_valid_mask = true;
1540 1540
1541 ret = gpiochip_add_data(chip, pctrl); 1541 ret = devm_gpiochip_add_data(pctrl->dev, chip, pctrl);
1542 if (ret) { 1542 if (ret) {
1543 dev_err(pctrl->dev, "Failed to register gpiochip\n"); 1543 dev_err(pctrl->dev, "Failed to register gpiochip\n");
1544 return ret; 1544 return ret;
@@ -1550,7 +1550,7 @@ static int chv_gpio_probe(struct chv_pinctrl *pctrl, int irq)
1550 range->base, range->npins); 1550 range->base, range->npins);
1551 if (ret) { 1551 if (ret) {
1552 dev_err(pctrl->dev, "failed to add GPIO pin range\n"); 1552 dev_err(pctrl->dev, "failed to add GPIO pin range\n");
1553 goto fail; 1553 return ret;
1554 } 1554 }
1555 1555
1556 offset += range->npins; 1556 offset += range->npins;
@@ -1578,17 +1578,12 @@ static int chv_gpio_probe(struct chv_pinctrl *pctrl, int irq)
1578 handle_bad_irq, IRQ_TYPE_NONE); 1578 handle_bad_irq, IRQ_TYPE_NONE);
1579 if (ret) { 1579 if (ret) {
1580 dev_err(pctrl->dev, "failed to add IRQ chip\n"); 1580 dev_err(pctrl->dev, "failed to add IRQ chip\n");
1581 goto fail; 1581 return ret;
1582 } 1582 }
1583 1583
1584 gpiochip_set_chained_irqchip(chip, &chv_gpio_irqchip, irq, 1584 gpiochip_set_chained_irqchip(chip, &chv_gpio_irqchip, irq,
1585 chv_gpio_irq_handler); 1585 chv_gpio_irq_handler);
1586 return 0; 1586 return 0;
1587
1588fail:
1589 gpiochip_remove(chip);
1590
1591 return ret;
1592} 1587}
1593 1588
1594static int chv_pinctrl_probe(struct platform_device *pdev) 1589static int chv_pinctrl_probe(struct platform_device *pdev)
@@ -1656,15 +1651,6 @@ static int chv_pinctrl_probe(struct platform_device *pdev)
1656 return 0; 1651 return 0;
1657} 1652}
1658 1653
1659static int chv_pinctrl_remove(struct platform_device *pdev)
1660{
1661 struct chv_pinctrl *pctrl = platform_get_drvdata(pdev);
1662
1663 gpiochip_remove(&pctrl->chip);
1664
1665 return 0;
1666}
1667
1668#ifdef CONFIG_PM_SLEEP 1654#ifdef CONFIG_PM_SLEEP
1669static int chv_pinctrl_suspend(struct device *dev) 1655static int chv_pinctrl_suspend(struct device *dev)
1670{ 1656{
@@ -1761,7 +1747,6 @@ MODULE_DEVICE_TABLE(acpi, chv_pinctrl_acpi_match);
1761 1747
1762static struct platform_driver chv_pinctrl_driver = { 1748static struct platform_driver chv_pinctrl_driver = {
1763 .probe = chv_pinctrl_probe, 1749 .probe = chv_pinctrl_probe,
1764 .remove = chv_pinctrl_remove,
1765 .driver = { 1750 .driver = {
1766 .name = "cherryview-pinctrl", 1751 .name = "cherryview-pinctrl",
1767 .pm = &chv_pinctrl_pm_ops, 1752 .pm = &chv_pinctrl_pm_ops,