gpio: msic: Remove duplicate check in IRQ handler
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>
This commit is contained in:
@@ -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 msic_gpio *mg = irq_data_get_irq_handler_data(data);
|
||||||
struct irq_chip *chip = irq_data_get_irq_chip(data);
|
struct irq_chip *chip = irq_data_get_irq_chip(data);
|
||||||
struct intel_msic *msic = pdev_to_intel_msic(mg->pdev);
|
struct intel_msic *msic = pdev_to_intel_msic(mg->pdev);
|
||||||
|
unsigned long pending;
|
||||||
int i;
|
int i;
|
||||||
int bitnr;
|
int bitnr;
|
||||||
u8 pin;
|
u8 pin;
|
||||||
unsigned long pending = 0;
|
|
||||||
|
|
||||||
for (i = 0; i < (mg->chip.ngpio / BITS_PER_BYTE); i++) {
|
for (i = 0; i < (mg->chip.ngpio / BITS_PER_BYTE); i++) {
|
||||||
intel_msic_irq_read(msic, INTEL_MSIC_GPIO0LVIRQ + i, &pin);
|
intel_msic_irq_read(msic, INTEL_MSIC_GPIO0LVIRQ + i, &pin);
|
||||||
pending = pin;
|
pending = pin;
|
||||||
|
|
||||||
if (pending) {
|
for_each_set_bit(bitnr, &pending, BITS_PER_BYTE)
|
||||||
for_each_set_bit(bitnr, &pending, BITS_PER_BYTE)
|
generic_handle_irq(mg->irq_base + i * BITS_PER_BYTE + bitnr);
|
||||||
generic_handle_irq(mg->irq_base +
|
|
||||||
(i * BITS_PER_BYTE) + bitnr);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
chip->irq_eoi(data);
|
chip->irq_eoi(data);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user