Hi Nikolaus, On Thu, Aug 2, 2018 at 9:06 PM H. Nikolaus Schaller hns@goldelico.com wrote:
Hi,
Am 02.08.2018 um 11:51 schrieb H. Nikolaus Schaller hns@goldelico.com:
Hi, while Marek is trying to get the firmware properly built and/or loaded, I have started to rebase the aess patch set on top of 4.18.
The key issue and task is to get rid of all sound_soc_platform references and replace by sound_soc_component.
To make it a little more clear which files we touch, I have rearranged and reworded the patch set so that we can easily identify the subsystem. And patches affecting more than one are split up into two patches now.
So basically, there are three groups of patches:
a) for sound/soc - they mainly export internal functions or add new helper functions I am not sure if these patches are still needed and/or good
b) sound/soc/omap - here we add an mcasp driver, make mcbsp export functions and the main change is to add firmware download to abe-twl6040.
c) sound/soc/omap/aess - this is the real aess driver
The next steps are:
fix compile issues in sound/soc/core
upstream abe-twl6040 driver has already been converted to sound_soc_component,
so I have to make sure that patching in the firmware loader code does not undo something important...
- go through the aess code and convert to sound_soc_component
This may make some patches of a) no longer needed. Some of them might need additional modifications.
The current work is here:
http://git.goldelico.com/?p=gta04-kernel.git;a=shortlog;h=refs/heads/work-ae...
I plan to add patches for each step.
Well, I tried to work on 1. first, but it turned out to be a mess.
Therefore I reverted all(most all) sound/soc/core patches and started to work on 2. It was partially straightforward, partially difficult to decide what is new, what is needed and and what is duplicated code... So I hope I did not introduce too many bugs we have to hunt...
Regarding 1. I did just need to copy&paste two helper functions to make 2. compiling. Which means, that the new abe-twl6040 doesn't rely on patches for sound/soc.
Here is the first result:
http://git.goldelico.com/?p=letux-kernel.git;a=shortlog;h=refs/heads/work-ae... http://git.goldelico.com/?p=letux-kernel.git;a=blob;f=sound/soc/omap/omap-ab...
I have collected some questions for review at the beginning of the code.
Cool I'l take a loot.
What I also observed is that there is addidtional stuff we do not necessarily need for the Pyra, and which should IMHO go into separate patches against upstream:
- special support for OMAP4_SDP
- spdif stuff
- support for multiple DMICs
BTW: if we disable AESS it should compile fine - and we should be able to test if the twl6040 audio still works or is broken...
So the next big step is 3. Let's see how many of the patches from 1. we really need. The less we need them, the better...
I'm still strugling with creating aess FW which can be loaded properly with recent kernel. Basically old asoc-fw repo have methods to create dynamic wrap which is prepend at the beginning of firmware (part which soc-topology then verify). As Peter mentioned it work only with 3.15 linux-audio kernel. Problem is that from 3.15 to 4.17(18) a lot of headers was changed. I tried simply use 4.17 kernel header to compile but basically it's mess (kernel headers are changes so dramatically and I spend 1 hour only trying to resolve error issues but without success). So I decided to first try only aess FW without wrap header and after hacking of driver I also cannot load because something was missing from header (some memory offsets or so).
I think we should first try to use firmware without dynamic header (at least it should do something) and then try to somehow update it (can be lot of time consuming). Ideas? Thanks.
BR, Nikolaus
BR, marek