ESP32-S2: Detect EP IN Xfer Timeout
In some rare ocasions (bad cable, noise, etc.) data transfer might timeout and hang the endpoint, unless the interrupt flag is cleared. This pull request targets to solve that case.
This commit is contained in:
@@ -637,6 +637,13 @@ static void handle_epin_ints(void)
|
||||
USB0.dtknqr4_fifoemptymsk &= ~(1 << n);
|
||||
}
|
||||
}
|
||||
|
||||
// XFER Timeout
|
||||
if (USB0.in_ep_reg[n].diepint & USB_D_TIMEOUT0_M) {
|
||||
// Clear interrupt or enpoint will hang.
|
||||
USB0.in_ep_reg[n].diepint = USB_D_TIMEOUT0_M;
|
||||
// Maybe retry?
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user