If FX3 endpoint buffers are completely filled with data and then if host sends some more data, endpoint responds with a NAK. Host retries the OUT transaction with the same data. This data will be accepted by endpoint whenever the data in endpoint buffer is read by the GPIF II.
This NAKing process continues forever unless the host application or device driver cancel the transfer by timeout.
This is not the behavior I'm seeing. It appears almost as if there is no back pressure from the device except for it becoming non-responsive. If the FX3 has 50 buffers, and I try to send enough OUT URBs to fill up 70 buffers the first 50 buffers are sent 8 at a time and are ACKed immediately. After the FX3 buffers are filled Linux stops calling my write callback handler (meaning it might not be receiving any ACK or NAK from the device) even after the FX3 buffers are being consumed by the GPIF interface.
Shouldn't Linux be notified by the FX3 when the FX3 goes from haveing 50 out of 50 buffers full to only 49 out of 50 being full?
If this process isn't automatic how do I enable it on the FX3?