Encountering SSI underruns using SDMA to drive it.

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

Encountering SSI underruns using SDMA to drive it.

564件の閲覧回数
dougbailey
Contributor III

I have a iMX6-DL based board running the NXP produced Linux kernel (V4.1.15). On this board, I have a SSI in TDM mode that is outputting an 8 slot bus at 8 kHz. I am trying to drive this with the SDMA using the Linux dmaengine API.

I am running into an issue where the SSI is encountering underrun errors. When this occurs, I see a 2 mS latency delay in the generation of the DMA callback from the end of data in the last DMA buffer. If I try to queue multiple DMA transactions that contain 8 mS of data, I still encounter the underrun errors.

At present, I am using the standard dmaengine_prep_slave_single DMA buffer methods. I have thought about using the cyclic methods but do not know how I would get access to the buffer being used to refresh the contents.

I am new to this DMA interface.  Any suggestions?

ラベル(2)
0 件の賞賛
返信
1 返信

459件の閲覧回数
weidong_sun
NXP TechSupport
NXP TechSupport

Hello Doug,

   if you can not allow the latency , you had better use the cyclic mode to implement your case, you could refer to the code drivers/tty/serial/imx.c in yocto release, there is the sample for how to use cyclic dma mode.

 Have a nice day!

Best regards,

Weidong

0 件の賞賛
返信