usb: dwc_otg: handle data toggle error in right way
authorlyz <lyz@rock-chips.com>
Fri, 23 Jan 2015 09:05:14 +0000 (17:05 +0800)
committerlyz <lyz@rock-chips.com>
Fri, 23 Jan 2015 09:08:19 +0000 (17:08 +0800)
data toggle error without a ChannelHalt status is not a real data
toggle err, it is a transfer error state so just clear the
interrupt bit rather than resubmit this request

Signed-off-by: lyz <lyz@rock-chips.com>
drivers/usb/dwc_otg_310/dwc_otg_hcd_intr.c

index 33018f4f285fdc011967c3348ca6469d6e124cca..e1dccb1a7a220261f75ef475f6f915b40b386cd6 100755 (executable)
@@ -2179,8 +2179,8 @@ int32_t dwc_otg_hcd_handle_hc_n_intr(dwc_otg_hcd_t *dwc_otg_hcd, uint32_t num)
                    handle_hc_frmovrun_intr(dwc_otg_hcd, hc, hc_regs, qtd);
        }
        if (hcint.b.datatglerr) {
-               retval |=
-                   handle_hc_datatglerr_intr(dwc_otg_hcd, hc, hc_regs, qtd);
+               disable_hc_int(hc_regs, datatglerr);
+               clear_hc_int(hc_regs, chhltd);
        }
 
        return retval;