*/
handle_hc_ack_intr(_hcd, _hc, _hc_regs, _qtd);
} else if(hcint.b.datatglerr){
- DWC_PRINT("%s, DATA toggle error, Channel %d\n",__func__, _hc->hc_num);
- save_data_toggle(_hc, _hc_regs, _qtd);
- halt_channel(_hcd, _hc, _qtd, DWC_OTG_HC_XFER_NO_HALT_STATUS);
- clear_hc_int(_hc_regs,chhltd);
+ DWC_PRINT("%s, DATA toggle error, Channel %d\n",__func__, _hc->hc_num);
+ _qtd->error_count++;
+ save_data_toggle(_hc, _hc_regs, _qtd);
+ halt_channel(_hcd, _hc, _qtd, DWC_OTG_HC_XFER_XACT_ERR);
+ clear_hc_int(_hc_regs,chhltd);
} else {
if (_hc->ep_type == DWC_OTG_EP_TYPE_INTR ||
_hc->ep_type == DWC_OTG_EP_TYPE_ISOC) {