diff options
author | Mark Brown <broonie@kernel.org> | 2015-08-22 00:26:37 +0200 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2015-08-22 00:26:37 +0200 |
commit | d033de5ceee8333e4fee3d59a956244d3736102a (patch) | |
tree | 5bdebcac18ed67890571632570c324e0c41a7223 /drivers/input/input-leds.c | |
parent | ASoC: topology: Change pass number of DAI smaller than graph (diff) | |
parent | Linux 4.2-rc6 (diff) | |
download | linux-d033de5ceee8333e4fee3d59a956244d3736102a.tar.xz linux-d033de5ceee8333e4fee3d59a956244d3736102a.zip |
Merge tag 'v4.2-rc6' into asoc-topology
Linux 4.2-rc6
Diffstat (limited to 'drivers/input/input-leds.c')
-rw-r--r-- | drivers/input/input-leds.c | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/drivers/input/input-leds.c b/drivers/input/input-leds.c index 074a65ed17bb..766bf2660116 100644 --- a/drivers/input/input-leds.c +++ b/drivers/input/input-leds.c @@ -71,6 +71,18 @@ static void input_leds_event(struct input_handle *handle, unsigned int type, { } +static int input_leds_get_count(struct input_dev *dev) +{ + unsigned int led_code; + int count = 0; + + for_each_set_bit(led_code, dev->ledbit, LED_CNT) + if (input_led_info[led_code].name) + count++; + + return count; +} + static int input_leds_connect(struct input_handler *handler, struct input_dev *dev, const struct input_device_id *id) @@ -81,7 +93,7 @@ static int input_leds_connect(struct input_handler *handler, int led_no; int error; - num_leds = bitmap_weight(dev->ledbit, LED_CNT); + num_leds = input_leds_get_count(dev); if (!num_leds) return -ENXIO; @@ -112,7 +124,7 @@ static int input_leds_connect(struct input_handler *handler, led->handle = &leds->handle; led->code = led_code; - if (WARN_ON(!input_led_info[led_code].name)) + if (!input_led_info[led_code].name) continue; led->cdev.name = kasprintf(GFP_KERNEL, "%s::%s", |