Commit graph

15 commits

Author SHA1 Message Date
Nikita Travkin
351c24206f
community/soc-qcom-msm8916: add udev rule for pm8916 haptics (MR 2699)
Feedbackd needs to know which device to use for haptics. Add an udev
rule to mark haptics device in the pm8916.
2021-11-23 15:39:31 +01:00
Minecrell
a9412824ea
community/soc-qcom-msm8916: introduce more flexible rproc selection (MR 2632)
Add a replacement for the current "mainline" and "mainline-modem"
kernel variants used for the MSM8916 devices. At the moment this is
implemented using separate DTBs that are all maintained in the kernel.

Unfortunately, this does not seem likely to be accepted upstream in
the mainline kernel. They will expect to have only a single DTB that
enables all available functionality. The "no-modem" variant is a minor
but still very useful use case because it changes the audio routing:
It allows audio to work without any firmware, with more control on
sample rates, latency etc for advanced audio use cases. However,
having a potentially enabled modem requires routing all audio through
the modem. There are two separate DTBs needed for these two setups.

To avoid burdening mainline with this use case, the idea is to apply
the necessary DTB transformations as part of the lk2nd boot process.
Mainline only contains the DTB with the full functionality (audio
routed through modem). The soc-qcom-msm8916-rproc packages place
a magic file at /boot/lk2nd_rproc_mode that is read by lk2nd. When
the file contains "no-modem" lk2nd will transform the DTB to disable
the modem and change the audio routing to bypass the modem.

That way, this feature does not need to be considered in mainline
at all but can still be offered as "nice to have" by lk2nd. It also
simplifies the device packages because the selection is now common
as part of the soc-qcom-msm8916 package.

Together with a related pmbootstrap change there is a nice prompt
for selecting one of these "rproc" providers:

     $ pmbootstrap init
     [...]
     Available providers for soc-qcom-msm8916-rproc (3):
      * all: Enable all remote processors (audio goes through modem) (**default**)
      * no-modem: Disable only modem (audio bypasses modem, ~80 MiB more RAM)
      * none: Disable all remote processors (no WiFi/BT/modem, ~90 MiB more RAM)
     Provider [default]: ...
2021-11-21 19:10:58 +01:00
Minecrell
26b44a94f7
device/soc-qcom-msm8916: replace msm-modem-rpmsg with msm-modem (MR 2535)
Starting with Linux 5.14, the modem can be controlled through the new
WWAN subsystem in Linux with the WWAN RPMSG CTRL driver. This is also
supported in ModemManager 1.18 and the pmOS fork of oFono.

Drop the udev rules for the previous approach through the RPMSG chardev
since this causes the modem to be detected twice by ModemManager and oFono.
2021-09-19 17:03:31 +02:00
Nikita Travkin
f8c8a96389
community/soc-qcom-msm8916: Update ucm to use JackControl (MR 2458) 2021-08-24 14:43:35 +02:00
Ultracoolguy
88f2ff05fa
soc-qcom-msm8916: Update ucm to include motorola-ocean (MR 2350) 2021-07-19 07:48:10 +02:00
Nikita Travkin
e9e9a74b1d
soc-qcom-msm8916: use msm-modem-uim-selection (MR 2291)
Some msm8916 devices, primarily with two sim slots, require slot
to be selected. Install uim-selection script for all msm8916 devices
with modem enabled.

[ci:skip-build] already built successfully in CI
2021-07-05 07:41:23 +03:00
Jakob Hauser
6614be1f17
device/community: add swclock-offset dependency for affected SoCs (MR 2241)
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.
2021-06-10 18:29:24 +03:00
Minecrell
47ec08d635
community/soc-qcom-msm8916: update UCM files (MR 2039)
- Fix speaker on xiaomi-mido
- Add UCM configuration for alcatel-idol347
2021-03-22 21:22:08 +01:00
Minecrell
b3248bfd32
device/community/soc-qcom-msm8916: fix regressions after PA update (MR 1760)
New upstream ALSA/PulseAudio release, new UCM regressions - of course!
Introduce some new hacks to make the ALSA UCM configurations work again.

This fixes weird "Combination of Speaker,Primary Microphone" outputs
appearing in the PulseAudio mixer.

And while we're at it, some minor improvements/additions:

  - Default to Speaker/PrimaryMic instead of Headphones/Headset
    I believe this is just a workaround until headphones detection
    works properly.

  - Add UCM configurations for oppo-a51f and lenovo-a6010
2020-11-26 11:45:14 +01:00
Minecrell
421095284a
device/community/soc-qcom-msm8916: fork alsa-ucm-conf entirely (MR 1655)
Upstream keeps making breaking changes in patch releases.
Let's fork alsa-ucm-conf entirely for now instead of just patching
in some files to ensure that these files don't break every few months.

This fixes audio on MSM8916 devices when not using the modem.
2020-10-30 17:10:18 +01:00
Minecrell
e9925b4a72
device/community/soc-qcom-msm8916: update ALSA UCM configurations (MR 1603)
- Add UCM configuration for Xiaomi Redmi 2 (wt88047)
- Add UCM configuration for Xiaomi Redmi Note 4 (xiaomi-mido)
- Some fixes to UCM configuration for BQ Aquaris X5 (bq-paella)
2020-10-05 02:16:19 +03:00
Minecrell
8e080015d7
modem/msm-modem: rename msm-modem-mainline to msm-modem-rpmsg (MR 1356)
Newer Qualcomm SoCs (e.g. SDM845. MSM8953) seem to use a different
method to talk to the modem. There are no longer separate rpmsg/SMD
channels for QMI messags, instead the modem is also available through QRTR.

On these newer SoCs, installing msm-modem-mainline is pointless,
because the created /dev/modem device will not actually allow
communicating with the modem. However, you still need the part from
the base package (msm-modem), which installs+enables rmtfs.

To avoid confusion, rename the msm-modem-mainline subpackage to
msm-modem-rpmsg. Install only "msm-modem" on SDM845 because that
likely does not allow communication with the modem through RPMSG
anyway.
2020-06-25 09:41:35 +02:00
Minecrell
af01e26142
device/community/soc-qcom-msm8916: install alsa-ucm-conf (MR 1307)
Newer versions of alsa-lib now require a top-level ALSA UCM
configuration (/usr/share/alsa/ucm2/ucm.conf):

    ALSA lib parser.c:2159:(load_toplevel_config) Unable to find the top-level configuration file '/usr/share/alsa/ucm2/ucm.conf'.
    ALSA lib main.c:983:(snd_use_case_mgr_open) error: failed to import hw:0 use case configuration -2
    alsaucm: error failed to open sound card hw:0: No such file or directory

The upstream ALSA UCM configurations are provided by Alpine's
"alsa-ucm-conf" package, so make sure to install it additionally.
2020-06-16 12:42:41 +02:00
Minecrell
d7306531f5
soc-qcom-msm8916: add ALSA UCM configuration for bq-paella (MR 1295)
bq-paella has an external speaker amplifier connected to the right
channel of the headphones output. Add an extra UCM configuration
to handle this properly.
2020-06-09 23:18:38 +03:00
Minecrell
d021832955
samsung-a5(u)lte: move from testing to community (MR 1273)
a5lte and a5ulte are almost identical hardware-wise, the separate
package is mainly necessary because they use different firmware
signatures.

Alexey Min agreed to do some testing occasionally :)
2020-06-03 13:46:00 +02:00