i have custom boards with i.MX6ul and i.MX6dl and a wlan/bluetooth chip wl1837 that communicates via uart with the i.MX6.
If dma is enabled at one point during normal work load the sdma stops fetching data from the rx fifo. This leads to rx fifo
overflow and raising the CTS line that yields in errors in the bluetooth stack
Bluetooth: hci0: command 0x0406 tx timeout
reloading hci_uart module yields in a working state of uart and sdma but is obviously no solution.
I'm using a linux mailine kernel v4.15 but i have also tried v5.2-rc3. I'm using sdma-imx6q.bin from mainline linux-firmware v3.3
but i also have tried out the ROM code and the newest available v3.5. Without success.
I have checked the uart registers. RRDY is 1. Checking the uart data with a logic analyzer doesn't show any errors.
I have dumped the uart registers after the error occurs:
edit: removed mention of FRAMERR, this is not always 1.