Hi Biju, On Thu, 20 Feb 2025 at 14:04, Biju Das <biju.das.jz@xxxxxxxxxxxxxx> wrote: > Both R-Car Gen4 and RZ/G3E SoCs have similar register layout. Introduce > gen4_type variable to struct rcar_canfd_hw_info for the preparation of > adding RZ/G3E driver support. > > Signed-off-by: Biju Das <biju.das.jz@xxxxxxxxxxxxxx> Thanks for your patch! > --- a/drivers/net/can/rcar/rcar_canfd.c > +++ b/drivers/net/can/rcar/rcar_canfd.c > @@ -516,6 +516,7 @@ struct rcar_canfd_hw_info { > /* hardware features */ > unsigned shared_global_irqs:1; /* Has shared global irqs */ > unsigned multi_channel_irqs:1; /* Has multiple channel irqs */ > + unsigned gen4_type:1; /* Has gen4 type reg layout */ Perhaps this can be replaced by a (or more) more descriptive feature flags, like you did before when introducing rcar_canfd_hw_info? > }; > > /* Channel priv data */ > @@ -596,6 +597,7 @@ static const struct rcar_canfd_hw_info rcar_gen4_hw_info = { > .max_channels = 8, > .postdiv = 2, > .shared_global_irqs = 1, > + .gen4_type = 1, > }; > > static const struct rcar_canfd_hw_info rzg2l_hw_info = { > @@ -607,7 +609,7 @@ static const struct rcar_canfd_hw_info rzg2l_hw_info = { > /* Helper functions */ > static inline bool is_gen4(struct rcar_canfd_global *gpriv) > { > - return gpriv->info == &rcar_gen4_hw_info; > + return gpriv->info->gen4_type; > } And hopefully we can get rid of is_gen4() in the process, too... > > static inline u32 reg_gen4(struct rcar_canfd_global *gpriv, 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