Community
cancel
Showing results for 
Search instead for 
Did you mean: 
idata
Community Manager
2,235 Views

Audio over I2S

Hi,

Has any one tried connecting an I2S codec to the module?

By looking at the kernel source code for Ostro OS it seems like the following driver is handling the I2S hardware interface - sound/soc/intel/skylake/skl.c

And there is a machine driver that would be a good place to start writing a sound card driver - sound/soc/intel/boards/bxt_florida.c

That is what is being loaded on a Brexton M machine with WM8998 codec connected.

Is that right?

I've already written a simple machine driver for the Joule module with a dummy I2S codec.

But I'm having trouble with getting the sound card to register.

During the probe stage in the snd_soc_skl driver a FW file is being requested.

The name of the file is 1a98-INTEL-EDK2-2-tplg.bin or dfw_sst.bin

And since the files don't come with Ostro the probe fails.

Any ideas where that FW file comes from?

10 Replies
idata
Community Manager
309 Views

Hi,

 

 

Thanks for your interest in the Intel Joule Platform.

 

 

I haven't used an I2S codec with the Joule module yet, however, let me investigate about this and as soon as I find useful information I'll let you know.

 

 

I'll appreciate your patience during the meantime.

 

 

Regards,

 

-Yermi

 

idata
Community Manager
309 Views

Hi,

 

 

Thank you very much for your patience. We have been investigating and we would like to let you know that we are planning on enabling the audio feature in a future release. You can keep an eye on our communities, as this release has no specific date for a launch.

 

 

Regards,

 

-Yermi

 

idata
Community Manager
309 Views

The version of Ostro that will be released in December will have I2S enabled.

idata
Community Manager
309 Views

Hi RVG,

 

 

Currently our team is working on it but there is not specific date for a launch, so my best suggestion would be to keep checking the community.

 

 

Regards,

 

-Yermi
idata
Community Manager
309 Views

Hi Yermi,

Any progress on the audio drivers?

We are using the latest Ostro OS release v1.0.1 from December 16th 2016.

Looks like the OS update added a DSP FW configuration blob.

I created a similar driver to the "bxt_florida.c" called "bxt_smt" and a dummy I2C codec driver called "smt_i2c".

But I'm running into problems when loading the new machine driver:

1) When using the default kernel configuration "snd-soc-skl" driver is initialized but _probe() is not called,

therefore my machine driver is not being requested/loaded at all.

Only the HDMI audio card is loaded. Here is a list of loaded modules (lsmod output):

snd_hda_codec_hdmi 34241 1

snd_soc_skl 43106 0

snd_soc_skl_ipc 22431 1 snd_soc_skl

snd_soc_sst_ipc 4126 1 snd_soc_skl_ipc

snd_soc_sst_dsp 12973 1 snd_soc_skl_ipc

snd_hda_ext_core 10957 1 snd_soc_skl

snd_soc_sst_match 1682 1 snd_soc_skl

snd_hda_intel 22961 0

snd_hda_codec 83289 2 snd_hda_codec_hdmi,snd_hda_intel

snd_hda_core 51281 5 snd_hda_ext_core,snd_hda_codec_hdmi,snd_hda_codec,snd_hda_intel,snd_soc_skl

snd_soc_smt_i2c 3457 0

snd_soc_core 145286 2 snd_soc_smt_i2c,snd_soc_skl

ac97_bus 1694 1 snd_soc_core

snd_pcm 81037 8 snd_hda_ext_core,snd_soc_core,snd_hda_codec_hdmi,snd_soc_smt_i2c,snd_hda_codec,snd_hda_intel,snd_soc_skl,snd_hda_core

As it can be seen the "snd_soc_skl" and "snd_soc_smt_i2c" drivers are not used.

2) When I disable CONFIG_SND_HDA_INTEL the "snd_soc_skl" driver is being probed and the "bxt_smt" mach driver is being loaded, but the DSP FW fails to load:

[ 8.813577] snd_soc_skl 0000:00:0e.0: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])

[ 8.962281] snd_soc_skl 0000:00:0e.0: FW Poll Status: reg=0x1010303 Power up successful

