Merge tag 'gpio-v4.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio

Pull GPIO fixes from Linus Walleij:
- Probe errorpath fix for the Altera
- irqchip ofnode pointer added to the DaVinci driver
- controller instance number correction for DaVinci

* tag 'gpio-v4.5-2' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-gpio:
gpio: davinci: Fix the number of controllers allocated
gpio: davinci: Add the missing of-node pointer
gpio: gpio-altera: Remove gpiochip on probe failure.

+7 -5
+3 -2
drivers/gpio/gpio-altera.c
··· 312 handle_simple_irq, IRQ_TYPE_NONE); 313 314 if (ret) { 315 - dev_info(&pdev->dev, "could not add irqchip\n"); 316 - return ret; 317 } 318 319 gpiochip_set_chained_irqchip(&altera_gc->mmchip.gc, ··· 326 skip_irq: 327 return 0; 328 teardown: 329 pr_err("%s: registration failed with status %d\n", 330 node->full_name, ret); 331
··· 312 handle_simple_irq, IRQ_TYPE_NONE); 313 314 if (ret) { 315 + dev_err(&pdev->dev, "could not add irqchip\n"); 316 + goto teardown; 317 } 318 319 gpiochip_set_chained_irqchip(&altera_gc->mmchip.gc, ··· 326 skip_irq: 327 return 0; 328 teardown: 329 + of_mm_gpiochip_remove(&altera_gc->mmchip); 330 pr_err("%s: registration failed with status %d\n", 331 node->full_name, ret); 332
+4 -3
drivers/gpio/gpio-davinci.c
··· 195 static int davinci_gpio_probe(struct platform_device *pdev) 196 { 197 int i, base; 198 - unsigned ngpio; 199 struct davinci_gpio_controller *chips; 200 struct davinci_gpio_platform_data *pdata; 201 struct davinci_gpio_regs __iomem *regs; ··· 224 if (WARN_ON(ARCH_NR_GPIOS < ngpio)) 225 ngpio = ARCH_NR_GPIOS; 226 227 chips = devm_kzalloc(dev, 228 - ngpio * sizeof(struct davinci_gpio_controller), 229 GFP_KERNEL); 230 if (!chips) 231 return -ENOMEM; ··· 512 return irq; 513 } 514 515 - irq_domain = irq_domain_add_legacy(NULL, ngpio, irq, 0, 516 &davinci_gpio_irq_ops, 517 chips); 518 if (!irq_domain) {
··· 195 static int davinci_gpio_probe(struct platform_device *pdev) 196 { 197 int i, base; 198 + unsigned ngpio, nbank; 199 struct davinci_gpio_controller *chips; 200 struct davinci_gpio_platform_data *pdata; 201 struct davinci_gpio_regs __iomem *regs; ··· 224 if (WARN_ON(ARCH_NR_GPIOS < ngpio)) 225 ngpio = ARCH_NR_GPIOS; 226 227 + nbank = DIV_ROUND_UP(ngpio, 32); 228 chips = devm_kzalloc(dev, 229 + nbank * sizeof(struct davinci_gpio_controller), 230 GFP_KERNEL); 231 if (!chips) 232 return -ENOMEM; ··· 511 return irq; 512 } 513 514 + irq_domain = irq_domain_add_legacy(dev->of_node, ngpio, irq, 0, 515 &davinci_gpio_irq_ops, 516 chips); 517 if (!irq_domain) {