On Thu, Jul 30, 2020 at 06:28:01PM +0300, Serge Semin wrote: > Add a new macro DWAPB_MAX_GPIOS which defines the maximum possible number > of GPIO lines corresponding to the maximum DW APB GPIO controller port > width. Use the new macro instead of number literal 32 where it's > applicable. Reviewed-by: Andy Shevchenko <andy.shevchenko@xxxxxxxxx> > Suggested-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx> > Signed-off-by: Serge Semin <Sergey.Semin@xxxxxxxxxxxxxxxxxxxx> > --- > drivers/gpio/gpio-dwapb.c | 8 ++++---- > include/linux/platform_data/gpio-dwapb.h | 4 +++- > 2 files changed, 7 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpio/gpio-dwapb.c b/drivers/gpio/gpio-dwapb.c > index 3081213247d8..f34001152850 100644 > --- a/drivers/gpio/gpio-dwapb.c > +++ b/drivers/gpio/gpio-dwapb.c > @@ -162,7 +162,7 @@ static struct dwapb_gpio_port *dwapb_offs_to_port(struct dwapb_gpio *gpio, unsig > > for (i = 0; i < gpio->nr_ports; i++) { > port = &gpio->ports[i]; > - if (port->idx == offs / 32) > + if (port->idx == offs / DWAPB_MAX_GPIOS) > return port; > } > > @@ -182,7 +182,7 @@ static void dwapb_toggle_trigger(struct dwapb_gpio *gpio, unsigned int offs) > > pol = dwapb_read(gpio, GPIO_INT_POLARITY); > /* Just read the current value right out of the data register */ > - val = gc->get(gc, offs % 32); > + val = gc->get(gc, offs % DWAPB_MAX_GPIOS); > if (val) > pol &= ~BIT(offs); > else > @@ -197,7 +197,7 @@ static u32 dwapb_do_irq(struct dwapb_gpio *gpio) > irq_hw_number_t hwirq; > > irq_status = dwapb_read(gpio, GPIO_INTSTATUS); > - for_each_set_bit(hwirq, &irq_status, 32) { > + for_each_set_bit(hwirq, &irq_status, DWAPB_MAX_GPIOS) { > int gpio_irq = irq_find_mapping(gpio->domain, hwirq); > u32 irq_type = irq_get_trigger_type(gpio_irq); > > @@ -599,7 +599,7 @@ static struct dwapb_platform_data *dwapb_gpio_get_pdata(struct device *dev) > dev_info(dev, > "failed to get number of gpios for port%d\n", > i); > - pp->ngpio = 32; > + pp->ngpio = DWAPB_MAX_GPIOS; > } > > pp->irq_shared = false; > diff --git a/include/linux/platform_data/gpio-dwapb.h b/include/linux/platform_data/gpio-dwapb.h > index ff1be737bad6..0aa5c6720259 100644 > --- a/include/linux/platform_data/gpio-dwapb.h > +++ b/include/linux/platform_data/gpio-dwapb.h > @@ -6,12 +6,14 @@ > #ifndef GPIO_DW_APB_H > #define GPIO_DW_APB_H > > +#define DWAPB_MAX_GPIOS 32 > + > struct dwapb_port_property { > struct fwnode_handle *fwnode; > unsigned int idx; > unsigned int ngpio; > unsigned int gpio_base; > - int irq[32]; > + int irq[DWAPB_MAX_GPIOS]; > bool irq_shared; > }; > > -- > 2.27.0 > -- With Best Regards, Andy Shevchenko