diff options
author | René van Dorst <opensource@vdorst.com> | 2018-07-19 12:55:55 +0200 |
---|---|---|
committer | Mathias Kresin <dev@kresin.me> | 2018-08-04 08:39:35 +0200 |
commit | 0ae9396556584db2dac73364af44758a5ccf4873 (patch) | |
tree | 01962934482c691deff34200dc6d3c3d84f71538 | |
parent | 1d18a14a90c79ad56239a9fafe590427f1ae6aa5 (diff) | |
download | upstream-0ae9396556584db2dac73364af44758a5ccf4873.tar.gz upstream-0ae9396556584db2dac73364af44758a5ccf4873.tar.bz2 upstream-0ae9396556584db2dac73364af44758a5ccf4873.zip |
treewide: convert gpio-export to platform driver
Without this patch you will get an error "gpio-export probe deferral
not supported" when you try to export i2c expander gpio pins.
gpio-export is probed long before i2c-bus and i2c expander are created
and it doesn't retry it so none pins are exported.
Signed-off-by: René van Dorst <opensource@vdorst.com>
apply the change to all instances of the gpio exports patch
Signed-off-by: Mathias Kresin <dev@kresin.me>
3 files changed, 12 insertions, 21 deletions
diff --git a/target/linux/ath79/patches-4.14/0024-GPIO-add-named-gpio-exports.patch b/target/linux/ath79/patches-4.14/0024-GPIO-add-named-gpio-exports.patch index 10ca24bc71..ea93538a4c 100644 --- a/target/linux/ath79/patches-4.14/0024-GPIO-add-named-gpio-exports.patch +++ b/target/linux/ath79/patches-4.14/0024-GPIO-add-named-gpio-exports.patch @@ -22,7 +22,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> #include "gpiolib.h" -@@ -506,3 +508,71 @@ void of_gpiochip_remove(struct gpio_chip +@@ -506,3 +508,68 @@ void of_gpiochip_remove(struct gpio_chip gpiochip_remove_pin_ranges(chip); of_node_put(chip->of_node); } @@ -32,7 +32,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> + { /* sentinel */ } +}; + -+static int __init of_gpio_export_probe(struct platform_device *pdev) ++static int of_gpio_export_probe(struct platform_device *pdev) +{ + struct device_node *np = pdev->dev.of_node; + struct device_node *cnp; @@ -87,13 +87,10 @@ Signed-off-by: John Crispin <blogic@openwrt.org> + .owner = THIS_MODULE, + .of_match_table = of_match_ptr(gpio_export_ids), + }, ++ .probe = of_gpio_export_probe, +}; + -+static int __init of_gpio_export_init(void) -+{ -+ return platform_driver_probe(&gpio_export_driver, of_gpio_export_probe); -+} -+device_initcall(of_gpio_export_init); ++module_platform_driver(gpio_export_driver); --- a/drivers/gpio/gpiolib-sysfs.c +++ b/drivers/gpio/gpiolib-sysfs.c @@ -553,7 +553,7 @@ static struct class gpio_class = { diff --git a/target/linux/lantiq/patches-4.14/0030-GPIO-add-named-gpio-exports.patch b/target/linux/lantiq/patches-4.14/0030-GPIO-add-named-gpio-exports.patch index 013d802265..95cdf8c5af 100644 --- a/target/linux/lantiq/patches-4.14/0030-GPIO-add-named-gpio-exports.patch +++ b/target/linux/lantiq/patches-4.14/0030-GPIO-add-named-gpio-exports.patch @@ -22,7 +22,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> #include "gpiolib.h" -@@ -506,3 +508,75 @@ void of_gpiochip_remove(struct gpio_chip +@@ -506,3 +508,72 @@ void of_gpiochip_remove(struct gpio_chip gpiochip_remove_pin_ranges(chip); of_node_put(chip->of_node); } @@ -34,7 +34,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> + { /* sentinel */ } +}; + -+static int __init of_gpio_export_probe(struct platform_device *pdev) ++static int of_gpio_export_probe(struct platform_device *pdev) +{ + struct device_node *np = pdev->dev.of_node; + struct device_node *cnp; @@ -89,13 +89,10 @@ Signed-off-by: John Crispin <blogic@openwrt.org> + .owner = THIS_MODULE, + .of_match_table = of_match_ptr(gpio_export_ids), + }, ++ .probe = of_gpio_export_probe, +}; + -+static int __init of_gpio_export_init(void) -+{ -+ return platform_driver_probe(&gpio_export_driver, of_gpio_export_probe); -+} -+device_initcall(of_gpio_export_init); ++module_platform_driver(gpio_export_driver); + +#endif --- a/include/asm-generic/gpio.h diff --git a/target/linux/ramips/patches-4.14/0024-GPIO-add-named-gpio-exports.patch b/target/linux/ramips/patches-4.14/0024-GPIO-add-named-gpio-exports.patch index 10ca24bc71..ea93538a4c 100644 --- a/target/linux/ramips/patches-4.14/0024-GPIO-add-named-gpio-exports.patch +++ b/target/linux/ramips/patches-4.14/0024-GPIO-add-named-gpio-exports.patch @@ -22,7 +22,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> #include "gpiolib.h" -@@ -506,3 +508,71 @@ void of_gpiochip_remove(struct gpio_chip +@@ -506,3 +508,68 @@ void of_gpiochip_remove(struct gpio_chip gpiochip_remove_pin_ranges(chip); of_node_put(chip->of_node); } @@ -32,7 +32,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org> + { /* sentinel */ } +}; + -+static int __init of_gpio_export_probe(struct platform_device *pdev) ++static int of_gpio_export_probe(struct platform_device *pdev) +{ + struct device_node *np = pdev->dev.of_node; + struct device_node *cnp; @@ -87,13 +87,10 @@ Signed-off-by: John Crispin <blogic@openwrt.org> + .owner = THIS_MODULE, + .of_match_table = of_match_ptr(gpio_export_ids), + }, ++ .probe = of_gpio_export_probe, +}; + -+static int __init of_gpio_export_init(void) -+{ -+ return platform_driver_probe(&gpio_export_driver, of_gpio_export_probe); -+} -+device_initcall(of_gpio_export_init); ++module_platform_driver(gpio_export_driver); --- a/drivers/gpio/gpiolib-sysfs.c +++ b/drivers/gpio/gpiolib-sysfs.c @@ -553,7 +553,7 @@ static struct class gpio_class = { |