leds: Remove incorrect use of preempt_count() from leds-gpio

It appears that we can't just check to see if we're in a task
context ... so instead of trying that, just make the relevant
leds always schedule a little worklet.

Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Richard Purdie <rpurdie@rpsys.net>

authored by David Brownell and committed by Richard Purdie 306dd85c d95cbe61

+6 -6
+6 -6
drivers/leds/leds-gpio.c
··· 49 if (led_dat->active_low) 50 level = !level; 51 52 - /* setting GPIOs with I2C/etc requires a preemptible task context */ 53 if (led_dat->can_sleep) { 54 - if (preempt_count()) { 55 - led_dat->new_level = level; 56 - schedule_work(&led_dat->work); 57 - } else 58 - gpio_set_value_cansleep(led_dat->gpio, level); 59 } else 60 gpio_set_value(led_dat->gpio, level); 61 }
··· 49 if (led_dat->active_low) 50 level = !level; 51 52 + /* Setting GPIOs with I2C/etc requires a task context, and we don't 53 + * seem to have a reliable way to know if we're already in one; so 54 + * let's just assume the worst. 55 + */ 56 if (led_dat->can_sleep) { 57 + led_dat->new_level = level; 58 + schedule_work(&led_dat->work); 59 } else 60 gpio_set_value(led_dat->gpio, level); 61 }