ALSA unable to Open CPU DAI in IMX8M-PLUS

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

ALSA unable to Open CPU DAI in IMX8M-PLUS

跳至解决方案
2,271 次查看
Delta32
Contributor II

We are using IMX8M-PLUS SOM (from variscite) for our audio hardware. The basic requirement for our audio devices is as follows,

  1. Need to support capture audio from up to 16 mic inputs. Should be capable to capture each device separately.
  2. Need to support playback on up to 16 speakers, each should be individually addressable.

We have a multiple TLV320AIC3104 codecs configured to send & receive data in TDM format over SAI lines of IMX8M-PLUS in the given below configuration

  1. Default frame size is 256 bits
  2. 16 channels
  3. 16-bit data per channels
  4. Codecs are configured to with required offset to use the channels according to our need,

             First Codec - Channels 0 and 1

             Second Codec- Channels 2 and 3

             Third Codec - Channels 4 and 5 .... likewise.

The important aspects of our design are,

  1. Codes are not connected to the SOM: The codecs are configured and controlled externally using a separate Microcontroller.
  2. The frequency to derive the SAI lines are generated externally: 4.096 MHz

We are using the Linux kernel version 5.4.70 from variscite and developed the drivers required by ASLA to interface this configuration as follows,

  1. Platform driver: Using the fsl-sai driver supplied by NXP
  2. Codec driver: As the codec is not directly connected to SOM, we created a dummy codec driver.
  3. Machine driver: We created a machine driver to link the platform and the codec drivers and register the sound card for our device.

With the ALSA drivers, the sound card is added. But we are not able to use it for playback and capture.

We are getting below error,

               aplay -D plug:play0  -v -c 1  005.wav

               [  330.569976] fsl-sai 30c20000.sai: ASoC: can't open component 30c20000.sai: -6

               ALSA lib ../../../alsa-lib-1.1.9/src/pcm/pcm_dshare.c:767:(snd_pcm_dshare_open) unable to open slave

The same configuration and drivers are working well in the IMX8M-MINI SOM based on the Yocto Sumo BSP with Linux kernel version 4.14.98, but not working in the IMX8M-PLUS SOM based on the Yocto Zeus BSP with Linux Kernel version 5.4.70.

What could be the issue? Anyone already familiar with this type of issue? 

Thanks in advance.

标签 (2)
标记 (2)
0 项奖励
回复
1 解答
2,032 次查看
Delta32
Contributor II

The issue occurred due to the DMA driver. The associated DMA driver was not loaded properly due to the kernel version mismatch. 

 

在原帖中查看解决方案

0 项奖励
回复
2 回复数
2,033 次查看
Delta32
Contributor II

The issue occurred due to the DMA driver. The associated DMA driver was not loaded properly due to the kernel version mismatch. 

 

0 项奖励
回复
2,248 次查看
krishchan
Contributor I

Hi,

     As you said,  it works with Yocto Sumo BSP with Linux kernel version 4.14.98, but not working in the IMX8M-PLUS SOM based on the Yocto Zeus BSP with Linux Kernel version 5.4.70.

So setup seems to be fine.

Its better to go with patch/kernel source investigation which would require lot of effort!!!

 

Cheers

KrishChan

0 项奖励
回复