diff options
-rw-r--r-- | drivers/leds/leds-gpio.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/leds/leds-gpio.c b/drivers/leds/leds-gpio.c index a0d931bcb37c..b02b679abf31 100644 --- a/drivers/leds/leds-gpio.c +++ b/drivers/leds/leds-gpio.c | |||
@@ -107,6 +107,10 @@ static int create_gpio_led(const struct gpio_led *template, | |||
107 | return 0; | 107 | return 0; |
108 | } | 108 | } |
109 | 109 | ||
110 | ret = devm_gpio_request(parent, template->gpio, template->name); | ||
111 | if (ret < 0) | ||
112 | return ret; | ||
113 | |||
110 | led_dat->cdev.name = template->name; | 114 | led_dat->cdev.name = template->name; |
111 | led_dat->cdev.default_trigger = template->default_trigger; | 115 | led_dat->cdev.default_trigger = template->default_trigger; |
112 | led_dat->gpio = template->gpio; | 116 | led_dat->gpio = template->gpio; |
@@ -126,10 +130,7 @@ static int create_gpio_led(const struct gpio_led *template, | |||
126 | if (!template->retain_state_suspended) | 130 | if (!template->retain_state_suspended) |
127 | led_dat->cdev.flags |= LED_CORE_SUSPENDRESUME; | 131 | led_dat->cdev.flags |= LED_CORE_SUSPENDRESUME; |
128 | 132 | ||
129 | ret = devm_gpio_request_one(parent, template->gpio, | 133 | ret = gpio_direction_output(led_dat->gpio, led_dat->active_low ^ state); |
130 | (led_dat->active_low ^ state) ? | ||
131 | GPIOF_OUT_INIT_HIGH : GPIOF_OUT_INIT_LOW, | ||
132 | template->name); | ||
133 | if (ret < 0) | 134 | if (ret < 0) |
134 | return ret; | 135 | return ret; |
135 | 136 | ||