Hi Marc, On Thu, May 12, 2022 at 9:23 AM Marc Zyngier <maz@xxxxxxxxxx> wrote: > On Wed, 11 May 2022 19:32:07 +0100, > Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx> wrote: > > > > Add a driver for the Renesas RZ/G2L Interrupt Controller. > > > > This supports external pins being used as interrupts. It supports > > one line for NMI, 8 external pins and 32 GPIO pins (out of 123) > > to be used as IRQ lines. > > > > Signed-off-by: Lad Prabhakar <prabhakar.mahadev-lad.rj@xxxxxxxxxxxxxx> > > +static int rzg2l_irqc_init(struct device_node *node, struct device_node *parent) > > +{ > > + struct irq_domain *irq_domain, *parent_domain; > > + struct reset_control *resetn; > > + struct rzg2l_irqc_priv *priv; > > + struct clk *clk; > > + struct clk *pclk; > > + int ret; > > + > > + priv = kzalloc(sizeof(*priv), GFP_KERNEL); > > + if (!priv) > > + return -ENOMEM; > > Since you are implementing this as a platform driver, consider > converting this to the devm_* helpers (you can obtain the device > structure via of_find_device_by_node()). So that's the missing piece. Still, it would be more efficient to just pass the pointer, as platform_irqchip_probe() already has the pointer. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds