linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/9] fix deferred probing issue of platform_driver_probe
@ 2013-10-08 20:35 Wolfram Sang
  2013-10-08 20:35 ` [PATCH 1/9] i2c: i2c-designware-platdrv: replace platform_driver_probe to support deferred probing Wolfram Sang
                   ` (8 more replies)
  0 siblings, 9 replies; 15+ messages in thread
From: Wolfram Sang @ 2013-10-08 20:35 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: Wolfram Sang, linux-i2c, linux-kernel, linux-samsung-soc, linux-spi

We had some issues with deferred probing in the I2C subsystem. This series
attempts to fix a part of it. From the patch description:

===

Subsystems like pinctrl and gpio rightfully make use of deferred probing at
core level. Now, deferred drivers won't be retried if they don't have a .probe
function specified in the driver struct. Fix this driver to have that, so the
devices it supports won't get lost in a deferred probe.

===

I think it makes sense to remove platform_driver_probe from bus masters like
i2c and spi (especially since they are dependant on pinctrl these days). This
is what this series does. I had a look at dma drivers as well, but there are
more things to be considered, so delayed for now.

Please comment. If no objections are raised, I'd like to bring at least the I2C
patches into v3.12, so deferred devices will then be correctly probed. The
series is based on 3.12-rc4 and was compile-tested. It is available at

git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux.git platform_driver_probe_drop

Regards,

   Wolfram


Wolfram Sang (9):
  i2c: i2c-designware-platdrv: replace platform_driver_probe to support
    deferred probing
  i2c: i2c-imx: replace platform_driver_probe to support deferred
    probing
  i2c: i2c-mxs: replace platform_driver_probe to support deferred
    probing
  i2c: i2c-stu300: replace platform_driver_probe to support deferred
    probing
  spi: spi-au1550: replace platform_driver_probe to support deferred
    probing
  spi: spi-bfin5xx: replace platform_driver_probe to support deferred
    probing
  spi: spi-omap-uwire: replace platform_driver_probe to support deferred
    probing
  spi: spi-s3c64xx: replace platform_driver_probe to support deferred
    probing
  spi: spi-txx9: replace platform_driver_probe to support deferred
    probing

 drivers/i2c/busses/i2c-designware-platdrv.c |  5 +++--
 drivers/i2c/busses/i2c-imx.c                | 11 ++++++-----
 drivers/i2c/busses/i2c-mxs.c                |  3 ++-
 drivers/i2c/busses/i2c-stu300.c             | 11 +++++------
 drivers/spi/spi-au1550.c                    |  3 ++-
 drivers/spi/spi-bfin5xx.c                   |  5 +++--
 drivers/spi/spi-omap-uwire.c                |  5 +++--
 drivers/spi/spi-s3c64xx.c                   |  3 ++-
 drivers/spi/spi-txx9.c                      |  3 ++-
 9 files changed, 28 insertions(+), 21 deletions(-)

-- 
1.8.4.rc3


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 1/9] i2c: i2c-designware-platdrv: replace platform_driver_probe to support deferred probing
  2013-10-08 20:35 [PATCH 0/9] fix deferred probing issue of platform_driver_probe Wolfram Sang
@ 2013-10-08 20:35 ` Wolfram Sang
  2013-10-14  1:09   ` zhangfei gao
  2013-10-08 20:35 ` [PATCH 2/9] i2c: i2c-imx: " Wolfram Sang
                   ` (7 subsequent siblings)
  8 siblings, 1 reply; 15+ messages in thread
From: Wolfram Sang @ 2013-10-08 20:35 UTC (permalink / raw)
  To: linux-arm-kernel; +Cc: Wolfram Sang, Zhangfei Gao, linux-i2c, linux-kernel

Subsystems like pinctrl and gpio rightfully make use of deferred probing at
core level. Now, deferred drivers won't be retried if they don't have a .probe
function specified in the driver struct. Fix this driver to have that, so the
devices it supports won't get lost in a deferred probe.

Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Cc: Zhangfei Gao <zhangfei.gao@linaro.org>
---
 drivers/i2c/busses/i2c-designware-platdrv.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/i2c/busses/i2c-designware-platdrv.c b/drivers/i2c/busses/i2c-designware-platdrv.c
