Skip to content

Commit ea54168

Browse files
committed
Merge branch 'for-linus' of git://git.o-hand.com/linux-rpurdie-leds
* 'for-linus' of git://git.o-hand.com/linux-rpurdie-leds: leds/acpi: Fix merge fallout from acpi_driver_data change leds: Simplify logic in leds-ams-delta leds: Fix trigger registration race leds: Fix leds-class.c comment leds: Add driver for HP harddisk protection LEDs leds: leds-pca955x - Mark pca955x_led_set() static leds: Remove uneeded leds-cm-x270 driver leds: Remove uneeded strlen calls leds: Add leds-wrap default-trigger leds: Make default trigger fields const leds: Add backlight LED trigger leds: da903x: Add support for LEDs found on DA9030/DA9034
2 parents 0d876c6 + 601a1b9 commit ea54168

File tree

12 files changed

+488
-157
lines changed

12 files changed

+488
-157
lines changed

drivers/leds/Kconfig

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,11 +113,12 @@ config LEDS_GPIO
113113
outputs. To be useful the particular board must have LEDs
114114
and they must be connected to the GPIO lines.
115115

116-
config LEDS_CM_X270
117-
tristate "LED Support for the CM-X270 LEDs"
118-
depends on LEDS_CLASS && MACH_ARMCORE
116+
config LEDS_HP_DISK
117+
tristate "LED Support for disk protection LED on HP notebooks"
118+
depends on LEDS_CLASS && ACPI
119119
help
120-
This option enables support for the CM-X270 LEDs.
120+
This option enable support for disk protection LED, found on
121+
newer HP notebooks.
121122

122123
config LEDS_CLEVO_MAIL
123124
tristate "Mail LED on Clevo notebook (EXPERIMENTAL)"
@@ -157,6 +158,13 @@ config LEDS_PCA955X
157158
LED driver chips accessed via the I2C bus. Supported
158159
devices include PCA9550, PCA9551, PCA9552, and PCA9553.
159160

161+
config LEDS_DA903X
162+
tristate "LED Support for DA9030/DA9034 PMIC"
163+
depends on LEDS_CLASS && PMIC_DA903X
164+
help
165+
This option enables support for on-chip LED drivers found
166+
on Dialog Semiconductor DA9030/DA9034 PMICs.
167+
160168
comment "LED Triggers"
161169

162170
config LEDS_TRIGGERS
@@ -193,6 +201,15 @@ config LEDS_TRIGGER_HEARTBEAT
193201
load average.
194202
If unsure, say Y.
195203

204+
config LEDS_TRIGGER_BACKLIGHT
205+
tristate "LED backlight Trigger"
206+
depends on LEDS_TRIGGERS
207+
help
208+
This allows LEDs to be controlled as a backlight device: they
209+
turn off and on when the display is blanked and unblanked.
210+
211+
If unsure, say N.
212+
196213
config LEDS_TRIGGER_DEFAULT_ON
197214
tristate "LED Default ON Trigger"
198215
depends on LEDS_TRIGGERS

drivers/leds/Makefile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,16 @@ obj-$(CONFIG_LEDS_COBALT_RAQ) += leds-cobalt-raq.o
1717
obj-$(CONFIG_LEDS_SUNFIRE) += leds-sunfire.o
1818
obj-$(CONFIG_LEDS_PCA9532) += leds-pca9532.o
1919
obj-$(CONFIG_LEDS_GPIO) += leds-gpio.o
20-
obj-$(CONFIG_LEDS_CM_X270) += leds-cm-x270.o
2120
obj-$(CONFIG_LEDS_CLEVO_MAIL) += leds-clevo-mail.o
2221
obj-$(CONFIG_LEDS_HP6XX) += leds-hp6xx.o
2322
obj-$(CONFIG_LEDS_FSG) += leds-fsg.o
2423
obj-$(CONFIG_LEDS_PCA955X) += leds-pca955x.o
24+
obj-$(CONFIG_LEDS_DA903X) += leds-da903x.o
25+
obj-$(CONFIG_LEDS_HP_DISK) += leds-hp-disk.o
2526

