gpio: msic: Remove duplicate check in IRQ handler
authorAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Tue, 29 Jan 2019 19:01:30 +0000 (21:01 +0200)
committerAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Fri, 8 Feb 2019 13:55:39 +0000 (15:55 +0200)
There is no need to check for non-zero pending since for_each_set_bit() does it
on the first iteration.

While here, drop redundant assignment.

Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
drivers/gpio/gpio-msic.c

index 3b34dbe..138569f 100644 (file)
@@ -237,20 +237,17 @@ static void msic_gpio_irq_handler(struct irq_desc *desc)
        struct msic_gpio *mg = irq_data_get_irq_handler_data(data);
        struct irq_chip *chip = irq_data_get_irq_chip(data);
        struct intel_msic *msic = pdev_to_intel_msic(mg->pdev);
+       unsigned long pending;
        int i;
        int bitnr;
        u8 pin;
-       unsigned long pending = 0;
 
        for (i = 0; i < (mg->chip.ngpio / BITS_PER_BYTE); i++) {
                intel_msic_irq_read(msic, INTEL_MSIC_GPIO0LVIRQ + i, &pin);
                pending = pin;
 
-               if (pending) {
-                       for_each_set_bit(bitnr, &pending, BITS_PER_BYTE)
-                               generic_handle_irq(mg->irq_base +
-                                                  (i * BITS_PER_BYTE) + bitnr);
-               }
+               for_each_set_bit(bitnr, &pending, BITS_PER_BYTE)
+                       generic_handle_irq(mg->irq_base + i * BITS_PER_BYTE + bitnr);
        }
        chip->irq_eoi(data);
 }