Texas Instruments Finland Oy, Porkkalankatu 22, 00180 Helsinki. Y-tunnus/Business ID: 0615521-4. Kotipaikka/Domicile: Helsinki
On 2017-09-16 14:56, Andrey Utkin wrote:
On Sun, Jul 30, 2017 at 03:37:22PM +0100, Andrey Utkin wrote:
Started to read sound/soc/omap/ with regard to ABE stuff. Not much of a progress for now, but now my vague idea is that aess/ subdir is full of goodness we need, and for some reason it wasn't forward-ported by TI devs from 3.8 branch it was originally introduced in. I guess it is due to lack of TI manpower on OMAP support, but I accept a chance that the right way is now different and thus porting aess/ code is not the right thing to do.
Will read on the code.
So I have almost started doing something :)
For now I've dropped in the missing source files and tweaked few things as needed. Work-in-progress git branch is here: https://github.com/andrey-utkin/linux/tree/pyra-aess
Now I'm facing a pile of compilation errors (https://gist.github.com/andrey-utkin/b1747c530d82a3606dd1a374bf48e432), as quite some of things the code uses hasn't got into mainline kernel. Will work on it, but hard part is ahead and I don't expect success anytime soon.
Also by incident I found a firmware generator for ABE: https://github.com/omap-audio/abefw . And I noticed Peter Ujfalusi when looking at repos in https://github.com/omap-audio/ and recalled Nikolaus' suggestion to get him involved, so I'm CCing Peter here.
Peter, could you please confirm - is porting sound/soc/omap/aess/ code from ti-linux-3.8.y branch the right way to get the most from the audio hardware? Or is the fact that this code hasn't been ported from v3.8 means that there's another way - I don't know, ready userspace driver or whatever?
I was forward porting and rewriting the ABE/AESS stuff up until 3.15: https://github.com/omap-audio/linux-audio.git next-bnw/ti-audio-next_3.15
It is a big rewrite of the original code, reshuffling files, renaming things, merging, and fixing some old bugs that we we had.
But the biggest issue imho is the firmware.
Both asoc-fw and abefw have peter/bnw branch, they must be used with the bnw kernel. BNW stands for Brave New World as I was preparing the AESS/ABE code for upstream.
Basically you need to rewrite/drop the asoc-fw to match with ASoC topology.
And the sources for the AESS/ABE firmware is _not_ available along with the compiler it was compiled. I think I still keep compiled binaries around here and there, but if they are lost, there is no way to recreate them.
in linux-audio : next-bnw/ti-audio-next_3.15 you can find the usable dynamic firmware image created with the asoc-fw peter/bnw branch.
I would not try to get 3.8 forward ported, my bnw-3.15 might be a better start. I don't know how big is the diff between the ASoC-dynamic-FW (3.8...3.15) compared to upstream ASoC topology and friends. If there is a big diff, then starting from scratch and using 3.8/3.15 as reference might be the way to go.
- Péter