diff options
author | Holger Brunck <holger.brunck@keymile.com> | 2011-12-19 17:49:48 +0100 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2011-12-19 20:55:36 -0800 |
commit | 0b35a45bde561d67ffd83b352764b48f936f46bb (patch) | |
tree | 7c16102cba87dd815c1ab99cbcd461a75099aa72 | |
parent | 334fef05fd8f9be55f9982f788f2e85925bb2684 (diff) | |
download | op-kernel-dev-0b35a45bde561d67ffd83b352764b48f936f46bb.zip op-kernel-dev-0b35a45bde561d67ffd83b352764b48f936f46bb.tar.gz |
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>
-rw-r--r-- | arch/arm/plat-orion/gpio.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/arch/arm/plat-orion/gpio.c b/arch/arm/plat-orion/gpio.c index 41ab97e..10d1608 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; |