On Mon, Feb 12 2024 at 17:38, Geert Uytterhoeven wrote: >> -static void rzg2l_tint_eoi(struct irq_data *d) >> +static void rzg2l_clear_tint_int(struct rzg2l_irqc_priv *priv, >> + unsigned int hwirq) >> { >> - unsigned int hw_irq = irqd_to_hwirq(d) - IRQC_TINT_START; >> - struct rzg2l_irqc_priv *priv = irq_data_to_priv(d); >> - u32 bit = BIT(hw_irq); >> + u32 bit = BIT(hwirq - IRQC_TINT_START); >> u32 reg; >> >> reg = readl_relaxed(priv->base + TSCR); >> @@ -127,7 +126,7 @@ static void rzg2l_irqc_eoi(struct irq_data *d) >> if (hw_irq >= IRQC_IRQ_START && hw_irq <= IRQC_IRQ_COUNT) >> rzg2l_irq_eoi(d); >> else if (hw_irq >= IRQC_TINT_START && hw_irq < IRQC_NUM_IRQ) >> - rzg2l_tint_eoi(d); >> + rzg2l_clear_tint_int(priv, hw_irq); > > Perhaps pass the tint number (i.e. "hw_irq - IRQC_TINT_START") > instead? No. You have to do that on all call sites then. There is another coming in the next patch AFAICT. Thanks, tglx