[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <87mthnxiiu.wl-maz@kernel.org>
Date: Fri, 18 Mar 2022 17:44:25 +0000
From: Marc Zyngier <maz@...nel.org>
To: "Lad, Prabhakar" <prabhakar.csengg@...il.com>
Cc: Lad Prabhakar <prabhakar.mahadev-lad.rj@...renesas.com>,
Thomas Gleixner <tglx@...utronix.de>,
Rob Herring <robh+dt@...nel.org>,
Linus Walleij <linus.walleij@...aro.org>,
Bartosz Golaszewski <brgl@...ev.pl>,
Geert Uytterhoeven <geert+renesas@...der.be>,
Philipp Zabel <p.zabel@...gutronix.de>,
LKML <linux-kernel@...r.kernel.org>,
"open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS"
<devicetree@...r.kernel.org>,
"open list:GPIO SUBSYSTEM" <linux-gpio@...r.kernel.org>,
Linux-Renesas <linux-renesas-soc@...r.kernel.org>,
Biju Das <biju.das.jz@...renesas.com>
Subject: Re: [RFC PATCH v4 2/5] irqchip: Add RZ/G2L IA55 Interrupt Controller driver
On Fri, 18 Mar 2022 14:59:41 +0000,
"Lad, Prabhakar" <prabhakar.csengg@...il.com> wrote:
>
> Hi Marc,
>
> Thank you for the review.
>
> On Thu, Mar 17, 2022 at 4:13 PM Marc Zyngier <maz@...nel.org> wrote:
> >
> > On Thu, 17 Mar 2022 01:24:01 +0000,
> > Lad Prabhakar <prabhakar.mahadev-lad.rj@...renesas.com> wrote:
> > >
> > > +static struct irq_chip irqc_chip = {
> > > + .name = "rzg2l-irqc",
> > > + .irq_eoi = rzg2l_irqc_eoi,
> > > + .irq_mask = irq_chip_mask_parent,
> > > + .irq_unmask = irq_chip_unmask_parent,
> > > + .irq_disable = rzg2l_irqc_irq_disable,
> > > + .irq_enable = rzg2l_irqc_irq_enable,
> >
> > So this looks a bit odd. irq_mask only calls the parent and does nothing
> > locally, while irq_disable does something locally and calls into the
> > parent. If the parent is a GIC, this is turned into a mask (GIC has no
> > notion of disabled).
> >
> My understanding for enable callback is one time call during irq setup
> and for the disable callback it will be called during irq shutdown.
> During enable/disable callback we config the required registers.
> For mask callback this will be called when an interrupt occurs and for
> unmask we want to re-enable the interrupt. Since there are no specific
> registers to mask/unmask on RZ/G2L the callbacks point to
> irq_chip_mask_parent/irq_chip_unmask_parent.
>
> I could move all the code from enable/disable callbacks to mask/unmask
> callbacks and drop setting irq_enable/irq_disable completely. Please
> let me know what should be the correct approach.
I'm OK with your current setup, but I just wanted to check that this
was your understanding as well.
M.
--
Without deviation from the norm, progress is not possible.
Powered by blists - more mailing lists