Audio support for AMD StoneyRidge on Upstream kernel

Hi, first of all thank you for the work you have done so far, without which this device would be not much more than a tablet with a keyboard.

As for my question, following the instructions on the device list I was able to get the audio working, but only using the Google-provided kernel.
Using exactly the same config but with an upstream kernel (or the distro-provided one, having tried Arch and OpenSUSE, v6.6 and v5.10) the audio is not working again, even enabling all the relevant *_GOOGLE_* and *_CROS_* switches, or merging the device-specific configs (i.e. those on the /chromeos dir).
Because of this I suspect that the issue lies not in the config used but in the source, but trying to diff the trees under sound/soc/amd (which I guess is the most relevant location) I wasn’t able to find anything that looked like a smoking gun, as the chromeos tree has a multitude of cherry-picked commits from newer kernel versions, many seemingly unrelated. It is then unclear to me if some commits cherry-picked to the chromeos tree have allowed the speakers to work, or if some commits on the newer upstream tree have broken them again (this without even considering the chromeos-only commits).

As no guide tells to use the chromeos kernel I guess that there should be a combination of (upstream) kernel version and configuration that is actually working, so was anyone able to get working audio using an upstream kernel?

So, thanks to the help from the Discord server it looks like that the issue did not lie with the upstream kernel, but just with some versions of it.
The kernel provided by Google is based on upstream v5.10, but with many patches backported from newer versions. This means that on a vanilla v5.10 kernel the audio will not work, and the first version that actually works is v5.17.
Another issue is that newer versions introduced a regression, so from version v6.5 the audio is not working again.

To summarize to get working audio output it is necessary to use either the Google downstream version (tested with v5.10), or an upstream kernel in the range v5.17.y…v6.4.y, inclusive.

1 Like

Interesting. Can you help me understand this a bit better? You were running Arch using the Google kernel? Did you just run make after downloading?
I am using Fedora (on AMD Stoney) and looking for a sound fix.

Also, did you notice performance increases with the Google kernel? The vanilla Fedora and Debian kernels I’ve tried give me strange results where sometimes things run at a speed I’d expect and then other times they are very lagged and seem to get caught up on certain processes before moving on to others.

No, we clearly stated that DAI links aren’t getting instantiated without amdgpu firmware for stoney and amdgpu built into the kernel.

Nobody knows why, and AMD doesn’t even want to maintain that platform anymore. We have CI builds for debian with working audio on mainline-ish kernels (though there are a lot of regressions).

1 Like

Interestingly, on 5.0.0 the links are created just fine with both AMDGPU and DESIGNWARE_I2S built as modules.

1 Like

Has there been any talk of compiling a Stoney kernel and hosting it on this site for folks to download and install rather than so many people doing it themselves?