Upstream ALSA UCM conf still does not work exactly for us, but parts of it do.
This commit incorporates those parts to reduce the diff between the two.
One of the changes is to move /usr/share/alsa/ucm2/PinePhone/* to
.../ucm2/Allwinner/A64/PinePhone/* to match upstream, and to
stop creating the symlink .../ucm2/conf.d/simple-card/PinePhone.conf
since upstream already provides it. However this means that just upgrading
device-pine64-pinephone will remove the symlink and not replace the symlink
from upstream package. Users will need to run
`apk fix --reinstall alsa-ucm-conf` to recreate it, and will not have sound
until they do.
Ref: #2115
Until this kernel is upgraded to >= 6.2, we need V=1 to work around
silent make output leading to failing builds.
[ci:skip-build]: already built successfully in CI
Add ucm configs and symlink for SOF firmware. Doing it in the firmware
subpackage because it doesn't work without linux-firmware-mediatek.
[ci:skip-build]: already built successfully in CI
The Freedreno driver requires python3 to build in the new version.
Deviations from the upstream config fragments:
- set CONFIG_CMA_SIZE_MBYTES to 256, from [1] and Matrix advice
[1] https://gitlab.com/sdm845-mainline/linux/-/merge_requests/100
[ci:skip-build] already built successfully in CI
Make room for MultiMedia4 (built-in microphone) device in q6voice.conf:
In the 6.9.3 kernel, there were four CPU endpoints in Q6ASM enabled
for audio:
0. MultiMedia1 - Built-in Earpiece and Speaker
1. MultiMedia2 - Headphones Playback (3.5 mm jack)
2. MultiMedia3 - Headset Capture (3.5 mm jack)
3. VoiceMMode1 - fake endpoint to route voice calls
In 6.10.2, an extra endpoint is added to support the built-in
microphone:
0. MultiMedia1 - Built-in Earpiece and Speaker
1. MultiMedia2 - Headphones Playback (3.5 mm jack)
2. MultiMedia3 - Headset Capture (3.5 mm jack)
3. MultiMedia4 - Built-in Microphone
4. VoiceMMode1 - fake endpoint to route voice calls
Since the device ID of VoiceMMode1 has changed, and q6voiced does
not automatically detect this by name, update the VoiceMMode1 device
ID so voice calls still work.
Be compatible with the secure name for the FastRPC device node:
There has been a security vulnerability issued at the FastRPC kernel
driver for allowing sensorspd and rootpd to be accessed on device
nodes not labelled "-secure". Be compatible with the FastRPC ADSP
device named "fastrpc-adsp-secure".
When failing to boot, phones show up as a removable storage device with
lots of very useful debug info. Let's encourage folks to upload it.
Signed-off-by: Caleb Connolly <caleb@postmarketos.org>
[ci:skip-build] already built successfully in CI
[ci:skip-build] CI fails because of an issue with pmb fetching build
deps on subsequent packages in the aggregated list of packages to build,
but bpo is expected to pass because it builds packages one at a time
This raises CONFIG_RCU_CPU_STALL_TIMEOUT from 21s to 60s and
CONFIG_RCU_EXP_CPU_STALL_TIMEOUT from 20ms to 60ms (the value `0` means
that it is set to the regular stall timeout divided by 1000).
The original values caused frequent kernel logs of
"rcu_preempt detected expedited stalls" while running CPU-intensive stuff
like waydroid and caused such processes or others like Phosh to crash.
The kernel defaults are 21 / 0 (21s / 21ms), though the config docs note that
the latter is "normally 20ms on Android devices". For what it's worth,
Debian 12's amd64 kernel uses the kernel defaults of 21 / 0 (21s / 21ms),
while OpenSUSE TW's amd64 kernel uses 60 / 0 (60s / 60ms) just like
this commit.
Ref: #2980