Message ID | 20230113215352.44272-2-andriy.shevchenko@linux.intel.com |
---|---|
State | Accepted |
Commit | c40aa80dd4569848ac89454321fa035a6ca26976 |
Headers | show |
Series | gpiolib: get rid of exessive ->of_gpio_ranges_fallback() | expand |
diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c index 16858ef4dac1..49cfcc7510e1 100644 --- a/drivers/gpio/gpiolib.c +++ b/drivers/gpio/gpiolib.c @@ -533,6 +533,14 @@ static void gpiochip_free_valid_mask(struct gpio_chip *gc) static int gpiochip_add_pin_ranges(struct gpio_chip *gc) { + /* + * Device Tree platforms are supposed to use "gpio-ranges" + * property. This check ensures that the ->add_pin_ranges() + * won't be called for them. + */ + if (device_property_present(&gc->gpiodev->dev, "gpio-ranges")) + return 0; + if (gc->add_pin_ranges) return gc->add_pin_ranges(gc);
The ->add_pin_ranges() is supposed to be called for the backward compatiblity on Device Tree platforms or non-DT ones. Ensure that by checking presense of the "gpio-ranges" property. This allows to clean up a few existing drivers to avoid duplication of the check. Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com> --- drivers/gpio/gpiolib.c | 8 ++++++++ 1 file changed, 8 insertions(+)