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:
parent
8b212d80fd
commit
edbb05368d
1 changed files with 4 additions and 0 deletions
|
@ -2572,7 +2572,11 @@ static void dwc2_handle_incompisoin(const struct device *dev)
|
||||||
|
|
||||||
buf = udc_buf_get(dev, cfg->addr);
|
buf = udc_buf_get(dev, cfg->addr);
|
||||||
if (buf) {
|
if (buf) {
|
||||||
|
/* Data is no longer relevant */
|
||||||
udc_submit_ep_event(dev, buf, 0);
|
udc_submit_ep_event(dev, buf, 0);
|
||||||
|
|
||||||
|
/* Try to queue next packet before SOF */
|
||||||
|
dwc2_handle_xfer_next(dev, cfg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue