Commit 5e4ccd9e authored by Wonhong Kwon's avatar Wonhong Kwon Committed by Greg Kroah-Hartman
Browse files

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: default avatarWonhong Kwon <wonhong.kwon@lge.com>
Acked-by: default avatarAlan Stern <stern@rowland.harvard.edu>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent a57971bf
Loading
Loading
Loading
Loading
+4 −11
Original line number Diff line number Diff line
@@ -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,
+4 −11
Original line number Diff line number Diff line
@@ -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,