mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-12 03:26:26 +00:00
USB: au1xxx: add dev_pm_ops
move both ohci-au1xxx and ehci-au1xxx over to dev_pm_ops. Tested on Au1200. Signed-off-by: Manuel Lauss <manuel.lauss@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
This commit is contained in:
parent
64aebe7315
commit
807fcb5e19
2 changed files with 27 additions and 29 deletions
|
@ -199,10 +199,9 @@ static int ehci_hcd_au1xxx_drv_remove(struct platform_device *pdev)
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_PM
|
#ifdef CONFIG_PM
|
||||||
static int ehci_hcd_au1xxx_drv_suspend(struct platform_device *pdev,
|
static int ehci_hcd_au1xxx_drv_suspend(struct device *dev)
|
||||||
pm_message_t message)
|
|
||||||
{
|
{
|
||||||
struct usb_hcd *hcd = platform_get_drvdata(pdev);
|
struct usb_hcd *hcd = dev_get_drvdata(dev);
|
||||||
struct ehci_hcd *ehci = hcd_to_ehci(hcd);
|
struct ehci_hcd *ehci = hcd_to_ehci(hcd);
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
int rc;
|
int rc;
|
||||||
|
@ -229,12 +228,6 @@ static int ehci_hcd_au1xxx_drv_suspend(struct platform_device *pdev,
|
||||||
ehci_writel(ehci, 0, &ehci->regs->intr_enable);
|
ehci_writel(ehci, 0, &ehci->regs->intr_enable);
|
||||||
(void)ehci_readl(ehci, &ehci->regs->intr_enable);
|
(void)ehci_readl(ehci, &ehci->regs->intr_enable);
|
||||||
|
|
||||||
/* make sure snapshot being resumed re-enumerates everything */
|
|
||||||
if (message.event == PM_EVENT_PRETHAW) {
|
|
||||||
ehci_halt(ehci);
|
|
||||||
ehci_reset(ehci);
|
|
||||||
}
|
|
||||||
|
|
||||||
clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
|
clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
|
||||||
|
|
||||||
au1xxx_stop_ehc();
|
au1xxx_stop_ehc();
|
||||||
|
@ -248,10 +241,9 @@ static int ehci_hcd_au1xxx_drv_suspend(struct platform_device *pdev,
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int ehci_hcd_au1xxx_drv_resume(struct device *dev)
|
||||||
static int ehci_hcd_au1xxx_drv_resume(struct platform_device *pdev)
|
|
||||||
{
|
{
|
||||||
struct usb_hcd *hcd = platform_get_drvdata(pdev);
|
struct usb_hcd *hcd = dev_get_drvdata(dev);
|
||||||
struct ehci_hcd *ehci = hcd_to_ehci(hcd);
|
struct ehci_hcd *ehci = hcd_to_ehci(hcd);
|
||||||
|
|
||||||
au1xxx_start_ehc();
|
au1xxx_start_ehc();
|
||||||
|
@ -305,20 +297,25 @@ static int ehci_hcd_au1xxx_drv_resume(struct platform_device *pdev)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static struct dev_pm_ops au1xxx_ehci_pmops = {
|
||||||
|
.suspend = ehci_hcd_au1xxx_drv_suspend,
|
||||||
|
.resume = ehci_hcd_au1xxx_drv_resume,
|
||||||
|
};
|
||||||
|
|
||||||
|
#define AU1XXX_EHCI_PMOPS &au1xxx_ehci_pmops
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#define ehci_hcd_au1xxx_drv_suspend NULL
|
#define AU1XXX_EHCI_PMOPS NULL
|
||||||
#define ehci_hcd_au1xxx_drv_resume NULL
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static struct platform_driver ehci_hcd_au1xxx_driver = {
|
static struct platform_driver ehci_hcd_au1xxx_driver = {
|
||||||
.probe = ehci_hcd_au1xxx_drv_probe,
|
.probe = ehci_hcd_au1xxx_drv_probe,
|
||||||
.remove = ehci_hcd_au1xxx_drv_remove,
|
.remove = ehci_hcd_au1xxx_drv_remove,
|
||||||
.shutdown = usb_hcd_platform_shutdown,
|
.shutdown = usb_hcd_platform_shutdown,
|
||||||
.suspend = ehci_hcd_au1xxx_drv_suspend,
|
|
||||||
.resume = ehci_hcd_au1xxx_drv_resume,
|
|
||||||
.driver = {
|
.driver = {
|
||||||
.name = "au1xxx-ehci",
|
.name = "au1xxx-ehci",
|
||||||
.owner = THIS_MODULE,
|
.owner = THIS_MODULE,
|
||||||
|
.pm = AU1XXX_EHCI_PMOPS,
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -248,10 +248,9 @@ static int ohci_hcd_au1xxx_drv_remove(struct platform_device *pdev)
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef CONFIG_PM
|
#ifdef CONFIG_PM
|
||||||
static int ohci_hcd_au1xxx_drv_suspend(struct platform_device *pdev,
|
static int ohci_hcd_au1xxx_drv_suspend(struct device *dev)
|
||||||
pm_message_t message)
|
|
||||||
{
|
{
|
||||||
struct usb_hcd *hcd = platform_get_drvdata(pdev);
|
struct usb_hcd *hcd = dev_get_drvdata(dev);
|
||||||
struct ohci_hcd *ohci = hcd_to_ohci(hcd);
|
struct ohci_hcd *ohci = hcd_to_ohci(hcd);
|
||||||
unsigned long flags;
|
unsigned long flags;
|
||||||
int rc;
|
int rc;
|
||||||
|
@ -274,10 +273,6 @@ static int ohci_hcd_au1xxx_drv_suspend(struct platform_device *pdev,
|
||||||
ohci_writel(ohci, OHCI_INTR_MIE, &ohci->regs->intrdisable);
|
ohci_writel(ohci, OHCI_INTR_MIE, &ohci->regs->intrdisable);
|
||||||
(void)ohci_readl(ohci, &ohci->regs->intrdisable);
|
(void)ohci_readl(ohci, &ohci->regs->intrdisable);
|
||||||
|
|
||||||
/* make sure snapshot being resumed re-enumerates everything */
|
|
||||||
if (message.event == PM_EVENT_PRETHAW)
|
|
||||||
ohci_usb_reset(ohci);
|
|
||||||
|
|
||||||
clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
|
clear_bit(HCD_FLAG_HW_ACCESSIBLE, &hcd->flags);
|
||||||
|
|
||||||
au1xxx_stop_ohc();
|
au1xxx_stop_ohc();
|
||||||
|
@ -287,9 +282,9 @@ static int ohci_hcd_au1xxx_drv_suspend(struct platform_device *pdev,
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int ohci_hcd_au1xxx_drv_resume(struct platform_device *pdev)
|
static int ohci_hcd_au1xxx_drv_resume(struct device *dev)
|
||||||
{
|
{
|
||||||
struct usb_hcd *hcd = platform_get_drvdata(pdev);
|
struct usb_hcd *hcd = dev_get_drvdata(dev);
|
||||||
|
|
||||||
au1xxx_start_ohc();
|
au1xxx_start_ohc();
|
||||||
|
|
||||||
|
@ -298,20 +293,26 @@ static int ohci_hcd_au1xxx_drv_resume(struct platform_device *pdev)
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static struct dev_pm_ops au1xxx_ohci_pmops = {
|
||||||
|
.suspend = ohci_hcd_au1xxx_drv_suspend,
|
||||||
|
.resume = ohci_hcd_au1xxx_drv_resume,
|
||||||
|
};
|
||||||
|
|
||||||
|
#define AU1XXX_OHCI_PMOPS &au1xxx_ohci_pmops
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#define ohci_hcd_au1xxx_drv_suspend NULL
|
#define AU1XXX_OHCI_PMOPS NULL
|
||||||
#define ohci_hcd_au1xxx_drv_resume NULL
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static struct platform_driver ohci_hcd_au1xxx_driver = {
|
static struct platform_driver ohci_hcd_au1xxx_driver = {
|
||||||
.probe = ohci_hcd_au1xxx_drv_probe,
|
.probe = ohci_hcd_au1xxx_drv_probe,
|
||||||
.remove = ohci_hcd_au1xxx_drv_remove,
|
.remove = ohci_hcd_au1xxx_drv_remove,
|
||||||
.shutdown = usb_hcd_platform_shutdown,
|
.shutdown = usb_hcd_platform_shutdown,
|
||||||
.suspend = ohci_hcd_au1xxx_drv_suspend,
|
|
||||||
.resume = ohci_hcd_au1xxx_drv_resume,
|
|
||||||
.driver = {
|
.driver = {
|
||||||
.name = "au1xxx-ohci",
|
.name = "au1xxx-ohci",
|
||||||
.owner = THIS_MODULE,
|
.owner = THIS_MODULE,
|
||||||
|
.pm = AU1XXX_OHCI_PMOPS,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue