回复: 回复: [PATCH v2 2/2] irqchip: Add StarFive external interrupt controller

From: Changhuang Liang
Date: Tue Feb 20 2024 - 04:39:38 EST


Hi, Thomas

> -----邮件原件-----
> 发件人: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> 发送时间: 2024年2月20日 17:28
> 收件人: Changhuang Liang <changhuang.liang@xxxxxxxxxxxxxxxx>; Rob
> Herring <robh+dt@xxxxxxxxxx>; Krzysztof Kozlowski
> <krzysztof.kozlowski+dt@xxxxxxxxxx>; Conor Dooley <conor+dt@xxxxxxxxxx>;
> Philipp Zabel <p.zabel@xxxxxxxxxxxxxx>
> 抄送: Leyfoon Tan <leyfoon.tan@xxxxxxxxxxxxxxxx>; Jack Zhu
> <jack.zhu@xxxxxxxxxxxxxxxx>; linux-kernel@xxxxxxxxxxxxxxx;
> devicetree@xxxxxxxxxxxxxxx
> 主题: Re: 回复: [PATCH v2 2/2] irqchip: Add StarFive external interrupt
> controller
>
> On Sun, Feb 18 2024 at 02:36, Changhuang Liang wrote:
> >> On Mon, Jan 29 2024 at 21:58, Changhuang Liang wrote:
> > [...]
> >> > +static void starfive_intc_mod(struct starfive_irq_chip *irqc, u32
> >> > +reg, u32 mask, u32 data) {
> >> > + u32 value;
> >> > +
> >> > + value = ioread32(irqc->base + reg) & ~mask;
> >> > + data &= mask;
> >>
> >> Why?
> >>
> >
> > If I want to update the reg GENMASK(7, 4) to value 5, the data I
> > will pass in 5 << 4
>
> All call sites pass a single bit to set/clear, right? So this GENMASK argument
> does not make sense at all.
>

Yes, I will update this function