I finally got some time to work on this and I got some news!
Before you get too excited: no, I haven't been able to play sound yet
but I've made some realizations.
The old Linux-3.8 driver actually have 2 audio "platform drivers":
omap-pcm.c
- introduced in 2008 with support for Nokia N810
omap-abe-mmap.c
- added in 2012 as a "ABE low power" driver.
ABE (Audio BackEnd) is somehow related to AESS. Maybe one of them is a component of the other? I haven't looked it up
The Letux port of the audio driver only has 1 "component driver" (it has changed name from "platform" to "component"):
It looks to be a port of
omap-abe-mmap.c
. I can't blame anyone for going with the driver that clearly states that it's meant for the ABE/AESS when porting the code and disregard the older driver.
However, it looks like there's a symbiosis between the drivers happening in the old code.
One of the problems I've had on a newer kernel is that I couldn't even
begin to play any streams unless I chose the "OMAP ABE Media LP" device. Choosing this device triggers some special branches in the
omap-aess-pcm.c
code to let the kernel know about the hw constraints of the device. If I chose any other device, that branch was not hit and the kernel refused to play.
I started investigating what code did the same thing on the older kernel, and I found that it was done in 2 places. In
omap-abe-mmap.c
when using the "OMAP ABE Media LP" device and in
omap-pcm.c
otherwise.
It's clear to me that parts of the old
omap-pcm.c
driver has to be ported over to
omap-aess-pcm.c
, but I don't know what yet.
I'm based off of
https://git.goldelico.com/?p=letux-kernel.git;a=shortlog;h=refs/heads/work-aess-noprint-v9 if anyone else want to help out!
I tried using the letux/aess-v13 head, but things have changed in the kernel memory management and I wasted about a day debugging stack corruption. I wouldn't recommend it.
That's it for now. Sorry for the delay