[ 8.962287] snd_soc_skl 0000:00:0e.0: FW Poll Status: reg=0x1010302 Unset reset successful

[ 9.463154] snd_soc_skl 0000:00:0e.0: Waiting for HIPCIE done, reg: 0x0

[ 9.470612] snd_soc_skl 0000:00:0e.0: ROM loaded, continue FW loading

[ 12.519877] snd_soc_skl 0000:00:0e.0: FW Poll Status: reg=0x5000001 Firmware boot timedout

[ 12.529359] snd_soc_skl 0000:00:0e.0: Transfer firmware failed -62

[ 12.536327] snd_soc_skl 0000:00:0e.0: Error code=0x0: FW status=0x5000001

[ 12.544025] snd_soc_skl 0000:00:0e.0: FW Poll Status: reg=0x1 Set reset successful

[ 12.552570] snd_soc_skl 0000:00:0e.0: FW Poll Status: reg=0x1 Power down successful

[ 12.561214] snd_soc_skl 0000:00:0e.0: Load base fw failed: ffffffc2

[ 12.571532] snd_soc_skl 0000:00:0e.0: error failed to register dsp -62

And loaded drivers are:

snd_soc_sst_bxt_smt 3519 0

snd_soc_skl 43079 0

snd_soc_skl_ipc 22431 1 snd_soc_skl

snd_soc_sst_ipc 4126 1 snd_soc_skl_ipc

snd_soc_sst_dsp 12973 1 snd_soc_skl_ipc

snd_hda_ext_core 10957 1 snd_soc_skl

snd_soc_smt_i2c 3457 0

snd_hda_core 51281 2 snd_hda_ext_core,snd_soc_skl

snd_soc_sst_match 1682 1 snd_soc_skl

snd_soc_core 145286 3 snd_soc_smt_i2c,snd_soc_skl,snd_soc_sst_bxt_smt

ac97_bus 1694 1 snd_soc_core

<p class="p...
idata
Community Manager
309 Views

Hi Corrosion,

 

 

Thanks for all the information provided, currently, we still have no update and we are working on it. We are going to be checking for any updates and we'll let you know as soon as we have any news.

 

 

We'll really appreciate your patience during this time.

 

 

Regards,

 

-Yermi A.

 

idata
Community Manager
309 Views

SZamb1
Novice
309 Views

Hi,

any update on this?

 

If original poster got it to work, a short report here would be very appreciated!
SZamb1
Novice
309 Views

Hi,

bumping (again) this discussion.

I'm on latest ref-os-iot and trying to connect the Cirrus Logic Audio Card to an Joule 550x.

So far I have:

1) created an ASoC machine driver (bxt-cirrus.c) based on the version for RaspberryPi

https://github.com/raspberrypi/linux/blob/rpi-4.9.y/sound/soc/bcm/rpi-cirrus.c https://github.com/raspberrypi/linux/blob/rpi-4.9.y/sound/soc/bcm/rpi-cirrus.c

removing all DT specific stuff and filling manually the DAI structures. Not really sure about all the fields here though, tried to follow bxt_florida.c for those.

2) As the other poster, removed snd_hda_intel and manually probed the new bxt-cirrus module

3) In my case, snd_soc_skl loads fine and firmware is transferred correctly

But still, lsmod | grep snd shows that the new module is loaded but not probed:

snd_soc_sst_bxt_cirrus 16956 0

snd_soc_sst_acpi 3171 0

snd_soc_sst_match 1554 2 snd_soc_sst_acpi,snd_soc_skl

snd_soc_wm8804 9697 0

snd_soc_wm5102 641540 0

Any suggestion on how to move from here? Is it necessary to modify ACPI tables to have the module probed?

Thanks,

 

Stefano
Tpati2
Beginner
309 Views

Hi,

snd_soc_skl dont 'loads and firmware is transferred failed -62 error comes it -ETIME .

: snd_soc_skl 0000:00:0e.0: FW Poll Status: reg=0x81000012 Firmware boot timedout

snd_soc_skl 0000:00:0e.0: Iteration 0 Transfer firmware failed -62

snd_soc_skl 0000:00:0e.0: Error code=0x2c: FW status=0x81000012

 

Any suggestion on how to resolve this error ?

Reply