kernel: bump 4.14 to 4.14.118
[openwrt/staging/blogic.git] / target / linux / brcm63xx / patches-4.14 / 143-gpio-fix-device-tree-gpio-hogs-on-dual-role-gpio-pin.patch
index 436f1aa532015a2b04f5d548191ba492d2087fb7..61e1b282c7371227d8675b3ecd85a0c845d2629a 100644 (file)
@@ -68,18 +68,25 @@ Signed-off-by: Jonas Gorski <jonas.gorski@gmail.com>
                        ret = gpiod_hog(desc, name, lflags, dflags);
                        if (ret < 0) {
                                of_node_put(np);
-@@ -499,7 +506,10 @@ int of_gpiochip_add(struct gpio_chip *ch
+@@ -499,12 +506,13 @@ int of_gpiochip_add(struct gpio_chip *ch
  
        of_node_get(chip->of_node);
  
--      return of_gpiochip_scan_gpios(chip);
-+      if (!chip->request)
-+              status = of_gpiochip_scan_gpios(chip, 0, chip->ngpio);
-+
-+      return status;
+-      status = of_gpiochip_scan_gpios(chip);
+-      if (status) {
+-              of_node_put(chip->of_node);
+-              gpiochip_remove_pin_ranges(chip);
++      if (!chip->request) {
++              status = of_gpiochip_scan_gpios(chip);
++              if (status) {
++                      of_node_put(chip->of_node);
++                      gpiochip_remove_pin_ranges(chip);
++              }
+       }
+-
+       return status;
  }
  
- void of_gpiochip_remove(struct gpio_chip *chip)
 --- a/drivers/gpio/gpiolib.c
 +++ b/drivers/gpio/gpiolib.c
 @@ -1938,7 +1938,8 @@ int gpiochip_add_pingroup_range(struct g