Since linux 6.4.0 the SDM845 kernel uses compressed kernel modules, we
need to kmod version of modprobe to handle loading these, so depend on
it.
[ci:skip-build] already built
Update some alsa buffer params to solve sound quality issues
I got working values experimentally after trying
different buffer sizes and limits and watching to pw-top
to ensure there are no errors during playback from diffrent apps and
sinks.
Contributes to #1534
The call_audio_idle_suspend_workaround init service was moved to the
-pulseaudio subpackage, but the -modem subpackage still had a
.post-upgrade referring to it. This moves that to the (recently) new
-pulseaudio package
[ci:skip-build]: already built successfully in CI
Out of the box audio is really quiet and distorted on SDM845 devices when
using PipeWire. This can be worked around by forcing audio to 16 bits
(which PulseAudio uses by default and thus works). This seems to be a
kernel problem and should be fixed properly there but for now we can
apply this workaround to at least be able to switch to PipeWire anytime
soon. The actual workaround is applied by Wireplumber so the dependency
for the subpackage is set to that.
Upstream issue https://gitlab.freedesktop.org/pipewire/pipewire/-/issues/3193
[ci:skip-build]: already built successfully in CI
The upcoming db845c doesn't have cellular modem capabilities, but still
has wifi. Avoid installing modem related configs and services by default
and only install it for devices that need it.
In SDM845, the q6voice kernel driver connects modem and audio backends.
Callaudiod seems to switch to correct audio device and prepares it, however, the audio
device get's closed since no one from the userspace is actively listening to it.
This cuts the audio in call. As a workaround, I have added to script to disable the
suspend-on-idle pulseaudio module during calls, so the audio devices don't close automatically.
Update the ALSA UCM package for the SDM845 so the ALSA UCM configs for
the SHIFT6mq are included. Speaker, microphones, headset work fine in
HiFi mode. In Voice Call mode, the microphone works, but the earpiece is
still silent.
[ci:skip-build]: already built successfully in CI
Rebased our work on top of latest upstram alsa-ucm-conf.
The beryllium ucm conf is also reworked to fix wrong default audio device issue
and now headphones auto-switching on plugin also works as expected.
Adding myself as a co-maintainer for this package.
Change-Id: I360c60d1675c884c9e85cd95f940fa6cb4b75e83
Signed-off-by: Joel Selvaraj <joelselvaraj.oss@gmail.com>
SDM845 devices running mainline lack a valid MAC address, and
fallback to a random one on each boot. This makes DHCP IPs vary
on each boot and breaks Bluetooth BNEP mode since the kernel enforces
that a valid MAC address is used when Bluetooth BNEP mode is activated.
Add a udev rule to trigger a script when the WLAN or Bluetooth interface
appear to set the MAC address by reading it from the persist partition
for the WLAN MAC address and increment it for generating a Bluetooth MAC
address. This approach seems to be common on some downstream devices
such as the Oneplus 6.
[ci:skip-build]: already built successfully in CI
UPower defaults to HybridSleep mode when battery is critical.
Since we allow suspending the device in regular use, this approach
won't help in a critical battery case scenario. When the battery
level is critical, shutdown the device instead.
Moreover, adjust the default levels for battery low, critical, critical
action since they are too high for SDM845 devices.
Also, moving the modemmanager.conf file from the main package to the
nonfree-firmware subpackage as Modem Manager is going to work
only if the nonfree-firmwares are present.
Fix the feedbackd rule as the haptics modules has been renamed.
Although SDM845 doesn't really suspend well, MM needs suspend
and resume support when the device attempts to suspend. Without
which MM will crash and wont resume properly when a suspend
action is triggered.
Depend on msm-modem-uim-selection to configure to modem for modemmanager
Set package dependency "swclock-offset" to "soc-qcom-msm8916" and
"soc-qcom-sdm845".
These SoC's have a read-only real-time clock (RTC). The package
"swclock-offset" keeps an offset between the RTC and the system time.