leds: leds-lt3593: set devm_gpio_request_one() flags param correctly
authorJingoo Han <jg1.han@samsung.com>
Fri, 8 Mar 2013 02:37:38 +0000 (18:37 -0800)
committerBryan Wu <cooloney@gmail.com>
Mon, 1 Apr 2013 18:04:49 +0000 (11:04 -0700)
The devm_gpio_request_one() flags parameter was set to:

  GPIOF_DIR_OUT | state

GPIOF_DIR_OUT and GPIOF_DIR_IN are defined as below:

  GPIOF_DIR_OUT   (0 << 0)
  GPIOF_DIR_IN    (1 << 0)

So, when 'state' is 1, the gpio pin can be set as input, instead
of output.

To prevent this problem, GPIOF_OUT_INIT flags should be used when
using devm_gpio_request_one().

Signed-off-by: Jingoo Han <jg1.han@samsung.com>
Signed-off-by: Bryan Wu <cooloney@gmail.com>
drivers/leds/leds-lt3593.c

index c9b9e1fec58758714a309998440822fe912360ac..ca48a7d5502d35fb919de639a4ddb067b6f80baf 100644 (file)
@@ -106,8 +106,9 @@ static int create_lt3593_led(const struct gpio_led *template,
        if (!template->retain_state_suspended)
                led_dat->cdev.flags |= LED_CORE_SUSPENDRESUME;
 
-       ret = devm_gpio_request_one(parent, template->gpio,
-                                   GPIOF_DIR_OUT | state, template->name);
+       ret = devm_gpio_request_one(parent, template->gpio, state ?
+                                   GPIOF_OUT_INIT_HIGH : GPIOF_OUT_INIT_LOW,
+                                   template->name);
        if (ret < 0)
                return ret;
 
This page took 0.025027 seconds and 5 git commands to generate.