> > v1->v2: > > - No changes. > > Is this correct? Ah my apologies, I added the wrong comment here. I put it in "v2 1/2". > > +static int mlxbf3_gpio_add_pin_ranges(struct gpio_chip *chip) { > > + unsigned int id = 0; > > + int ret; > > + > > + if (chip->ngpio % MLXBF3_GPIO_MAX_PINS_PER_BLOCK) > > + id = 1; > > This id calculation seems wrong to me as I said in v1 review. > Why do you think the above is what you want and not just working by luck? I would like to get the gpio block id which can only be 0 or 1 on BlueField-3 (only 2 gpio blocks, one with 32 gpio pins and one with 24 gpio pins). The above logic was an "easy" way for me to get the gpio block id. Then the pin_base for each gpio block is: pin_base = id * MLXBF3_GPIO_MAX_PINS_PER_BLOCK