diff mbox

pinctrl: iproc: Fix iProc and NSP GPIO support

Message ID 1476754901-3447-1-git-send-email-ray.jui@broadcom.com
State New
Headers show

Commit Message

Ray Jui Oct. 18, 2016, 1:41 a.m. UTC
Since commit 44a7185c2ae6 ("of/platform: Add common method to populate
default bus"), ARM64 platform devices are populated at the
arch_initcall_sync level; as a result, the platform_driver_probe calls
in both the iProc and NSP GPIO drivers fail with -ENODEV since by that
time the platform device was not yet registered.

Replace platform_driver_probe with platform_driver_register, that allow
the device to be register later

Signed-off-by: Ray Jui <ray.jui@broadcom.com>
---
 drivers/pinctrl/bcm/pinctrl-iproc-gpio.c | 2 +-
 drivers/pinctrl/bcm/pinctrl-nsp-gpio.c   | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

Comments

Linus Walleij Oct. 21, 2016, 12:26 p.m. UTC | #1
On Tue, Oct 18, 2016 at 3:41 AM, Ray Jui <ray.jui@broadcom.com> wrote:

> Since commit 44a7185c2ae6 ("of/platform: Add common method to populate
> default bus"), ARM64 platform devices are populated at the
> arch_initcall_sync level; as a result, the platform_driver_probe calls
> in both the iProc and NSP GPIO drivers fail with -ENODEV since by that
> time the platform device was not yet registered.
>
> Replace platform_driver_probe with platform_driver_register, that allow
> the device to be register later
>
> Signed-off-by: Ray Jui <ray.jui@broadcom.com>

Patch applied for fixes.

Yours,
Linus Walleij
--
To unsubscribe from this list: send the line "unsubscribe linux-gpio" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/drivers/pinctrl/bcm/pinctrl-iproc-gpio.c b/drivers/pinctrl/bcm/pinctrl-iproc-gpio.c
index 7f77007..5d1e505c3 100644
--- a/drivers/pinctrl/bcm/pinctrl-iproc-gpio.c
+++ b/drivers/pinctrl/bcm/pinctrl-iproc-gpio.c
@@ -844,6 +844,6 @@  static struct platform_driver iproc_gpio_driver = {
 
 static int __init iproc_gpio_init(void)
 {
-	return platform_driver_probe(&iproc_gpio_driver, iproc_gpio_probe);
+	return platform_driver_register(&iproc_gpio_driver);
 }
 arch_initcall_sync(iproc_gpio_init);
diff --git a/drivers/pinctrl/bcm/pinctrl-nsp-gpio.c b/drivers/pinctrl/bcm/pinctrl-nsp-gpio.c
index 35783db..c8deb8b 100644
--- a/drivers/pinctrl/bcm/pinctrl-nsp-gpio.c
+++ b/drivers/pinctrl/bcm/pinctrl-nsp-gpio.c
@@ -741,6 +741,6 @@  static struct platform_driver nsp_gpio_driver = {
 
 static int __init nsp_gpio_init(void)
 {
-	return platform_driver_probe(&nsp_gpio_driver, nsp_gpio_probe);
+	return platform_driver_register(&nsp_gpio_driver);
 }
 arch_initcall_sync(nsp_gpio_init);