Hi Marek,
Am 12.07.2018 um 21:30 schrieb Belisko Marek marek.belisko@gmail.com:
Hi Nikolaus, On Tue, Jul 10, 2018 at 9:12 AM H. Nikolaus Schaller hns@goldelico.com wrote:
Hi Marek,
Am 10.07.2018 um 08:10 schrieb Belisko Marek marek.belisko@gmail.com:
Hi Nikolaus, On Tue, Jul 10, 2018 at 8:06 AM H. Nikolaus Schaller hns@goldelico.com wrote:
Hi Marek, I merged letux-4.17.3 (and replaced the gab driver merge conflict by the new version). Then I added the firmware ED had sent by mail and got this:
cool thanks. I plan to do it today but you're faster than me ;).
Well, I did take a shortcut by merge+quick fix. Should better be a rebase so that we can have all aess stuff at the tip of the branch.
root@letux:~# lsmod|fgrep aess snd_soc_omap_aess 61440 2 snd_soc_omap_abe_twl6040,snd_soc_omap_mcpdm root@letux:~# dmesg|fgrep aess [ 6.349644] aess 401f1000.aess: ASoC: invalid header size for type 0 at offset 0x0 size 0x1a5e8. [ 6.362569] aess 401f1000.aess: request for AESS FW failed -22 [ 6.373974] aess 401f1000.aess: ASoC: failed to probe component -22 root@letux:~# aplay -l **** List of PLAYBACK Hardware Devices **** card 0: H58040000encode [HDMI 58040000.encoder], device 0: HDMI 58040000.encoder snd-soc-dummy-dai-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0 root@letux:~# ls -l /lib/firmware/omap_aess-adfw.bin -rw-r--r-- 1 root root 108008 Jul 10 05:57 /lib/firmware/omap_aess-adfw.bin root@letux:~# file /lib/firmware/omap_aess-adfw.bin /lib/firmware/omap_aess-adfw.bin: data root@letux:~# xxd /lib/firmware/omap_aess-adfw.bin | head -10 0000000: 436f 5341 0100 0000 0500 0000 0000 0000 CoSA............ 0000010: a032 0f00 4404 0000 0500 0000 444c 3120 .2..D.......DL1 0000020: 4571 7561 6c69 7a65 7200 0000 0000 0000 Equalizer....... 0000030: 0000 0000 0000 0000 0000 0000 0683 8300 ................ 0000040: 0300 0000 0000 0000 3b00 0000 0000 0000 ........;....... 0000050: 0000 0000 0500 0000 ffff ffff 466c 6174 ............Flat 0000060: 2052 6573 706f 6e73 6500 0000 0000 0000 Response....... 0000070: 0000 0000 0000 0000 0000 0000 3830 3048 ............800H 0000080: 7a20 4850 4620 3064 4200 0000 0000 0000 z HPF 0dB....... 0000090: 0000 0000 0000 0000 0000 0000 3830 3048 ............800H root@letux:~#
This seems to confirm that the firmware blob is not what the driver code expects...
Hmm well then we need to get it somehow from TI guys. Do you have any contact? Thanks.
Peter should have best contacts and recommendations. So I put him on To: address.
I did check more deeply what is going on with above error. I checked 3.15 branch from omap-audio and compared to actual one soc-fw was replaced by soc-topology which should be by my rough guess some standard format for ASoC firmware. I looked again to data and firmware looks to be correct according old struct but from our kernel it has format: struct snd_soc_tplg_hdr { __le32 magic; /* magic number */ __le32 abi; /* ABI version */ __le32 version; /* optional vendor specific version details */ __le32 type; /* SND_SOC_TPLG_TYPE_ */ __le32 size; /* size of this structure */ __le32 vendor_type; /* optional vendor specific type info */ __le32 payload_size; /* data bytes, excluding this header */ __le32 index; /* identifier for block */ __le32 count; /* number of elements in block */ } __attribute__((packed));
so thus we get this error.
In original 3.15 kernel struct looks like: struct snd_soc_fw_hdr { __le32 magic; __le32 abi; /* ABI version */ __le32 type; __le32 vendor_type; /* optional vendor specific type info */ __le32 version; /* optional vendor specific version details */ __le32 size; /* data bytes, excluding this header */ } __attribute__((packed));
so it's some items are missing like abi. So I think we would need to get somehow updated firmware based on some later kernel. I tried to look on https://github.com/omap-audio/abefw/tree/master and tried to compile but it cannot find some defines so no idea how to proceed. I can maybe edit existing snd_soc_tplg_hdr to fit to snd_soc_tplg_hdr and try it (first attempt shows a lot of is issues so it will take some time to rework).
I came across commit ac9391daac004e12dc4e4c62e130b09f245ece2b "ASoC: topology: Improve backwards compatibility with v4 topology files"
which may be related to this problem. This patch came with 4.18-rc1 so we probably should rebase our aess driver on 4.18-rc* first (which means to replace struct platform device by component etc.) before trying to rebuild firmware.
BR, Nikolaus