diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-15 15:52:42 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-15 15:52:42 -0500 |
commit | e81d372ff9f694e13fa46e8b5aaed505c7fd2a1f (patch) | |
tree | 058d5004b6ca7602aaec6ef2d992be9c71a8e81c /drivers/leds/leds-lt3593.c | |
parent | 75e300c8ba5864367634d946c729d8fd05c1cbc2 (diff) | |
parent | 2f05e1d4458f9cb68d4d36fb47e6830fec03c80e (diff) |
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds
Pull LED subsystem update from Bryan Wu.
* 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/cooloney/linux-leds: (47 commits)
leds: leds-lp5521: return an error code on error in probe()
leds: leds-clevo-mail: Use pr_* instead of printks
leds: leds-rb532: Fix checkpatch errors
leds: led-triggers: Fix checkpatch warnings
leds: ledtrig-backlight: Fix checkpatch error
leds: leds-wrap: Use <linux/io.h> instead of <asm/io.h>
leds: leds-wm8350: Use dev_err instead of printk
leds: leds-pwm: Fix checkpatch warning
leds: leds-pca955x: Use dev_info instead of printk
leds: leds-net48xx: Use linux/io.h instead of asm/io.h
leds: leds-lt3593: Fix checkpatch warnings
leds: leds-gpio: Use dev_info instead of printk
leds: leds-da903x: Fix checkpatch error and warnings
leds: leds-bd2802: Fix checkpatch warnings
leds: leds-adp5520: Fix checkpatch warnings
leds: led-class: Fix checkpatch warning
leds: leds-ns2: use devm_gpio_request_one
leds: leds-lt3593: use devm_gpio_request_one
leds: leds-gpio: use devm_gpio_request_one
leds: lp3944: Fix return value
...
Diffstat (limited to 'drivers/leds/leds-lt3593.c')
-rw-r--r-- | drivers/leds/leds-lt3593.c | 20 |
1 files changed, 6 insertions, 14 deletions
diff --git a/drivers/leds/leds-lt3593.c b/drivers/leds/leds-lt3593.c index 34b3ba4376fc..c9b9e1fec587 100644 --- a/drivers/leds/leds-lt3593.c +++ b/drivers/leds/leds-lt3593.c | |||
@@ -89,15 +89,11 @@ static int create_lt3593_led(const struct gpio_led *template, | |||
89 | 89 | ||
90 | /* skip leds on GPIOs that aren't available */ | 90 | /* skip leds on GPIOs that aren't available */ |
91 | if (!gpio_is_valid(template->gpio)) { | 91 | if (!gpio_is_valid(template->gpio)) { |
92 | printk(KERN_INFO "%s: skipping unavailable LT3593 LED at gpio %d (%s)\n", | 92 | dev_info(parent, "%s: skipping unavailable LT3593 LED at gpio %d (%s)\n", |
93 | KBUILD_MODNAME, template->gpio, template->name); | 93 | KBUILD_MODNAME, template->gpio, template->name); |
94 | return 0; | 94 | return 0; |
95 | } | 95 | } |
96 | 96 | ||
97 | ret = gpio_request(template->gpio, template->name); | ||
98 | if (ret < 0) | ||
99 | return ret; | ||
100 | |||
101 | led_dat->cdev.name = template->name; | 97 | led_dat->cdev.name = template->name; |
102 | led_dat->cdev.default_trigger = template->default_trigger; | 98 | led_dat->cdev.default_trigger = template->default_trigger; |
103 | led_dat->gpio = template->gpio; | 99 | led_dat->gpio = template->gpio; |
@@ -110,24 +106,21 @@ static int create_lt3593_led(const struct gpio_led *template, | |||
110 | if (!template->retain_state_suspended) | 106 | if (!template->retain_state_suspended) |
111 | led_dat->cdev.flags |= LED_CORE_SUSPENDRESUME; | 107 | led_dat->cdev.flags |= LED_CORE_SUSPENDRESUME; |
112 | 108 | ||
113 | ret = gpio_direction_output(led_dat->gpio, state); | 109 | ret = devm_gpio_request_one(parent, template->gpio, |
110 | GPIOF_DIR_OUT | state, template->name); | ||
114 | if (ret < 0) | 111 | if (ret < 0) |
115 | goto err; | 112 | return ret; |
116 | 113 | ||
117 | INIT_WORK(&led_dat->work, lt3593_led_work); | 114 | INIT_WORK(&led_dat->work, lt3593_led_work); |
118 | 115 | ||
119 | ret = led_classdev_register(parent, &led_dat->cdev); | 116 | ret = led_classdev_register(parent, &led_dat->cdev); |
120 | if (ret < 0) | 117 | if (ret < 0) |
121 | goto err; | 118 | return ret; |
122 | 119 | ||
123 | printk(KERN_INFO "%s: registered LT3593 LED '%s' at GPIO %d\n", | 120 | dev_info(parent, "%s: registered LT3593 LED '%s' at GPIO %d\n", |
124 | KBUILD_MODNAME, template->name, template->gpio); | 121 | KBUILD_MODNAME, template->name, template->gpio); |
125 | 122 | ||
126 | return 0; | 123 | return 0; |
127 | |||
128 | err: | ||
129 | gpio_free(led_dat->gpio); | ||
130 | return ret; | ||
131 | } | 124 | } |
132 | 125 | ||
133 | static void delete_lt3593_led(struct lt3593_led_data *led) | 126 | static void delete_lt3593_led(struct lt3593_led_data *led) |
@@ -137,7 +130,6 @@ static void delete_lt3593_led(struct lt3593_led_data *led) | |||
137 | 130 | ||
138 | led_classdev_unregister(&led->cdev); | 131 | led_classdev_unregister(&led->cdev); |
139 | cancel_work_sync(&led->work); | 132 | cancel_work_sync(&led->work); |
140 | gpio_free(led->gpio); | ||
141 | } | 133 | } |
142 | 134 | ||
143 | static int lt3593_led_probe(struct platform_device *pdev) | 135 | static int lt3593_led_probe(struct platform_device *pdev) |