2627
# LED Triggers
2728
obj-$(CONFIG_LEDS_TRIGGER_TIMER) += ledtrig-timer.o
2829
obj-$(CONFIG_LEDS_TRIGGER_IDE_DISK) += ledtrig-ide-disk.o
2930
obj-$(CONFIG_LEDS_TRIGGER_HEARTBEAT) += ledtrig-heartbeat.o
31+
obj-$(CONFIG_LEDS_TRIGGER_BACKLIGHT) += ledtrig-backlight.o
3032
obj-$(CONFIG_LEDS_TRIGGER_DEFAULT_ON) += ledtrig-default-on.o

drivers/leds/led-class.c

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,11 @@ static ssize_t led_brightness_show(struct device *dev,
3434
struct device_attribute *attr, char *buf)
3535
{
3636
struct led_classdev *led_cdev = dev_get_drvdata(dev);
37-
ssize_t ret = 0;
3837

3938
/* no lock needed for this */
4039
led_update_brightness(led_cdev);
41-
sprintf(buf, "%u\n", led_cdev->brightness);
42-
ret = strlen(buf) + 1;
4340

44-
return ret;
41+
return sprintf(buf, "%u\n", led_cdev->brightness);
4542
}
4643

4744
static ssize_t led_brightness_store(struct device *dev,
@@ -113,6 +110,9 @@ int led_classdev_register(struct device *parent, struct led_classdev *led_cdev)
113110
if (rc)
114111
goto err_out;
115112

113+
#ifdef CONFIG_LEDS_TRIGGERS
114+
init_rwsem(&led_cdev->trigger_lock);
115+
#endif
116116
/* add to the list of leds */
117117
down_write(&leds_list_lock);
118118
list_add_tail(&led_cdev->node, &leds_list);
@@ -121,8 +121,6 @@ int led_classdev_register(struct device *parent, struct led_classdev *led_cdev)
121121
led_update_brightness(led_cdev);
122122

123123
#ifdef CONFIG_LEDS_TRIGGERS
124-
init_rwsem(&led_cdev->trigger_lock);
125-
126124
rc = device_create_file(led_cdev->dev, &dev_attr_trigger);
127125
if (rc)
128126
goto err_out_led_list;
@@ -147,7 +145,7 @@ int led_classdev_register(struct device *parent, struct led_classdev *led_cdev)
147145
EXPORT_SYMBOL_GPL(led_classdev_register);
148146

149147
/**
150-
* __led_classdev_unregister - unregisters a object of led_properties class.
148+
* led_classdev_unregister - unregisters a object of led_properties class.
151149
* @led_cdev: the led device to unregister
152150
*
153151
* Unregisters a previously registered via led_classdev_register object.

drivers/leds/leds-ams-delta.c

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -107,27 +107,27 @@ static int ams_delta_led_resume(struct platform_device *dev)
107107

108108
static int ams_delta_led_probe(struct platform_device *pdev)
109109
{
110-
int i;
111-
int ret;
110+
int i, ret;
112111

113-
for (i = ret = 0; ret >= 0 && i < ARRAY_SIZE(ams_delta_leds); i++) {
112+
for (i = 0; i < ARRAY_SIZE(ams_delta_leds); i++) {
114113
ret = led_classdev_register(&pdev->dev,
115114
&ams_delta_leds[i].cdev);
115+
if (ret < 0)
116+
goto fail;
116117
}
117118

118-
if (ret < 0 && i > 1) {
119-
for (i = i - 2; i >= 0; i--)
120-
led_classdev_unregister(&ams_delta_leds[i].cdev);
121-
}
122-
123-
return ret;
119+
return 0;
120+
fail:
121+
while (--i >= 0)
122+
led_classdev_unregister(&ams_delta_leds[i].cdev);
123+
return ret;
124124
}
125125

126126
static int ams_delta_led_remove(struct platform_device *pdev)
127127
{
128128
int i;
129129

130-
for (i = ARRAY_SIZE(ams_delta_leds) - 1; i >= 0; i--)
130+
for (i = 0; i < ARRAY_SIZE(ams_delta_leds); i--)
131131
led_classdev_unregister(&ams_delta_leds[i].cdev);
132132

133133
return 0;

drivers/leds/leds-cm-x270.c

Lines changed: 0 additions & 124 deletions
This file was deleted.

0 commit comments

Comments
 (0)