linux-omap.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "H. Nikolaus Schaller" <hns@goldelico.com>
To: "Tony Lindgren" <tony@atomide.com>,
	"Péter Ujfalusi" <peter.ujfalusi@gmail.com>
Cc: linux-omap@vger.kernel.org, Letux-kernel@openphoenux.org
Subject: OMAP4/5 AESS on v6.4
Date: Tue, 23 May 2023 17:21:22 +0200	[thread overview]
Message-ID: <FFF13275-327A-4E3C-95E5-88B6A376F582@goldelico.com> (raw)

Hi Tony and Peter,
I have upgraded my WIP tree to v6.4-rc3 now.

It is almost working, firmware can be built, and is loaded, subdevices are presented, graph
has been verified against the working 3.15 version, legacy sound works, amixer settings are
fine, etc.

The last remaining issue (before the next reveals itself) is that the AE DSP isn't running.
Playing a sound gets stuck in wait_for_avail() in sound/core/pcm_lib.c obviously waiting for 
some interrupt or DMA trigger from the DSP.

Kernel log/user-space symptoms are:

[   36.957956] omap-abe-twl6040 sound: playback write error (DMA or IRQ trouble?)
play WARN alsa: Input/output error

So it may either be a clocking or power issue or something with initialization.
Very difficult to find. Also symptomatic seems to be that I can hex-dump the /sys/kernel/debug
files for cmem, dmem, and smem but not pmem.


Therefore I am currently going once again through all questionable code where I
had noted a FIXME to tell that it is obviously not compatible to modern
kernels and has not yet been fixed.


One such place is

https://git.goldelico.com/?p=letux-kernel.git;a=blob;f=sound/soc/ti/aess/omap-aess-pcm.c;h=e9c8b9a00f032f336cac8cbb7e441ce8a7476507;hb=74db6d179bad60cdad29a8704f9e606f8cffccd3#l673

where there is a "context-lost mechanism" which was removed in v4.18.

Any ideas what that "context lost" is or how it can be fixed in modern kernels?


You may also try or review the full tree:

https://git.goldelico.com/?p=letux-kernel.git;a=shortlog;h=refs/heads/aess-6.4-rc3

I haven't tried that as a stand-alone without my other local Letux patches for my
devices, but I think it can run at least on PandaES and omap5uevm after configuring
omap2plus_defconfig.

Building firmware is best done on the device and running a script like this one:

https://git.goldelico.com/?p=letux-kernel.git;a=blob;f=Letux/root/build-aess-fw;h=0bfe59559e5395fb1e5ad32bbbac676d7665aa22;hb=refs/heads/letux-current

This clones the kernel git repo and tries to build the firmware on the target device.
I have only tested on Debian 9.13. Other releases may reveal subtle conflicts in system
include files...


Any help (also by readers) to get this beast finally working is welcome.

Best regards,
Nikolaus


             reply	other threads:[~2023-05-23 15:24 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-05-23 15:21 H. Nikolaus Schaller [this message]
2023-05-25  4:53 ` OMAP4/5 AESS on v6.4 Tony Lindgren
2023-05-25  8:32   ` H. Nikolaus Schaller
2023-05-26  5:09     ` Tony Lindgren
2023-05-26  6:21       ` Tony Lindgren

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=FFF13275-327A-4E3C-95E5-88B6A376F582@goldelico.com \
    --to=hns@goldelico.com \
    --cc=Letux-kernel@openphoenux.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=peter.ujfalusi@gmail.com \
    --cc=tony@atomide.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).