diff options
Diffstat (limited to 'target/linux/adm5120/patches-2.6.38/203-gpio_leds_brightness.patch')
-rw-r--r-- | target/linux/adm5120/patches-2.6.38/203-gpio_leds_brightness.patch | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/target/linux/adm5120/patches-2.6.38/203-gpio_leds_brightness.patch b/target/linux/adm5120/patches-2.6.38/203-gpio_leds_brightness.patch new file mode 100644 index 0000000000..ac3c516353 --- /dev/null +++ b/target/linux/adm5120/patches-2.6.38/203-gpio_leds_brightness.patch @@ -0,0 +1,27 @@ +--- a/drivers/leds/leds-gpio.c ++++ b/drivers/leds/leds-gpio.c +@@ -52,13 +52,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 task context, and we don't + * seem to have a reliable way to know if we're already in one; so |