usb: dwc2: gadget: don't overwrite DCTL register on NAKEFF interrupts
authorGregory Herrero <gregory.herrero@intel.com>
Mon, 7 Dec 2015 11:07:31 +0000 (12:07 +0100)
committerFelipe Balbi <balbi@ti.com>
Tue, 22 Dec 2015 17:50:43 +0000 (11:50 -0600)
commit3be99cd0e882dd2127b8cfe3942f5e464915aeba
tree2182da09b455a27dc4c78b78127f6e6f73b1ef82
parent0676c7e734e3807f4e91f5d0edcaeed1f5ff412a
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>
drivers/usb/dwc2/gadget.c