Skip to content

Commit e9d7748

Browse files
RengarajanSSgregkh
authored andcommitted
misc: microchip: pci1xxxx: Fix incorrect IRQ status handling during ack
Under irq_ack, pci1xxxx_assign_bit reads the current interrupt status, modifies and writes the entire value back. Since, the IRQ status bit gets cleared on writing back, the better approach is to directly write the bitmask to the register in order to preserve the value. Fixes: 1f4d8ae ("misc: microchip: pci1xxxx: Add gpio irq handler and irq helper functions irq_ack, irq_mask, irq_unmask and irq_set_type of irq_chip.") Cc: stable <stable@kernel.org> Signed-off-by: Rengarajan S <rengarajan.s@microchip.com> Link: https://lore.kernel.org/r/20250313170856.20868-3-rengarajan.s@microchip.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
1 parent 18eb77c commit e9d7748

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

drivers/misc/mchp_pci1xxxx/mchp_pci1xxxx_gpio.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,7 @@ static void pci1xxxx_gpio_irq_ack(struct irq_data *data)
168168
unsigned long flags;
169169

170170
spin_lock_irqsave(&priv->lock, flags);
171-
pci1xxx_assign_bit(priv->reg_base, INTR_STAT_OFFSET(gpio), (gpio % 32), true);
171+
writel(BIT(gpio % 32), priv->reg_base + INTR_STAT_OFFSET(gpio));
172172
spin_unlock_irqrestore(&priv->lock, flags);
173173
}
174174

0 commit comments

Comments
 (0)