diff options
Diffstat (limited to 'target/linux/adm5120/patches-2.6.24/203-gpio_leds_brightness.patch')
-rw-r--r-- | target/linux/adm5120/patches-2.6.24/203-gpio_leds_brightness.patch | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/target/linux/adm5120/patches-2.6.24/203-gpio_leds_brightness.patch b/target/linux/adm5120/patches-2.6.24/203-gpio_leds_brightness.patch new file mode 100644 index 0000000000..37eb0ab5fa --- /dev/null +++ b/target/linux/adm5120/patches-2.6.24/203-gpio_leds_brightness.patch @@ -0,0 +1,29 @@ +Index: linux-2.6.24/drivers/leds/leds-gpio.c +=================================================================== +--- linux-2.6.24.orig/drivers/leds/leds-gpio.c ++++ linux-2.6.24/drivers/leds/leds-gpio.c +@@ -41,13 +41,17 @@ static void gpio_led_set(struct led_clas + container_of(led_cdev, struct gpio_led_data, cdev); + int level; + +- if (value == LED_OFF) +- level = 0; +- else +- level = 1; +- +- if (led_dat->active_low) +- level = !level; ++ switch (value) { ++ case LED_OFF: ++ level = led_dat->active_low ? 1 : 0; ++ break; ++ case LED_FULL: ++ level = led_dat->active_low ? 0 : 1; ++ break; ++ default: ++ level = value; ++ break; ++ } + + /* setting GPIOs with I2C/etc requires a preemptible task context */ + if (led_dat->can_sleep) { |