ALSA unable to Open CPU DAI in IMX8M-PLUS

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

ALSA unable to Open CPU DAI in IMX8M-PLUS

Jump to solution
1,079 Views
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.

Labels (2)
Tags (2)
0 Kudos
1 Solution
840 Views
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. 

 

View solution in original post

0 Kudos
2 Replies
841 Views
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 Kudos
1,056 Views
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 Kudos