aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpio/gpio-mvebu.c
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-01-26 00:06:30 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-01-26 00:06:30 -0500
commit422d26b6ecd77af8c77f2a40580679459825170f (patch)
tree632e690e458fb7b27db200cd6fcd5429e143e419 /drivers/gpio/gpio-mvebu.c
parent4c271bb67c04253c1e99006eb48fb773a8fe8c0f (diff)
parent949db153b6466c6f7cad5a427ecea94985927311 (diff)
Merge 3.8-rc5 into driver-core-next
This resolves a gpio driver merge issue pointed out in linux-next. Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/gpio/gpio-mvebu.c')
-rw-r--r--drivers/gpio/gpio-mvebu.c12
1 files changed, 2 insertions, 10 deletions
diff --git a/drivers/gpio/gpio-mvebu.c b/drivers/gpio/gpio-mvebu.c
index bf6c7c989aee..7472182967ce 100644
--- a/drivers/gpio/gpio-mvebu.c
+++ b/drivers/gpio/gpio-mvebu.c
@@ -546,10 +546,8 @@ static int mvebu_gpio_probe(struct platform_device *pdev)
546 546
547 spin_lock_init(&mvchip->lock); 547 spin_lock_init(&mvchip->lock);
548 mvchip->membase = devm_ioremap_resource(&pdev->dev, res); 548 mvchip->membase = devm_ioremap_resource(&pdev->dev, res);
549 if (IS_ERR(mvchip->membase)) { 549 if (IS_ERR(mvchip->membase))
550 kfree(mvchip->chip.label);
551 return PTR_ERR(mvchip->membase); 550 return PTR_ERR(mvchip->membase);
552 }
553 551
554 /* The Armada XP has a second range of registers for the 552 /* The Armada XP has a second range of registers for the
555 * per-CPU registers */ 553 * per-CPU registers */
@@ -557,16 +555,13 @@ static int mvebu_gpio_probe(struct platform_device *pdev)
557 res = platform_get_resource(pdev, IORESOURCE_MEM, 1); 555 res = platform_get_resource(pdev, IORESOURCE_MEM, 1);
558 if (! res) { 556 if (! res) {
559 dev_err(&pdev->dev, "Cannot get memory resource\n"); 557 dev_err(&pdev->dev, "Cannot get memory resource\n");
560 kfree(mvchip->chip.label);
561 return -ENODEV; 558 return -ENODEV;
562 } 559 }
563 560
564 mvchip->percpu_membase = devm_ioremap_resource(&pdev->dev, 561 mvchip->percpu_membase = devm_ioremap_resource(&pdev->dev,
565 res); 562 res);
566 if (IS_ERR(mvchip->percpu_membase)) { 563 if (IS_ERR(mvchip->percpu_membase))
567 kfree(mvchip->chip.label);
568 return PTR_ERR(mvchip->percpu_membase); 564 return PTR_ERR(mvchip->percpu_membase);
569 }
570 } 565 }
571 566
572 /* 567 /*
@@ -625,7 +620,6 @@ static int mvebu_gpio_probe(struct platform_device *pdev)
625 mvchip->irqbase = irq_alloc_descs(-1, 0, ngpios, -1); 620 mvchip->irqbase = irq_alloc_descs(-1, 0, ngpios, -1);
626 if (mvchip->irqbase < 0) { 621 if (mvchip->irqbase < 0) {
627 dev_err(&pdev->dev, "no irqs\n"); 622 dev_err(&pdev->dev, "no irqs\n");
628 kfree(mvchip->chip.label);
629 return -ENOMEM; 623 return -ENOMEM;
630 } 624 }
631 625
@@ -633,7 +627,6 @@ static int mvebu_gpio_probe(struct platform_device *pdev)
633 mvchip->membase, handle_level_irq); 627 mvchip->membase, handle_level_irq);
634 if (! gc) { 628 if (! gc) {
635 dev_err(&pdev->dev, "Cannot allocate generic irq_chip\n"); 629 dev_err(&pdev->dev, "Cannot allocate generic irq_chip\n");
636 kfree(mvchip->chip.label);
637 return -ENOMEM; 630 return -ENOMEM;
638 } 631 }
639 632
@@ -668,7 +661,6 @@ static int mvebu_gpio_probe(struct platform_device *pdev)
668 irq_remove_generic_chip(gc, IRQ_MSK(ngpios), IRQ_NOREQUEST, 661 irq_remove_generic_chip(gc, IRQ_MSK(ngpios), IRQ_NOREQUEST,
669 IRQ_LEVEL | IRQ_NOPROBE); 662 IRQ_LEVEL | IRQ_NOPROBE);
670 kfree(gc); 663 kfree(gc);
671 kfree(mvchip->chip.label);
672 return -ENODEV; 664 return -ENODEV;
673 } 665 }
674 666