mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-01-26 20:58:33 +00:00
usb: musb: dsps: kill OTG timer on suspend
if we don't make sure to kill the timer, it could expire after we have already gated our clocks. That will trigger a Data Abort exception because we would try to access register while clock is gated. Fix that bug. Cc: <stable@vger.kernel.org> # v3.14+ Fixes 869c597 (usb: musb: dsps: add support for suspend and resume) Tested-by: Dave Gerlach <d-gerlach@ti.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
This commit is contained in:
parent
6dd5b021bd
commit
468bcc2a2c
@ -870,6 +870,7 @@ static int dsps_suspend(struct device *dev)
|
||||
struct musb *musb = platform_get_drvdata(glue->musb);
|
||||
void __iomem *mbase = musb->ctrl_base;
|
||||
|
||||
del_timer_sync(&glue->timer);
|
||||
glue->context.control = dsps_readl(mbase, wrp->control);
|
||||
glue->context.epintr = dsps_readl(mbase, wrp->epintr_set);
|
||||
glue->context.coreintr = dsps_readl(mbase, wrp->coreintr_set);
|
||||
@ -895,6 +896,7 @@ static int dsps_resume(struct device *dev)
|
||||
dsps_writel(mbase, wrp->mode, glue->context.mode);
|
||||
dsps_writel(mbase, wrp->tx_mode, glue->context.tx_mode);
|
||||
dsps_writel(mbase, wrp->rx_mode, glue->context.rx_mode);
|
||||
setup_timer(&glue->timer, otg_timer, (unsigned long) musb);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user