mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-09 21:59:12 -04:00
usb: dwc2: gadget: don't overwrite DCTL register on NAKEFF interrupts
When receiving GINTSTS_GINNAKEFF or GINTSTS_GOUTNAKEFF interrupt, DCTL will be overwritten with DCTL_CGOUTNAK or DCTL_CGNPINNAK values. Instead of overwriting it, write only needed bits. It could cause an issue if GINTSTS_GINNAKEFF or GINTSTS_GOUTNAKEFF interrupt is received after dwc2 disabled pullup by writing DCTL_SFTDISCON bit. Pullup will then be re-enabled whereas it should not. Acked-by: John Youn <johnyoun@synopsys.com> Signed-off-by: Gregory Herrero <gregory.herrero@intel.com> Signed-off-by: Felipe Balbi <balbi@ti.com>
This commit is contained in:
parent
0676c7e734
commit
3be99cd0e8
1 changed files with 2 additions and 2 deletions
|
|
@ -2585,7 +2585,7 @@ irq_retry:
|
|||
if (gintsts & GINTSTS_GOUTNAKEFF) {
|
||||
dev_info(hsotg->dev, "GOUTNakEff triggered\n");
|
||||
|
||||
dwc2_writel(DCTL_CGOUTNAK, hsotg->regs + DCTL);
|
||||
__orr32(hsotg->regs + DCTL, DCTL_CGOUTNAK);
|
||||
|
||||
dwc2_hsotg_dump(hsotg);
|
||||
}
|
||||
|
|
@ -2593,7 +2593,7 @@ irq_retry:
|
|||
if (gintsts & GINTSTS_GINNAKEFF) {
|
||||
dev_info(hsotg->dev, "GINNakEff triggered\n");
|
||||
|
||||
dwc2_writel(DCTL_CGNPINNAK, hsotg->regs + DCTL);
|
||||
__orr32(hsotg->regs + DCTL, DCTL_CGNPINNAK);
|
||||
|
||||
dwc2_hsotg_dump(hsotg);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue