usb: chipidea: host: add suspend/resume support for host controller
The controller's power may be powered off during system suspend. This will add suspend/resume support when the controller suffers power lost. Signed-off-by: Xu Yang <xu.yang_2@nxp.com> Link: https://lore.kernel.org/r/20221013151442.3262951-4-xu.yang_2@nxp.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
450857c605
Коммит
2f64d6a6cd
|
@ -459,6 +459,18 @@ static void ci_hdrc_unmap_urb_for_dma(struct usb_hcd *hcd, struct urb *urb)
|
||||||
ci_hdrc_free_dma_aligned_buffer(urb);
|
ci_hdrc_free_dma_aligned_buffer(urb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_PM_SLEEP
|
||||||
|
static void ci_hdrc_host_suspend(struct ci_hdrc *ci)
|
||||||
|
{
|
||||||
|
ehci_suspend(ci->hcd, device_may_wakeup(ci->dev));
|
||||||
|
}
|
||||||
|
|
||||||
|
static void ci_hdrc_host_resume(struct ci_hdrc *ci, bool power_lost)
|
||||||
|
{
|
||||||
|
ehci_resume(ci->hcd, power_lost);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
int ci_hdrc_host_init(struct ci_hdrc *ci)
|
int ci_hdrc_host_init(struct ci_hdrc *ci)
|
||||||
{
|
{
|
||||||
struct ci_role_driver *rdrv;
|
struct ci_role_driver *rdrv;
|
||||||
|
@ -472,6 +484,10 @@ int ci_hdrc_host_init(struct ci_hdrc *ci)
|
||||||
|
|
||||||
rdrv->start = host_start;
|
rdrv->start = host_start;
|
||||||
rdrv->stop = host_stop;
|
rdrv->stop = host_stop;
|
||||||
|
#ifdef CONFIG_PM_SLEEP
|
||||||
|
rdrv->suspend = ci_hdrc_host_suspend;
|
||||||
|
rdrv->resume = ci_hdrc_host_resume;
|
||||||
|
#endif
|
||||||
rdrv->irq = host_irq;
|
rdrv->irq = host_irq;
|
||||||
rdrv->name = "host";
|
rdrv->name = "host";
|
||||||
ci->roles[CI_ROLE_HOST] = rdrv;
|
ci->roles[CI_ROLE_HOST] = rdrv;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче