diff options
author | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2010-11-19 12:00:11 -0500 |
---|---|---|
committer | Sebastian Andrzej Siewior <bigeasy@linutronix.de> | 2010-11-26 05:29:02 -0500 |
commit | fbd29a14af42d374ddce9c16ff5f7805e69c764f (patch) | |
tree | 1f4df085215624430a3d093d010f464301535c23 /drivers/spi/pxa2xx_spi.c | |
parent | 3561d43fd289f590fdae672e5eb831b8d5cf0bf6 (diff) |
spi/pxa2xx: register driver properly
use platform_driver_register instead of platform_driver_probe. The
latter only checks available devices at the time of calling. So if a
device gets inserter at a later point in time then the driver will never
play with it.
Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
Signed-off-by: Dirk Brandewie <dirk.brandewie@gmail.com>
Diffstat (limited to 'drivers/spi/pxa2xx_spi.c')
-rw-r--r-- | drivers/spi/pxa2xx_spi.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/drivers/spi/pxa2xx_spi.c b/drivers/spi/pxa2xx_spi.c index e76b1afafe07..4e169b579efb 100644 --- a/drivers/spi/pxa2xx_spi.c +++ b/drivers/spi/pxa2xx_spi.c | |||
@@ -1366,7 +1366,7 @@ static void cleanup(struct spi_device *spi) | |||
1366 | kfree(chip); | 1366 | kfree(chip); |
1367 | } | 1367 | } |
1368 | 1368 | ||
1369 | static int __init init_queue(struct driver_data *drv_data) | 1369 | static int __devinit init_queue(struct driver_data *drv_data) |
1370 | { | 1370 | { |
1371 | INIT_LIST_HEAD(&drv_data->queue); | 1371 | INIT_LIST_HEAD(&drv_data->queue); |
1372 | spin_lock_init(&drv_data->lock); | 1372 | spin_lock_init(&drv_data->lock); |
@@ -1454,7 +1454,7 @@ static int destroy_queue(struct driver_data *drv_data) | |||
1454 | return 0; | 1454 | return 0; |
1455 | } | 1455 | } |
1456 | 1456 | ||
1457 | static int __init pxa2xx_spi_probe(struct platform_device *pdev) | 1457 | static int __devinit pxa2xx_spi_probe(struct platform_device *pdev) |
1458 | { | 1458 | { |
1459 | struct device *dev = &pdev->dev; | 1459 | struct device *dev = &pdev->dev; |
1460 | struct pxa2xx_spi_master *platform_info; | 1460 | struct pxa2xx_spi_master *platform_info; |
@@ -1723,13 +1723,14 @@ static struct platform_driver driver = { | |||
1723 | .pm = &pxa2xx_spi_pm_ops, | 1723 | .pm = &pxa2xx_spi_pm_ops, |
1724 | #endif | 1724 | #endif |
1725 | }, | 1725 | }, |
1726 | .probe = pxa2xx_spi_probe, | ||
1726 | .remove = pxa2xx_spi_remove, | 1727 | .remove = pxa2xx_spi_remove, |
1727 | .shutdown = pxa2xx_spi_shutdown, | 1728 | .shutdown = pxa2xx_spi_shutdown, |
1728 | }; | 1729 | }; |
1729 | 1730 | ||
1730 | static int __init pxa2xx_spi_init(void) | 1731 | static int __init pxa2xx_spi_init(void) |
1731 | { | 1732 | { |
1732 | return platform_driver_probe(&driver, pxa2xx_spi_probe); | 1733 | return platform_driver_register(&driver); |
1733 | } | 1734 | } |
1734 | subsys_initcall(pxa2xx_spi_init); | 1735 | subsys_initcall(pxa2xx_spi_init); |
1735 | 1736 | ||