usb: ehci/ohci-platform: use SIMPLE_DEV_PM_OPS to support hibernation

ehci/ohci-platform just define .suspend/.resume functions for dev_pm_ops,
but in order to support both STR(suspend-to-ram) and hibernation, other
callbacks such as .freeze/.thaw are also required.

Registering all required callbacks for both STR and hibernation can
be done by SIMPLE_DEV_PM_OPS macro function.

Signed-off-by: Wonhong Kwon <wonhong.kwon@lge.com>
Acked-by: Alan Stern <stern@rowland.harvard.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Wonhong Kwon 2014-10-24 13:45:47 +09:00 committed by Greg Kroah-Hartman
parent a57971bfa1
commit 5e4ccd9ee2
2 changed files with 8 additions and 22 deletions

View File

@ -311,8 +311,7 @@ static int ehci_platform_remove(struct platform_device *dev)
return 0;
}
#ifdef CONFIG_PM
#ifdef CONFIG_PM_SLEEP
static int ehci_platform_suspend(struct device *dev)
{
struct usb_hcd *hcd = dev_get_drvdata(dev);
@ -348,11 +347,7 @@ static int ehci_platform_resume(struct device *dev)
ehci_resume(hcd, false);
return 0;
}
#else /* !CONFIG_PM */
#define ehci_platform_suspend NULL
#define ehci_platform_resume NULL
#endif /* CONFIG_PM */
#endif /* CONFIG_PM_SLEEP */
static const struct of_device_id vt8500_ehci_ids[] = {
{ .compatible = "via,vt8500-ehci", },
@ -368,10 +363,8 @@ static const struct platform_device_id ehci_platform_table[] = {
};
MODULE_DEVICE_TABLE(platform, ehci_platform_table);
static const struct dev_pm_ops ehci_platform_pm_ops = {
.suspend = ehci_platform_suspend,
.resume = ehci_platform_resume,
};
static SIMPLE_DEV_PM_OPS(ehci_platform_pm_ops, ehci_platform_suspend,
ehci_platform_resume);
static struct platform_driver ehci_platform_driver = {
.id_table = ehci_platform_table,

View File

@ -293,8 +293,7 @@ static int ohci_platform_remove(struct platform_device *dev)
return 0;
}
#ifdef CONFIG_PM
#ifdef CONFIG_PM_SLEEP
static int ohci_platform_suspend(struct device *dev)
{
struct usb_hcd *hcd = dev_get_drvdata(dev);
@ -330,11 +329,7 @@ static int ohci_platform_resume(struct device *dev)
ohci_resume(hcd, false);
return 0;
}
#else /* !CONFIG_PM */
#define ohci_platform_suspend NULL
#define ohci_platform_resume NULL
#endif /* CONFIG_PM */
#endif /* CONFIG_PM_SLEEP */
static const struct of_device_id ohci_platform_ids[] = {
{ .compatible = "generic-ohci", },
@ -348,10 +343,8 @@ static const struct platform_device_id ohci_platform_table[] = {
};
MODULE_DEVICE_TABLE(platform, ohci_platform_table);
static const struct dev_pm_ops ohci_platform_pm_ops = {
.suspend = ohci_platform_suspend,
.resume = ohci_platform_resume,
};
static SIMPLE_DEV_PM_OPS(ohci_platform_pm_ops, ohci_platform_suspend,
ohci_platform_resume);
static struct platform_driver ohci_platform_driver = {
.id_table = ohci_platform_table,