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
...@@ -1292,17 +1292,24 @@ static int input_dev_uevent(struct device *device, struct kobj_uevent_env *env) ...@@ -1292,17 +1292,24 @@ static int input_dev_uevent(struct device *device, struct kobj_uevent_env *env)
return 0; return 0;
} }
#define INPUT_DO_TOGGLE(dev, type, bits, on) \ #define INPUT_DO_TOGGLE(dev, type, bits, on) \
do { \ do { \
int i; \ int i; \
if (!test_bit(EV_##type, dev->evbit)) \ bool active; \
break; \ \
for (i = 0; i < type##_MAX; i++) { \ if (!test_bit(EV_##type, dev->evbit)) \
if (!test_bit(i, dev->bits##bit) || \ break; \
!test_bit(i, dev->bits)) \ \
continue; \ for (i = 0; i < type##_MAX; i++) { \
dev->event(dev, EV_##type, i, on); \ if (!test_bit(i, dev->bits##bit)) \
} \ continue; \
\
active = test_bit(i, dev->bits); \
if (!active && !on) \
continue; \
\
dev->event(dev, EV_##type, i, on ? active : 0); \
} \
} while (0) } while (0)
#ifdef CONFIG_PM #ifdef CONFIG_PM
......
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