usb: dwc2: host: don't clear hprt0 status bits when exiting hibernation
authorGregory Herrero <gregory.herrero@intel.com>
Tue, 22 Sep 2015 13:16:37 +0000 (15:16 +0200)
committerFelipe Balbi <balbi@ti.com>
Thu, 1 Oct 2015 17:40:14 +0000 (12:40 -0500)
When entering hibernation hprt0 must be read using dwc2_read_hprt0().
Otherwise, any set hprt0 status bits will be cleared when restoring
hprt0 on exit from hibernation.

Signed-off-by: Gregory Herrero <gregory.herrero@intel.com>
Signed-off-by: Mian Yousaf Kaukab <yousaf.kaukab@intel.com>
Tested-by: Robert Baldyga <r.baldyga@samsung.com>
Tested-by: Dinh Nguyen <dinguyen@opensource.altera.com>
Tested-by: John Youn <johnyoun@synopsys.com>
Acked-by: John Youn <johnyoun@synopsys.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
drivers/usb/dwc2/core.c

index fc0521aeed77d8a54c28fd49ddc856f630252b89..0bfc987dd3735f276786a4a5e4b184845026d8e2 100644 (file)
@@ -78,7 +78,7 @@ static int dwc2_backup_host_registers(struct dwc2_hsotg *hsotg)
        for (i = 0; i < hsotg->core_params->host_channels; ++i)
                hr->hcintmsk[i] = dwc2_readl(hsotg->regs + HCINTMSK(i));
 
-       hr->hprt0 = dwc2_readl(hsotg->regs + HPRT0);
+       hr->hprt0 = dwc2_read_hprt0(hsotg);
        hr->hfir = dwc2_readl(hsotg->regs + HFIR);
        hr->valid = true;