pt., 2 sie 2019 o 13:20 Arnd Bergmann <arnd@xxxxxxxx> napisał(a): > > On Fri, Aug 2, 2019 at 9:10 AM Bartosz Golaszewski > <bgolaszewski@xxxxxxxxxxxx> wrote: > > > -#include <mach/hardware.h> > > > -#include <mach/platform.h> > > > +#define _GPREG(x) (x) > > > > What purpose does this macro serve? > > > > > > > > #define LPC32XX_GPIO_P3_INP_STATE _GPREG(0x000) > > > #define LPC32XX_GPIO_P3_OUTP_SET _GPREG(0x004) > > In the existing code base, this macro converts a register offset to > an __iomem pointer for a gpio register. I changed the definition of the > macro here to keep the number of changes down, but I it's just > as easy to remove it if you prefer. Could you just add a comment so that it's clear at first glance? > > > > @@ -167,14 +166,26 @@ struct lpc32xx_gpio_chip { > > > struct gpio_regs *gpio_grp; > > > }; > > > > > > +void __iomem *gpio_reg_base; > > > > Any reason why this can't be made part of struct lpc32xx_gpio_chip? > > It could be, but it's the same for each instance, and not known until > probe() time, so the same pointer would need to be copied into each > instance that is otherwise read-only. > > Let me know if you'd prefer me to rework these two things or leave > them as they are. I would prefer not to have global state in the driver, let's just store the pointer in the data passed to gpiochip_add_data(). Bart > > > > +static inline u32 gpreg_read(unsigned long offset) > > > > Here and elsewhere: could you please keep the lpc32xx_gpio prefix for > > all symbols? > > Sure. > > Arnd