diff options
author | Andy Shevchenko <andriy.shevchenko@linux.intel.com> | 2023-07-03 20:52:14 +0200 |
---|---|---|
committer | Benjamin Tissoires <bentiss@kernel.org> | 2023-07-28 17:05:47 +0200 |
commit | ecb42bb8035c9901684c40c87cf1ea23f62e055d (patch) | |
tree | 7dae7a49a5adb2358e6424f2fe46d0022c30ba6f /drivers/hid/hid-cp2112.c | |
parent | HID: cp2112: Make irq_chip immutable (diff) | |
download | linux-ecb42bb8035c9901684c40c87cf1ea23f62e055d.tar.xz linux-ecb42bb8035c9901684c40c87cf1ea23f62e055d.zip |
HID: cp2112: Switch to for_each_set_bit() to simplify the code
It's cleaner to use for_each_set_bit() than open coding it.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/20230703185222.50554-5-andriy.shevchenko@linux.intel.com
Signed-off-by: Benjamin Tissoires <bentiss@kernel.org>
Diffstat (limited to 'drivers/hid/hid-cp2112.c')
-rw-r--r-- | drivers/hid/hid-cp2112.c | 8 |
1 files changed, 2 insertions, 6 deletions
diff --git a/drivers/hid/hid-cp2112.c b/drivers/hid/hid-cp2112.c index 51399b231d36..fb4548feb0c8 100644 --- a/drivers/hid/hid-cp2112.c +++ b/drivers/hid/hid-cp2112.c @@ -16,6 +16,7 @@ * https://www.silabs.com/documents/public/application-notes/an495-cp2112-interface-specification.pdf */ +#include <linux/bitops.h> #include <linux/gpio/consumer.h> #include <linux/gpio/machine.h> #include <linux/gpio/driver.h> @@ -1100,7 +1101,6 @@ static void cp2112_gpio_poll_callback(struct work_struct *work) gpio_poll_worker.work); struct irq_data *d; u8 gpio_mask; - u8 virqs = (u8)dev->irq_mask; u32 irq_type; int irq, virq, ret; @@ -1111,11 +1111,7 @@ static void cp2112_gpio_poll_callback(struct work_struct *work) goto exit; gpio_mask = ret; - - while (virqs) { - virq = ffs(virqs) - 1; - virqs &= ~BIT(virq); - + for_each_set_bit(virq, &dev->irq_mask, 8) { if (!dev->gc.to_irq) break; |