index 4c1b605..0aa0113 100644
--- a/drivers/i2c/busses/i2c-designware-platdrv.c
+++ b/drivers/i2c/busses/i2c-designware-platdrv.c
@@ -270,7 +270,8 @@ static SIMPLE_DEV_PM_OPS(dw_i2c_dev_pm_ops, dw_i2c_suspend, dw_i2c_resume);
 MODULE_ALIAS("platform:i2c_designware");
 
 static struct platform_driver dw_i2c_driver = {
-	.remove		= dw_i2c_remove,
+	.probe = dw_i2c_probe,
+	.remove = dw_i2c_remove,
 	.driver		= {
 		.name	= "i2c_designware",
 		.owner	= THIS_MODULE,
@@ -282,7 +283,7 @@ static struct platform_driver dw_i2c_driver = {
 
 static int __init dw_i2c_init_driver(void)
 {
-	return platform_driver_probe(&dw_i2c_driver, dw_i2c_probe);
+	return platform_driver_register(&dw_i2c_driver);
 }
 subsys_initcall(dw_i2c_init_driver);
 
-- 
1.8.4.rc3


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 2/9] i2c: i2c-imx: replace platform_driver_probe to support deferred probing
  2013-10-08 20:35 [PATCH 0/9] fix deferred probing issue of platform_driver_probe Wolfram Sang
  2013-10-08 20:35 ` [PATCH 1/9] i2c: i2c-designware-platdrv: replace platform_driver_probe to support deferred probing Wolfram Sang
@ 2013-10-08 20:35 ` Wolfram Sang
  2013-10-09  7:34   ` Uwe Kleine-König
  2013-10-08 20:35 ` [PATCH 3/9] i2c: i2c-mxs: " Wolfram Sang
                   ` (6 subsequent siblings)
  8 siblings, 1 reply; 15+ messages in thread
From: Wolfram Sang @ 2013-10-08 20:35 UTC (permalink / raw)
  To: linux-arm-kernel; +Cc: Wolfram Sang, kernel, linux-i2c, linux-kernel

Subsystems like pinctrl and gpio rightfully make use of deferred probing at
core level. Now, deferred drivers won't be retried if they don't have a .probe
function specified in the driver struct. Fix this driver to have that, so the
devices it supports won't get lost in a deferred probe.

Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Cc: kernel@pengutronix.de
---
 drivers/i2c/busses/i2c-imx.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/drivers/i2c/busses/i2c-imx.c b/drivers/i2c/busses/i2c-imx.c
index ccf4665..1d7efa3 100644
--- a/drivers/i2c/busses/i2c-imx.c
+++ b/drivers/i2c/busses/i2c-imx.c
@@ -365,7 +365,7 @@ static void i2c_imx_stop(struct imx_i2c_struct *i2c_imx)
 	clk_disable_unprepare(i2c_imx->clk);
 }
 
-static void __init i2c_imx_set_clk(struct imx_i2c_struct *i2c_imx,
+static void i2c_imx_set_clk(struct imx_i2c_struct *i2c_imx,
 							unsigned int rate)
 {
 	struct imx_i2c_clk_pair *i2c_clk_div = i2c_imx->hwdata->clk_div;
@@ -589,7 +589,7 @@ static struct i2c_algorithm i2c_imx_algo = {
 	.functionality	= i2c_imx_func,
 };
 
-static int __init i2c_imx_probe(struct platform_device *pdev)
+static int i2c_imx_probe(struct platform_device *pdev)
 {
 	const struct of_device_id *of_id = of_match_device(i2c_imx_dt_ids,
 							   &pdev->dev);
@@ -697,7 +697,7 @@ static int __init i2c_imx_probe(struct platform_device *pdev)
 	return 0;   /* Return OK */
 }
 
-static int __exit i2c_imx_remove(struct platform_device *pdev)
+static int i2c_imx_remove(struct platform_device *pdev)
 {
 	struct imx_i2c_struct *i2c_imx = platform_get_drvdata(pdev);
 
@@ -715,7 +715,8 @@ static int __exit i2c_imx_remove(struct platform_device *pdev)
 }
 
 static struct platform_driver i2c_imx_driver = {
-	.remove		= __exit_p(i2c_imx_remove),
+	.probe = i2c_imx_probe,
+	.remove = i2c_imx_remove,
 	.driver	= {
 		.name	= DRIVER_NAME,
 		.owner	= THIS_MODULE,
@@ -726,7 +727,7 @@ static struct platform_driver i2c_imx_driver = {
 
 static int __init i2c_adap_imx_init(void)
 {
-	return platform_driver_probe(&i2c_imx_driver, i2c_imx_probe);
+	return platform_driver_register(&i2c_imx_driver);
 }
 subsys_initcall(i2c_adap_imx_init);
 
-- 
1.8.4.rc3


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 3/9] i2c: i2c-mxs: replace platform_driver_probe to support deferred probing
  2013-10-08 20:35 [PATCH 0/9] fix deferred probing issue of platform_driver_probe Wolfram Sang
  2013-10-08 20:35 ` [PATCH 1/9] i2c: i2c-designware-platdrv: replace platform_driver_probe to support deferred probing Wolfram Sang
  2013-10-08 20:35 ` [PATCH 2/9] i2c: i2c-imx: " Wolfram Sang
@ 2013-10-08 20:35 ` Wolfram Sang
  2013-10-08 20:58   ` Marek Vasut
  2013-10-08 20:35 ` [PATCH 4/9] i2c: i2c-stu300: " Wolfram Sang
                   ` (5 subsequent siblings)
  8 siblings, 1 reply; 15+ messages in thread
From: Wolfram Sang @ 2013-10-08 20:35 UTC (permalink / raw)
  To: linux-arm-kernel; +Cc: Wolfram Sang, Marek Vasut, linux-i2c, linux-kernel

Subsystems like pinctrl and gpio rightfully make use of deferred probing at
core level. Now, deferred drivers won't be retried if they don't have a .probe
function specified in the driver struct. Fix this driver to have that, so the
devices it supports won't get lost in a deferred probe.

Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Cc: Marek Vasut <marex@denx.de>
---
 drivers/i2c/busses/i2c-mxs.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/i2c/busses/i2c-mxs.c b/drivers/i2c/busses/i2c-mxs.c
index f4a0167..b7c8577 100644
--- a/drivers/i2c/busses/i2c-mxs.c
+++ b/drivers/i2c/busses/i2c-mxs.c
@@ -780,12 +780,13 @@ static struct platform_driver mxs_i2c_driver = {
 		   .owner = THIS_MODULE,
 		   .of_match_table = mxs_i2c_dt_ids,
 		   },
+	.probe = mxs_i2c_probe,
 	.remove = mxs_i2c_remove,
 };
 
 static int __init mxs_i2c_init(void)
 {
-	return platform_driver_probe(&mxs_i2c_driver, mxs_i2c_probe);
+	return platform_driver_register(&mxs_i2c_driver);
 }
 subsys_initcall(mxs_i2c_init);
 
-- 
1.8.4.rc3


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 4/9] i2c: i2c-stu300: replace platform_driver_probe to support deferred probing
  2013-10-08 20:35 [PATCH 0/9] fix deferred probing issue of platform_driver_probe Wolfram Sang
                   ` (2 preceding siblings ...)
  2013-10-08 20:35 ` [PATCH 3/9] i2c: i2c-mxs: " Wolfram Sang
@ 2013-10-08 20:35 ` Wolfram Sang
  2013-10-09 13:37   ` Linus Walleij
  2013-10-08 20:35 ` [PATCH 5/9] spi: spi-au1550: " Wolfram Sang
                   ` (4 subsequent siblings)
  8 siblings, 1 reply; 15+ messages in thread
From: Wolfram Sang @ 2013-10-08 20:35 UTC (permalink / raw)
  To: linux-arm-kernel; +Cc: Wolfram Sang, Linus Walleij, linux-i2c, linux-kernel

Subsystems like pinctrl and gpio rightfully make use of deferred probing at
core level. Now, deferred drivers won't be retried if they don't have a .probe
function specified in the driver struct. Fix this driver to have that, so the
devices it supports won't get lost in a deferred probe.

Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
Cc: Linus Walleij <linus.walleij@linaro.org>
---
 drivers/i2c/busses/i2c-stu300.c | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/drivers/i2c/busses/i2c-stu300.c b/drivers/i2c/busses/i2c-stu300.c
index f8f6f2e..04a17b9 100644
--- a/drivers/i2c/busses/i2c-stu300.c
+++ b/drivers/i2c/busses/i2c-stu300.c
@@ -859,8 +859,7 @@ static const struct i2c_algorithm stu300_algo = {
 	.functionality	= stu300_func,
 };
 
-static int __init
-stu300_probe(struct platform_device *pdev)
+static int stu300_probe(struct platform_device *pdev)
 {
 	struct stu300_dev *dev;
 	struct i2c_adapter *adap;
@@ -966,8 +965,7 @@ static SIMPLE_DEV_PM_OPS(stu300_pm, stu300_suspend, stu300_resume);
 #define STU300_I2C_PM	NULL
 #endif
 
-static int __exit
-stu300_remove(struct platform_device *pdev)
+static int stu300_remove(struct platform_device *pdev)
 {
 	struct stu300_dev *dev = platform_get_drvdata(pdev);
 
@@ -989,13 +987,14 @@ static struct platform_driver stu300_i2c_driver = {
 		.pm	= STU300_I2C_PM,
 		.of_match_table = stu300_dt_match,
 	},
-	.remove		= __exit_p(stu300_remove),
+	.probe = stu300_probe,
+	.remove = stu300_remove,
 
 };
 
 static int __init stu300_init(void)
 {
-	return platform_driver_probe(&stu300_i2c_driver, stu300_probe);
+	return platform_driver_register(&stu300_i2c_driver);
 }
 
 static void __exit stu300_exit(void)
-- 
1.8.4.rc3


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 5/9] spi: spi-au1550: replace platform_driver_probe to support deferred probing
  2013-10-08 20:35 [PATCH 0/9] fix deferred probing issue of platform_driver_probe Wolfram Sang
                   ` (3 preceding siblings ...)
  2013-10-08 20:35 ` [PATCH 4/9] i2c: i2c-stu300: " Wolfram Sang
@ 2013-10-08 20:35 ` Wolfram Sang
  2013-10-09 10:59   ` Mark Brown
  2013-10-08 20:35 ` [PATCH 6/9] spi: spi-bfin5xx: " Wolfram Sang
                   ` (3 subsequent siblings)
  8 siblings, 1 reply; 15+ messages in thread
From: Wolfram Sang @ 2013-10-08 20:35 UTC (permalink / raw)
  To: linux-arm-kernel; +Cc: Wolfram Sang, Mark Brown, linux-spi, linux-kernel

Subsystems like pinctrl and gpio rightfully make use of deferred probing at
core level. Now, deferred drivers won't be retried if they don't have a .probe
function specified in the driver struct. Fix this driver to have that, so the
devices it supports won't get lost in a deferred probe.

Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
---
 drivers/spi/spi-au1550.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/spi/spi-au1550.c b/drivers/spi/spi-au1550.c
index 1d00d9b3..313dd49 100644
--- a/drivers/spi/spi-au1550.c
+++ b/drivers/spi/spi-au1550.c
@@ -985,6 +985,7 @@ static int au1550_spi_remove(struct platform_device *pdev)
 MODULE_ALIAS("platform:au1550-spi");
 
 static struct platform_driver au1550_spi_drv = {
+	.probe = au1550_spi_probe,
 	.remove = au1550_spi_remove,
 	.driver = {
 		.name = "au1550-spi",
@@ -1004,7 +1005,7 @@ static int __init au1550_spi_init(void)
 			printk(KERN_ERR "au1550-spi: cannot add memory"
 					"dbdma device\n");
 	}
-	return platform_driver_probe(&au1550_spi_drv, au1550_spi_probe);
+	return platform_driver_register(&au1550_spi_drv);
 }
 module_init(au1550_spi_init);
 
-- 
1.8.4.rc3


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 6/9] spi: spi-bfin5xx: replace platform_driver_probe to support deferred probing
  2013-10-08 20:35 [PATCH 0/9] fix deferred probing issue of platform_driver_probe Wolfram Sang
                   ` (4 preceding siblings ...)
  2013-10-08 20:35 ` [PATCH 5/9] spi: spi-au1550: " Wolfram Sang
@ 2013-10-08 20:35 ` Wolfram Sang
  2013-10-08 20:35 ` [PATCH 7/9] spi: spi-omap-uwire: " Wolfram Sang
                   ` (2 subsequent siblings)
  8 siblings, 0 replies; 15+ messages in thread
From: Wolfram Sang @ 2013-10-08 20:35 UTC (permalink / raw)
  To: linux-arm-kernel; +Cc: Wolfram Sang, Mark Brown, linux-spi, linux-kernel

Subsystems like pinctrl and gpio rightfully make use of deferred probing at
core level. Now, deferred drivers won't be retried if they don't have a .probe
function specified in the driver struct. Fix this driver to have that, so the
devices it supports won't get lost in a deferred probe.

Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
---
 drivers/spi/spi-bfin5xx.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/spi/spi-bfin5xx.c b/drivers/spi/spi-bfin5xx.c
index 45bdf73..a563bd5 100644
--- a/drivers/spi/spi-bfin5xx.c
+++ b/drivers/spi/spi-bfin5xx.c
@@ -1462,12 +1462,13 @@ static struct platform_driver bfin_spi_driver = {
 	},
 	.suspend	= bfin_spi_suspend,
 	.resume		= bfin_spi_resume,
-	.remove		= bfin_spi_remove,
+	.probe = bfin_spi_probe,
+	.remove = bfin_spi_remove,
 };
 
 static int __init bfin_spi_init(void)
 {
-	return platform_driver_probe(&bfin_spi_driver, bfin_spi_probe);
+	return platform_driver_register(&bfin_spi_driver);
 }
 subsys_initcall(bfin_spi_init);
 
-- 
1.8.4.rc3


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 7/9] spi: spi-omap-uwire: replace platform_driver_probe to support deferred probing
  2013-10-08 20:35 [PATCH 0/9] fix deferred probing issue of platform_driver_probe Wolfram Sang
                   ` (5 preceding siblings ...)
  2013-10-08 20:35 ` [PATCH 6/9] spi: spi-bfin5xx: " Wolfram Sang
