On Sun, Dec 29, 2019 at 02:30:59AM +0100, Linus Walleij wrote: > We need to convert all old gpio irqchips to pass the irqchip > setup along when adding the gpio_chip. For more info see > drivers/gpio/TODO. > > Set up the pin ranges using the new callback. Maybe have this one split as a separate patch? Same what we do for Baytrail and Cherryview. > Signed-off-by: Linus Walleij <linus.walleij@xxxxxxxxxx> > --- > drivers/pinctrl/intel/pinctrl-intel.c | 61 +++++++++++++++------------ > 1 file changed, 35 insertions(+), 26 deletions(-) > > diff --git a/drivers/pinctrl/intel/pinctrl-intel.c b/drivers/pinctrl/intel/pinctrl-intel.c > index 4860bc9a4e48..ffacd77861f7 100644 > --- a/drivers/pinctrl/intel/pinctrl-intel.c > +++ b/drivers/pinctrl/intel/pinctrl-intel.c > @@ -1160,8 +1160,8 @@ static irqreturn_t intel_gpio_irq(int irq, void *data) > return ret; > } > > -static int intel_gpio_add_pin_ranges(struct intel_pinctrl *pctrl, > - const struct intel_community *community) > +static int intel_gpio_add_community_ranges(struct intel_pinctrl *pctrl, > + const struct intel_community *community) > { > int ret = 0, i; > > @@ -1181,6 +1181,24 @@ static int intel_gpio_add_pin_ranges(struct intel_pinctrl *pctrl, > return ret; > } > > +static int intel_gpio_add_pin_ranges(struct gpio_chip *gc) > +{ > + struct intel_pinctrl *pctrl = gpiochip_get_data(gc); > + int ret, i; > + > + for (i = 0; i < pctrl->ncommunities; i++) { > + struct intel_community *community = &pctrl->communities[i]; > + > + ret = intel_gpio_add_community_ranges(pctrl, community); > + if (ret) { > + dev_err(pctrl->dev, "failed to add GPIO pin range\n"); > + return ret; > + } > + } > + > + return 0; > +} > + > static unsigned int intel_gpio_ngpio(const struct intel_pinctrl *pctrl) > { > const struct intel_community *community; > @@ -1205,7 +1223,8 @@ static unsigned int intel_gpio_ngpio(const struct intel_pinctrl *pctrl) > > static int intel_gpio_probe(struct intel_pinctrl *pctrl, int irq) > { > - int ret, i; > + int ret; > + struct gpio_irq_chip *girq; Nit: Can you order these in "reverse christmas tree" like, struct gpio_irq_chip *girq; int ret; Otherwise looks good to me, thanks!