[Bug 209555] dwc2 driver stops working after sudden disconnect

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



https://bugzilla.kernel.org/show_bug.cgi?id=209555

--- Comment #18 from Minas Harutyunyan (Minas.Harutyunyan@xxxxxxxxxxxx) ---
Hi Yunhao,

Thank you for provided info.

Driver by default set to DDMA mode. In DDMA mode very important when requests
producer (function driver) produce more requests that consumer (HW) can
process, otherwise BNA (buffer not available) interrupt will be asserted.
In your case function driver queued only 2 requests for EP2OUT. Driver create
descriptor list with 2 descriptors. On completion of 2nd descriptor core
returning to first one, which already completed and not renewed yet. Because of
this BNA asserted. For OUT EP's on BNA interrupt RxFIFO should be flushed, but
due to AHB not idle - core permanently try to get new descriptor, but no new
descriptor created yet. This create infinite loop.
So, I suggest you, to allow your function driver produce more requests before
first ISOC OUT packets will received in RxFIFO to have enough big pool of
descriptors.
If you can't control initial requests count from function driver then you can
try set core to BDMA mode:
g_dma_desc                    : 1 --> 0

In BDMA mode BNA will not asserted.

Thanks,
Minas

-- 
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.



[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux