diff options
Diffstat (limited to 'drivers/spi/spi-bfin5xx.c')
-rw-r--r-- | drivers/spi/spi-bfin5xx.c | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/drivers/spi/spi-bfin5xx.c b/drivers/spi/spi-bfin5xx.c index b70a2bd9324d..f0f195af75d4 100644 --- a/drivers/spi/spi-bfin5xx.c +++ b/drivers/spi/spi-bfin5xx.c | |||
@@ -1411,10 +1411,10 @@ static int bfin_spi_remove(struct platform_device *pdev) | |||
1411 | return 0; | 1411 | return 0; |
1412 | } | 1412 | } |
1413 | 1413 | ||
1414 | #ifdef CONFIG_PM | 1414 | #ifdef CONFIG_PM_SLEEP |
1415 | static int bfin_spi_suspend(struct platform_device *pdev, pm_message_t state) | 1415 | static int bfin_spi_suspend(struct device *dev) |
1416 | { | 1416 | { |
1417 | struct bfin_spi_master_data *drv_data = platform_get_drvdata(pdev); | 1417 | struct bfin_spi_master_data *drv_data = dev_get_drvdata(dev); |
1418 | int status = 0; | 1418 | int status = 0; |
1419 | 1419 | ||
1420 | status = bfin_spi_stop_queue(drv_data); | 1420 | status = bfin_spi_stop_queue(drv_data); |
@@ -1433,9 +1433,9 @@ static int bfin_spi_suspend(struct platform_device *pdev, pm_message_t state) | |||
1433 | return 0; | 1433 | return 0; |
1434 | } | 1434 | } |
1435 | 1435 | ||
1436 | static int bfin_spi_resume(struct platform_device *pdev) | 1436 | static int bfin_spi_resume(struct device *dev) |
1437 | { | 1437 | { |
1438 | struct bfin_spi_master_data *drv_data = platform_get_drvdata(pdev); | 1438 | struct bfin_spi_master_data *drv_data = dev_get_drvdata(dev); |
1439 | int status = 0; | 1439 | int status = 0; |
1440 | 1440 | ||
1441 | bfin_write(&drv_data->regs->ctl, drv_data->ctrl_reg); | 1441 | bfin_write(&drv_data->regs->ctl, drv_data->ctrl_reg); |
@@ -1444,31 +1444,34 @@ static int bfin_spi_resume(struct platform_device *pdev) | |||
1444 | /* Start the queue running */ | 1444 | /* Start the queue running */ |
1445 | status = bfin_spi_start_queue(drv_data); | 1445 | status = bfin_spi_start_queue(drv_data); |
1446 | if (status != 0) { | 1446 | if (status != 0) { |
1447 | dev_err(&pdev->dev, "problem starting queue (%d)\n", status); | 1447 | dev_err(dev, "problem starting queue (%d)\n", status); |
1448 | return status; | 1448 | return status; |
1449 | } | 1449 | } |
1450 | 1450 | ||
1451 | return 0; | 1451 | return 0; |
1452 | } | 1452 | } |
1453 | |||
1454 | static SIMPLE_DEV_PM_OPS(bfin_spi_pm_ops, bfin_spi_suspend, bfin_spi_resume); | ||
1455 | |||
1456 | #define BFIN_SPI_PM_OPS (&bfin_spi_pm_ops) | ||
1453 | #else | 1457 | #else |
1454 | #define bfin_spi_suspend NULL | 1458 | #define BFIN_SPI_PM_OPS NULL |
1455 | #define bfin_spi_resume NULL | 1459 | #endif |
1456 | #endif /* CONFIG_PM */ | ||
1457 | 1460 | ||
1458 | MODULE_ALIAS("platform:bfin-spi"); | 1461 | MODULE_ALIAS("platform:bfin-spi"); |
1459 | static struct platform_driver bfin_spi_driver = { | 1462 | static struct platform_driver bfin_spi_driver = { |
1460 | .driver = { | 1463 | .driver = { |
1461 | .name = DRV_NAME, | 1464 | .name = DRV_NAME, |
1462 | .owner = THIS_MODULE, | 1465 | .owner = THIS_MODULE, |
1466 | .pm = BFIN_SPI_PM_OPS, | ||
1463 | }, | 1467 | }, |
1464 | .suspend = bfin_spi_suspend, | 1468 | .probe = bfin_spi_probe, |
1465 | .resume = bfin_spi_resume, | ||
1466 | .remove = bfin_spi_remove, | 1469 | .remove = bfin_spi_remove, |
1467 | }; | 1470 | }; |
1468 | 1471 | ||
1469 | static int __init bfin_spi_init(void) | 1472 | static int __init bfin_spi_init(void) |
1470 | { | 1473 | { |
1471 | return platform_driver_probe(&bfin_spi_driver, bfin_spi_probe); | 1474 | return platform_driver_register(&bfin_spi_driver); |
1472 | } | 1475 | } |
1473 | subsys_initcall(bfin_spi_init); | 1476 | subsys_initcall(bfin_spi_init); |
1474 | 1477 | ||