aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/base/platform.c
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2009-09-08 17:32:24 -0400
committerDan Williams <dan.j.williams@intel.com>2009-09-08 17:32:24 -0400
commita348a7e6fdbcd2d5192a09719a479bb238fde727 (patch)
tree5ff94185f4e5a810777469d7fe7832a8ec2d3430 /drivers/base/platform.c
parent808347f6a31792079e345ec865e9cfcb6e8ae6b2 (diff)
parent28d0325ce6e0a52f53d8af687e6427fee59004d3 (diff)
Merge commit 'v2.6.31-rc1' into dmaengine
Diffstat (limited to 'drivers/base/platform.c')
-rw-r--r--drivers/base/platform.c43
1 files changed, 16 insertions, 27 deletions
diff --git a/drivers/base/platform.c b/drivers/base/platform.c
index 8b4708e06244..81cb01bfc356 100644
--- a/drivers/base/platform.c
+++ b/drivers/base/platform.c
@@ -69,7 +69,8 @@ EXPORT_SYMBOL_GPL(platform_get_irq);
69 * @name: resource name 69 * @name: resource name
70 */ 70 */
71struct resource *platform_get_resource_byname(struct platform_device *dev, 71struct resource *platform_get_resource_byname(struct platform_device *dev,
72 unsigned int type, char *name) 72 unsigned int type,
73 const char *name)
73{ 74{
74 int i; 75 int i;
75 76
@@ -88,7 +89,7 @@ EXPORT_SYMBOL_GPL(platform_get_resource_byname);
88 * @dev: platform device 89 * @dev: platform device
89 * @name: IRQ name 90 * @name: IRQ name
90 */ 91 */
91int platform_get_irq_byname(struct platform_device *dev, char *name) 92int platform_get_irq_byname(struct platform_device *dev, const char *name)
92{ 93{
93 struct resource *r = platform_get_resource_byname(dev, IORESOURCE_IRQ, 94 struct resource *r = platform_get_resource_byname(dev, IORESOURCE_IRQ,
94 name); 95 name);
@@ -244,7 +245,7 @@ int platform_device_add(struct platform_device *pdev)
244 if (pdev->id != -1) 245 if (pdev->id != -1)
245 dev_set_name(&pdev->dev, "%s.%d", pdev->name, pdev->id); 246 dev_set_name(&pdev->dev, "%s.%d", pdev->name, pdev->id);
246 else 247 else
247 dev_set_name(&pdev->dev, pdev->name); 248 dev_set_name(&pdev->dev, "%s", pdev->name);
248 249
249 for (i = 0; i < pdev->num_resources; i++) { 250 for (i = 0; i < pdev->num_resources; i++) {
250 struct resource *p, *r = &pdev->resource[i]; 251 struct resource *p, *r = &pdev->resource[i];
@@ -469,22 +470,6 @@ static void platform_drv_shutdown(struct device *_dev)
469 drv->shutdown(dev); 470 drv->shutdown(dev);
470} 471}
471 472
472static int platform_drv_suspend(struct device *_dev, pm_message_t state)
473{
474 struct platform_driver *drv = to_platform_driver(_dev->driver);
475 struct platform_device *dev = to_platform_device(_dev);
476
477 return drv->suspend(dev, state);
478}
479
480static int platform_drv_resume(struct device *_dev)
481{
482 struct platform_driver *drv = to_platform_driver(_dev->driver);
483 struct platform_device *dev = to_platform_device(_dev);
484
485 return drv->resume(dev);
486}
487
488/** 473/**
489 * platform_driver_register 474 * platform_driver_register
490 * @drv: platform driver structure 475 * @drv: platform driver structure
@@ -498,10 +483,10 @@ int platform_driver_register(struct platform_driver *drv)
498 drv->driver.remove = platform_drv_remove; 483 drv->driver.remove = platform_drv_remove;
499 if (drv->shutdown) 484 if (drv->shutdown)
500 drv->driver.shutdown = platform_drv_shutdown; 485 drv->driver.shutdown = platform_drv_shutdown;
501 if (drv->suspend) 486 if (drv->suspend || drv->resume)
502 drv->driver.suspend = platform_drv_suspend; 487 pr_warning("Platform driver '%s' needs updating - please use "
503 if (drv->resume) 488 "dev_pm_ops\n", drv->driver.name);
504 drv->driver.resume = platform_drv_resume; 489
505 return driver_register(&drv->driver); 490 return driver_register(&drv->driver);
506} 491}
507EXPORT_SYMBOL_GPL(platform_driver_register); 492EXPORT_SYMBOL_GPL(platform_driver_register);
@@ -633,10 +618,12 @@ static int platform_match(struct device *dev, struct device_driver *drv)
633 618
634static int platform_legacy_suspend(struct device *dev, pm_message_t mesg) 619static int platform_legacy_suspend(struct device *dev, pm_message_t mesg)
635{ 620{
621 struct platform_driver *pdrv = to_platform_driver(dev->driver);
622 struct platform_device *pdev = to_platform_device(dev);
636 int ret = 0; 623 int ret = 0;
637 624
638 if (dev->driver && dev->driver->suspend) 625 if (dev->driver && pdrv->suspend)
639 ret = dev->driver->suspend(dev, mesg); 626 ret = pdrv->suspend(pdev, mesg);
640 627
641 return ret; 628 return ret;
642} 629}
@@ -667,10 +654,12 @@ static int platform_legacy_resume_early(struct device *dev)
667 654
668static int platform_legacy_resume(struct device *dev) 655static int platform_legacy_resume(struct device *dev)
669{ 656{
657 struct platform_driver *pdrv = to_platform_driver(dev->driver);
658 struct platform_device *pdev = to_platform_device(dev);
670 int ret = 0; 659 int ret = 0;
671 660
672 if (dev->driver && dev->driver->resume) 661 if (dev->driver && pdrv->resume)
673 ret = dev->driver->resume(dev); 662 ret = pdrv->resume(pdev);
674 663
675 return ret; 664 return ret;
676} 665}