@ 2013-10-08 20:35 ` Wolfram Sang
  2013-10-08 20:35 ` [PATCH 8/9] spi: spi-s3c64xx: " Wolfram Sang
  2013-10-08 20:35 ` [PATCH 9/9] spi: spi-txx9: " Wolfram Sang
  8 siblings, 0 replies; 15+ messages in thread
From: Wolfram Sang @ 2013-10-08 20:35 UTC (permalink / raw)
  To: linux-arm-kernel; +Cc: Wolfram Sang, Mark Brown, linux-spi, linux-kernel

Subsystems like pinctrl and gpio rightfully make use of deferred probing at
core level. Now, deferred drivers won't be retried if they don't have a .probe
function specified in the driver struct. Fix this driver to have that, so the
devices it supports won't get lost in a deferred probe.

Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
---
 drivers/spi/spi-omap-uwire.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/spi/spi-omap-uwire.c b/drivers/spi/spi-omap-uwire.c
index a6a8f09..9313fd3 100644
--- a/drivers/spi/spi-omap-uwire.c
+++ b/drivers/spi/spi-omap-uwire.c
@@ -557,7 +557,8 @@ static struct platform_driver uwire_driver = {
 		.name		= "omap_uwire",
 		.owner		= THIS_MODULE,
 	},
-	.remove		= uwire_remove,
+	.probe = uwire_probe,
+	.remove = uwire_remove,
 	// suspend ... unuse ck
 	// resume ... use ck
 };
@@ -579,7 +580,7 @@ static int __init omap_uwire_init(void)
 		omap_writel(val | 0x00AAA000, OMAP7XX_IO_CONF_9);
 	}
 
-	return platform_driver_probe(&uwire_driver, uwire_probe);
+	return platform_driver_register(&uwire_driver);
 }
 
 static void __exit omap_uwire_exit(void)
-- 
1.8.4.rc3


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 8/9] spi: spi-s3c64xx: replace platform_driver_probe to support deferred probing
  2013-10-08 20:35 [PATCH 0/9] fix deferred probing issue of platform_driver_probe Wolfram Sang
                   ` (6 preceding siblings ...)
  2013-10-08 20:35 ` [PATCH 7/9] spi: spi-omap-uwire: " Wolfram Sang
@ 2013-10-08 20:35 ` Wolfram Sang
  2013-10-08 20:35 ` [PATCH 9/9] spi: spi-txx9: " Wolfram Sang
  8 siblings, 0 replies; 15+ messages in thread
From: Wolfram Sang @ 2013-10-08 20:35 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: Wolfram Sang, Ben Dooks, Kukjin Kim, Mark Brown,
	linux-samsung-soc, linux-spi, linux-kernel

Subsystems like pinctrl and gpio rightfully make use of deferred probing at
core level. Now, deferred drivers won't be retried if they don't have a .probe
function specified in the driver struct. Fix this driver to have that, so the
devices it supports won't get lost in a deferred probe.

Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
---
 drivers/spi/spi-s3c64xx.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/spi/spi-s3c64xx.c b/drivers/spi/spi-s3c64xx.c
index 512b889..3df81c6 100644
--- a/drivers/spi/spi-s3c64xx.c
+++ b/drivers/spi/spi-s3c64xx.c
@@ -1633,6 +1633,7 @@ static struct platform_driver s3c64xx_spi_driver = {
 		.pm = &s3c64xx_spi_pm,
 		.of_match_table = of_match_ptr(s3c64xx_spi_dt_match),
 	},
+	.probe = s3c64xx_spi_probe,
 	.remove = s3c64xx_spi_remove,
 	.id_table = s3c64xx_spi_driver_ids,
 };
@@ -1640,7 +1641,7 @@ MODULE_ALIAS("platform:s3c64xx-spi");
 
 static int __init s3c64xx_spi_init(void)
 {
-	return platform_driver_probe(&s3c64xx_spi_driver, s3c64xx_spi_probe);
+	return platform_driver_register(&s3c64xx_spi_driver);
 }
 subsys_initcall(s3c64xx_spi_init);
 
-- 
1.8.4.rc3


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 9/9] spi: spi-txx9: replace platform_driver_probe to support deferred probing
  2013-10-08 20:35 [PATCH 0/9] fix deferred probing issue of platform_driver_probe Wolfram Sang
                   ` (7 preceding siblings ...)
  2013-10-08 20:35 ` [PATCH 8/9] spi: spi-s3c64xx: " Wolfram Sang
@ 2013-10-08 20:35 ` Wolfram Sang
  8 siblings, 0 replies; 15+ messages in thread
