drivers: udc_dwc2: Queue next packet on incomplete iso IN interrupt

When handling incomplete iso IN interrupt mark current transfer as
complete and program the endpoint with any subsequently queued packet.
Program the endpoint directly in interrupt handler because the data
must be programmed before SOF (by the time incomplete iso IN interrupt
is raised there is less than 20% * 125 us = 25 us before SOF).

Signed-off-by: Tomasz Moń <tomasz.mon@nordicsemi.no>
This commit is contained in:
Tomasz Moń 2024-11-27 11:37:35 +01:00 committed by Benjamin Cabé
commit edbb05368d

View file

@ -2572,7 +2572,11 @@ static void dwc2_handle_incompisoin(const struct device *dev)
buf = udc_buf_get(dev, cfg->addr);
if (buf) {
/* Data is no longer relevant */
udc_submit_ep_event(dev, buf, 0);
/* Try to queue next packet before SOF */
dwc2_handle_xfer_next(dev, cfg);
}
}
}