usb: dwc2: Reset DEVADDR after exiting gadget hibernation.
Initially resetting device address was done in dwc2_hsotg_irq() interrupt handler. However, when core is hibernated USB RESET is not handled in dwc2_hsotg_irq() handler, instead USB RESET interrupt is handled in dwc2_handle_gpwrdn_intr() handler. - Added reset device address to zero when core exits from gadget hibernation. Acked-by: Minas Harutyunyan <Minas.Harutyunyan@synopsys.com> Signed-off-by: Artur Petrosyan <Arthur.Petrosyan@synopsys.com> Signed-off-by: Minas Harutyunyan <Minas.Harutyunyan@synopsys.com> Link: https://lore.kernel.org/r/20210416124659.652CFA005C@mailhost.synopsys.com Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Родитель
c363af9ce3
Коммит
b29b494bcc
|
@ -5305,6 +5305,10 @@ int dwc2_gadget_exit_hibernation(struct dwc2_hsotg *hsotg,
|
|||
dwc2_writel(hsotg, dr->dcfg, DCFG);
|
||||
dwc2_writel(hsotg, dr->dctl, DCTL);
|
||||
|
||||
/* On USB Reset, reset device address to zero */
|
||||
if (reset)
|
||||
dwc2_clear_bit(hsotg, DCFG, DCFG_DEVADDR_MASK);
|
||||
|
||||
/* De-assert Wakeup Logic */
|
||||
gpwrdn = dwc2_readl(hsotg, GPWRDN);
|
||||
gpwrdn &= ~GPWRDN_PMUACTV;
|
||||
|
|
Загрузка…
Ссылка в новой задаче