Re: drivers/pinctrl/cirrus/pinctrl-lochnagar.c:52:53: error: pasting "LOCHNAGAR1_" and "(" does not give a valid preprocessing token

From: Charles Keepax
Date: Wed Nov 15 2023 - 04:38:06 EST


On Tue, Nov 14, 2023 at 02:40:38PM +0100, Linus Walleij wrote:
> On Tue, Nov 7, 2023 at 6:19 AM kernel test robot <lkp@xxxxxxxxx> wrote:
>
> > >> drivers/pinctrl/cirrus/pinctrl-lochnagar.c:52:53: error: pasting "LOCHNAGAR1_" and "(" does not give a valid preprocessing token
> > 52 | .name = NAME, .type = LN_PTYPE_GPIO, .reg = LOCHNAGAR##REV##_##REG, \
> > | ^~~~~~~~~
> > drivers/pinctrl/cirrus/pinctrl-lochnagar.c:67:9: note: in expansion of macro 'LN_PIN_GPIO'
> > 67 | LN_PIN_GPIO(1, ID, NAME, REG, SHIFT, INVERT)
> > | ^~~~~~~~~~~
>
> I looked a bit at this, can this be due to the fact that the macros use defines
> from include/dt-bindings/...* and that MIPS does not use these includes
> somehow, such as not using the same dtc compiler?
>
> Rob, do you know the story of how MIPS interoperates with <dt-bindings/*>?
>

Is that what is going on here? I though this was the long standing
problem that MIPS has some global define for RST so the macro that
string pastes that in, no longer pastes in the letters RST but some
value instead.

It has somewhat been on my radar to fix at some point, but I have
in general been a little unsure how to proceed. RST feels like
a mega over generic macro name to be exporting, so in some ways
feels like fixing that would be nice. On the other side, renaming
the register on the Lochnagar side would be very easy, although it
would mean the register naming no longer matches all the hardware
documentation which would be kinda lame.

Thanks,
Charles