usb: ehci/ohci-platform: use SIMPLE_DEV_PM_OPS to support hibernation
authorWonhong Kwon <wonhongkwon@gmail.com>
Fri, 24 Oct 2014 04:45:47 +0000 (13:45 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Mon, 3 Nov 2014 23:38:17 +0000 (15:38 -0800)
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>
drivers/usb/host/ehci-platform.c
drivers/usb/host/ohci-platform.c

index 2f5b9ce..da056fe 100644 (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,
index 7793c3c..adb691d 100644 (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,