8 Replies Latest reply on Apr 4, 2019 12:59 AM by prchc_3505471

    Host doesn't get interrupt from Interrupt EndPoint


      Hi All,


      Can anyone pinpoint because of what it might occur following described behavior ?


      We are using FX3 (USB3.0) chip which gets connected with Linux PC where its device driver runs. As per project need, FX3 sends 2 byte data using DMA buffer (total 4 DMA buffers) on its interrupt end-point. However most of time host receives these data since it submits URB every time before FX3 generated interrupt data, sometime host doesn't get this data. While debugging at FX3 firmware code, it seems like it has successfully got the DMA buffer, copied the 2 byte data into this buffer and committed it without any failure. We couldn't see any failure on these APIs in firmware (CyU3PDmaChannelGetBuffer() & CyU3PDmaChannelCommitBuffer()), they always returns 0 i.e. Success.


      Also, from host perspective, device-driver developer says that there is no issue in URB submission. We couldn't see any error in syslog.


      While further testing, we could see that if host makes any single transaction on BULK-OUT EP (from host to FX3), this earlier committed (and stalled) interrupt now gets received by host. So we don't know what exact happens whether it gets blocked somewhere either in FX3 side or Host side.


      So let me ask whether anyone has faced such thing or any idea on this, please let me know.