diff options
author | Vitja Makarov <vitja.makarov@gmail.com> | 2008-04-08 20:41:57 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-04-08 21:25:53 -0400 |
commit | f9e522caece074b9a985436d611127e8e96ad446 (patch) | |
tree | b552e8851b404f1409983bd8fc1c2a6260b7c3ca | |
parent | 4fb98efacffd3dfbe8e3b9cb054dd71bab715065 (diff) |
spi: spi_bfin5xx: fix probe() sequencing
Fix bug in SPI probe: first initialize peripheral pins, and just after
register spi master device. This fixes problems with SPI drivers built-in
kernel.
Singed-off-by: Vitja Makarov <vitja.makarov@gmail.com>
Signed-off-by: Bryan Wu <cooloney@kernel.org>
Signed-off-by: David Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r-- | drivers/spi/spi_bfin5xx.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/drivers/spi/spi_bfin5xx.c b/drivers/spi/spi_bfin5xx.c index c93c9d6d52e9..a4bf3af7a157 100644 --- a/drivers/spi/spi_bfin5xx.c +++ b/drivers/spi/spi_bfin5xx.c | |||
@@ -1294,6 +1294,12 @@ static int __init bfin5xx_spi_probe(struct platform_device *pdev) | |||
1294 | goto out_error_queue_alloc; | 1294 | goto out_error_queue_alloc; |
1295 | } | 1295 | } |
1296 | 1296 | ||
1297 | status = peripheral_request_list(drv_data->pin_req, DRV_NAME); | ||
1298 | if (status != 0) { | ||
1299 | dev_err(&pdev->dev, ": Requesting Peripherals failed\n"); | ||
1300 | goto out_error_queue_alloc; | ||
1301 | } | ||
1302 | |||
1297 | /* Register with the SPI framework */ | 1303 | /* Register with the SPI framework */ |
1298 | platform_set_drvdata(pdev, drv_data); | 1304 | platform_set_drvdata(pdev, drv_data); |
1299 | status = spi_register_master(master); | 1305 | status = spi_register_master(master); |
@@ -1302,12 +1308,6 @@ static int __init bfin5xx_spi_probe(struct platform_device *pdev) | |||
1302 | goto out_error_queue_alloc; | 1308 | goto out_error_queue_alloc; |
1303 | } | 1309 | } |
1304 | 1310 | ||
1305 | status = peripheral_request_list(drv_data->pin_req, DRV_NAME); | ||
1306 | if (status != 0) { | ||
1307 | dev_err(&pdev->dev, ": Requesting Peripherals failed\n"); | ||
1308 | goto out_error; | ||
1309 | } | ||
1310 | |||
1311 | dev_info(dev, "%s, Version %s, regs_base@%p, dma channel@%d\n", | 1311 | dev_info(dev, "%s, Version %s, regs_base@%p, dma channel@%d\n", |
1312 | DRV_DESC, DRV_VERSION, drv_data->regs_base, | 1312 | DRV_DESC, DRV_VERSION, drv_data->regs_base, |
1313 | drv_data->dma_channel); | 1313 | drv_data->dma_channel); |