From: Wolfram Sang @ 2013-10-08 20:35 UTC (permalink / raw)
  To: linux-arm-kernel; +Cc: Wolfram Sang, Mark Brown, linux-spi, linux-kernel

Subsystems like pinctrl and gpio rightfully make use of deferred probing at
core level. Now, deferred drivers won't be retried if they don't have a .probe
function specified in the driver struct. Fix this driver to have that, so the
devices it supports won't get lost in a deferred probe.

Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
---
 drivers/spi/spi-txx9.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/spi/spi-txx9.c b/drivers/spi/spi-txx9.c
index 7c6d157..c67a1b8 100644
--- a/drivers/spi/spi-txx9.c
+++ b/drivers/spi/spi-txx9.c
@@ -440,6 +440,7 @@ static int txx9spi_remove(struct platform_device *dev)
 MODULE_ALIAS("platform:spi_txx9");
 
 static struct platform_driver txx9spi_driver = {
+	.probe = txx9spi_probe,
 	.remove = txx9spi_remove,
 	.driver = {
 		.name = "spi_txx9",
@@ -449,7 +450,7 @@ static struct platform_driver txx9spi_driver = {
 
 static int __init txx9spi_init(void)
 {
-	return platform_driver_probe(&txx9spi_driver, txx9spi_probe);
+	return platform_driver_register(&txx9spi_driver);
 }
 subsys_initcall(txx9spi_init);
 
-- 
1.8.4.rc3


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH 3/9] i2c: i2c-mxs: replace platform_driver_probe to support deferred probing
  2013-10-08 20:35 ` [PATCH 3/9] i2c: i2c-mxs: " Wolfram Sang
@ 2013-10-08 20:58   ` Marek Vasut
  0 siblings, 0 replies; 15+ messages in thread
From: Marek Vasut @ 2013-10-08 20:58 UTC (permalink / raw)
  To: Wolfram Sang; +Cc: linux-arm-kernel, linux-i2c, linux-kernel

Dear Wolfram Sang,

> Subsystems like pinctrl and gpio rightfully make use of deferred probing at
> core level. Now, deferred drivers won't be retried if they don't have a
> .probe function specified in the driver struct. Fix this driver to have
> that, so the devices it supports won't get lost in a deferred probe.
> 
> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
> Cc: Marek Vasut <marex@denx.de>

Certainly makes sense,

Acked-by: Marek Vasut <marex@denx.de>

Thanks!

Best regards,
Marek Vasut

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/9] i2c: i2c-imx: replace platform_driver_probe to support deferred probing
  2013-10-08 20:35 ` [PATCH 2/9] i2c: i2c-imx: " Wolfram Sang
@ 2013-10-09  7:34   ` Uwe Kleine-König
  0 siblings, 0 replies; 15+ messages in thread
From: Uwe Kleine-König @ 2013-10-09  7:34 UTC (permalink / raw)
  To: Wolfram Sang; +Cc: linux-arm-kernel, kernel, linux-i2c, linux-kernel

On Tue, Oct 08, 2013 at 10:35:34PM +0200, Wolfram Sang wrote:
> Subsystems like pinctrl and gpio rightfully make use of deferred probing at
> core level. Now, deferred drivers won't be retried if they don't have a .probe
> function specified in the driver struct. Fix this driver to have that, so the
> devices it supports won't get lost in a deferred probe.
> 
> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
> Cc: kernel@pengutronix.de
Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>

Thanks
Uwe

> ---
>  drivers/i2c/busses/i2c-imx.c | 11 ++++++-----
>  1 file changed, 6 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/i2c/busses/i2c-imx.c b/drivers/i2c/busses/i2c-imx.c
> index ccf4665..1d7efa3 100644
> --- a/drivers/i2c/busses/i2c-imx.c
> +++ b/drivers/i2c/busses/i2c-imx.c
> @@ -365,7 +365,7 @@ static void i2c_imx_stop(struct imx_i2c_struct *i2c_imx)
>  	clk_disable_unprepare(i2c_imx->clk);
>  }
>  
> -static void __init i2c_imx_set_clk(struct imx_i2c_struct *i2c_imx,
> +static void i2c_imx_set_clk(struct imx_i2c_struct *i2c_imx,
>  							unsigned int rate)
>  {
>  	struct imx_i2c_clk_pair *i2c_clk_div = i2c_imx->hwdata->clk_div;
> @@ -589,7 +589,7 @@ static struct i2c_algorithm i2c_imx_algo = {
>  	.functionality	= i2c_imx_func,
>  };
>  
> -static int __init i2c_imx_probe(struct platform_device *pdev)
> +static int i2c_imx_probe(struct platform_device *pdev)
>  {
>  	const struct of_device_id *of_id = of_match_device(i2c_imx_dt_ids,
>  							   &pdev->dev);
> @@ -697,7 +697,7 @@ static int __init i2c_imx_probe(struct platform_device *pdev)
>  	return 0;   /* Return OK */
>  }
>  
> -static int __exit i2c_imx_remove(struct platform_device *pdev)
> +static int i2c_imx_remove(struct platform_device *pdev)
>  {
>  	struct imx_i2c_struct *i2c_imx = platform_get_drvdata(pdev);
>  
> @@ -715,7 +715,8 @@ static int __exit i2c_imx_remove(struct platform_device *pdev)
>  }
>  
>  static struct platform_driver i2c_imx_driver = {
> -	.remove		= __exit_p(i2c_imx_remove),
> +	.probe = i2c_imx_probe,
> +	.remove = i2c_imx_remove,
>  	.driver	= {
>  		.name	= DRIVER_NAME,
>  		.owner	= THIS_MODULE,
> @@ -726,7 +727,7 @@ static struct platform_driver i2c_imx_driver = {
>  
>  static int __init i2c_adap_imx_init(void)
>  {
> -	return platform_driver_probe(&i2c_imx_driver, i2c_imx_probe);
> +	return platform_driver_register(&i2c_imx_driver);
>  }
>  subsys_initcall(i2c_adap_imx_init);
>  
> -- 
> 1.8.4.rc3
> 
> 

-- 
Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 5/9] spi: spi-au1550: replace platform_driver_probe to support deferred probing
  2013-10-08 20:35 ` [PATCH 5/9] spi: spi-au1550: " Wolfram Sang
@ 2013-10-09 10:59   ` Mark Brown
  0 siblings, 0 replies; 15+ messages in thread
From: Mark Brown @ 2013-10-09 10:59 UTC (permalink / raw)
  To: Wolfram Sang; +Cc: linux-arm-kernel, linux-spi, linux-kernel

[-- Attachment #1: Type: text/plain, Size: 433 bytes --]

On Tue, Oct 08, 2013 at 10:35:37PM +0200, Wolfram Sang wrote:
> Subsystems like pinctrl and gpio rightfully make use of deferred probing at
> core level. Now, deferred drivers won't be retried if they don't have a .probe
> function specified in the driver struct. Fix this driver to have that, so the
> devices it supports won't get lost in a deferred probe.

Applied 5-9, thanks - if there's patches 1-4 you'll need to resend them.

[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 4/9] i2c: i2c-stu300: replace platform_driver_probe to support deferred probing
  2013-10-08 20:35 ` [PATCH 4/9] i2c: i2c-stu300: " Wolfram Sang
@ 2013-10-09 13:37   ` Linus Walleij
  0 siblings, 0 replies; 15+ messages in thread
From: Linus Walleij @ 2013-10-09 13:37 UTC (permalink / raw)
  To: Wolfram Sang; +Cc: linux-arm-kernel, linux-i2c, linux-kernel

On Tue, Oct 8, 2013 at 10:35 PM, Wolfram Sang <wsa@the-dreams.de> wrote:

> Subsystems like pinctrl and gpio rightfully make use of deferred probing at
> core level. Now, deferred drivers won't be retried if they don't have a .probe
> function specified in the driver struct. Fix this driver to have that, so the
> devices it supports won't get lost in a deferred probe.
>
> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
> Cc: Linus Walleij <linus.walleij@linaro.org>

Acked-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 1/9] i2c: i2c-designware-platdrv: replace platform_driver_probe to support deferred probing
  2013-10-08 20:35 ` [PATCH 1/9] i2c: i2c-designware-platdrv: replace platform_driver_probe to support deferred probing Wolfram Sang
@ 2013-10-14  1:09   ` zhangfei gao
  0 siblings, 0 replies; 15+ messages in thread
From: zhangfei gao @ 2013-10-14  1:09 UTC (permalink / raw)
  To: Wolfram Sang; +Cc: linux-arm-kernel, Zhangfei Gao, Linux I2C, linux-kernel

On Wed, Oct 9, 2013 at 4:35 AM, Wolfram Sang <wsa@the-dreams.de> wrote:
> Subsystems like pinctrl and gpio rightfully make use of deferred probing at
> core level. Now, deferred drivers won't be retried if they don't have a .probe
> function specified in the driver struct. Fix this driver to have that, so the
> devices it supports won't get lost in a deferred probe.
>
> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
> Cc: Zhangfei Gao <zhangfei.gao@linaro.org>

Acked-by: Zhangfei Gao <zhangfei.gao@linaro.org>

Thanks

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2013-10-14  1:09 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-10-08 20:35 [PATCH 0/9] fix deferred probing issue of platform_driver_probe Wolfram Sang
2013-10-08 20:35 ` [PATCH 1/9] i2c: i2c-designware-platdrv: replace platform_driver_probe to support deferred probing Wolfram Sang
2013-10-14  1:09   ` zhangfei gao
2013-10-08 20:35 ` [PATCH 2/9] i2c: i2c-imx: " Wolfram Sang
2013-10-09  7:34   ` Uwe Kleine-König
2013-10-08 20:35 ` [PATCH 3/9] i2c: i2c-mxs: " Wolfram Sang
2013-10-08 20:58   ` Marek Vasut
2013-10-08 20:35 ` [PATCH 4/9] i2c: i2c-stu300: " Wolfram Sang
2013-10-09 13:37   ` Linus Walleij
2013-10-08 20:35 ` [PATCH 5/9] spi: spi-au1550: " Wolfram Sang
2013-10-09 10:59   ` Mark Brown
2013-10-08 20:35 ` [PATCH 6/9] spi: spi-bfin5xx: " Wolfram Sang
2013-10-08 20:35 ` [PATCH 7/9] spi: spi-omap-uwire: " Wolfram Sang
2013-10-08 20:35 ` [PATCH 8/9] spi: spi-s3c64xx: " Wolfram Sang
2013-10-08 20:35 ` [PATCH 9/9] spi: spi-txx9: " Wolfram Sang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).