Commit 3cc96351 authored by Dmitry Torokhov's avatar Dmitry Torokhov

Input: force LED reset on resume

We should be sending EV_LED event down to drivers upon resume even in cases
when in-kernel state of the LED is off since device could come up with some
leds turned on.
Reported-and-tested-by: default avatarMikko Vinni <mmvinni@yahoo.com>
Signed-off-by: default avatarDmitry Torokhov <dtor@mail.ru>
parent bf3204cb
...@@ -1295,13 +1295,20 @@ static int input_dev_uevent(struct device *device, struct kobj_uevent_env *env) ...@@ -1295,13 +1295,20 @@ static int input_dev_uevent(struct device *device, struct kobj_uevent_env *env)
#define INPUT_DO_TOGGLE(dev, type, bits, on) \ #define INPUT_DO_TOGGLE(dev, type, bits, on) \
do { \ do { \
int i; \ int i; \
bool active; \
\
if (!test_bit(EV_##type, dev->evbit)) \ if (!test_bit(EV_##type, dev->evbit)) \
break; \ break; \
\
for (i = 0; i < type##_MAX; i++) { \ for (i = 0; i < type##_MAX; i++) { \
if (!test_bit(i, dev->bits##bit) || \ if (!test_bit(i, dev->bits##bit)) \
!test_bit(i, dev->bits)) \
continue; \ continue; \
dev->event(dev, EV_##type, i, on); \ \
active = test_bit(i, dev->bits); \
if (!active && !on) \
continue; \
\
dev->event(dev, EV_##type, i, on ? active : 0); \
} \ } \
} while (0) } while (0)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment