summaryrefslogtreecommitdiff
path: root/arch/arm/plat-orion/gpio.c
diff options
context:
space:
mode:
authorHolger Brunck <holger.brunck@keymile.com>2011-12-19 20:49:48 +0400
committerOlof Johansson <olof@lixom.net>2011-12-20 08:55:36 +0400
commit0b35a45bde561d67ffd83b352764b48f936f46bb (patch)
tree7c16102cba87dd815c1ab99cbcd461a75099aa72 /arch/arm/plat-orion/gpio.c
parent334fef05fd8f9be55f9982f788f2e85925bb2684 (diff)
downloadlinux-0b35a45bde561d67ffd83b352764b48f936f46bb.tar.xz
ARM: plat-orion: make gpiochip label unique
The former implementation adds a fix gpiochip label string to the framework. This is confusing because orion_gpio_init is called more than once and this ends up in different gpiochips with the same label. This patch adds the already present orion_gpio_chip_count to the label string to make it unique in the system. Signed-off-by: Holger Brunck <holger.brunck@keymile.com> Cc: Lennert Buytenhek <kernel@wantstofly.org> Acked-by: Nicolas Pitre <nico@linaro.org> Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'arch/arm/plat-orion/gpio.c')
-rw-r--r--arch/arm/plat-orion/gpio.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/arm/plat-orion/gpio.c b/arch/arm/plat-orion/gpio.c
index 41ab97ebe4cf..10d160888133 100644
--- a/arch/arm/plat-orion/gpio.c
+++ b/arch/arm/plat-orion/gpio.c
@@ -384,12 +384,16 @@ void __init orion_gpio_init(int gpio_base, int ngpio,
struct orion_gpio_chip *ochip;
struct irq_chip_generic *gc;
struct irq_chip_type *ct;
+ char gc_label[16];
if (orion_gpio_chip_count == ARRAY_SIZE(orion_gpio_chips))
return;
+ snprintf(gc_label, sizeof(gc_label), "orion_gpio%d",
+ orion_gpio_chip_count);
+
ochip = orion_gpio_chips + orion_gpio_chip_count;
- ochip->chip.label = "orion_gpio";
+ ochip->chip.label = kstrdup(gc_label, GFP_KERNEL);
ochip->chip.request = orion_gpio_request;
ochip->chip.direction_input = orion_gpio_direction_input;
ochip->chip.get = orion_gpio_get;