Workaround for https://source.puri.sm/Librem5/linux-next/-/issues/303.
It seems worth sacrificing some power savings for a modem that won't
disappear, at least until the above issue is fixed.
[ci:skip-build]: already built successfully in CI
Headset jack events emit 2 events: 'Headset Microphone Jack'
and 'Headphone Jack'. These were properly detected before,
but not headphone jack events only: 'Headphone Jack'.
This change allows to detect headphone jack events as well
and act on these events by setting the headphones as
default audio output while keeping the internal
microphone as audio input. For headsets,
the microphone is switched to the headset microphone as well.
- Add SLPI to nonfree_firmware description
- Add touchscreen and fuel gauge modules to the initramfs in preparation for
osk-sdl and charging-sdl (or any new alternative) support
- Add pointercal file for osk-sdl
[ci:skip-vercheck]
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.
Port based on an unofficial LineageOS port
from https://www.los-legacy.de/17.1/zerofltexx, using kernel from
https://github.com/Exynos7420/android_kernel_samsung_exynos7420/
What works:
- Kernel boots
- Display and touch input (tested with Weston)
- USB networking
- Wifi
For now only including Wifi drivers, as I wasn't yet able to
successfully test audio and camera subsystems (but I intentionally left
these firmware files commented out in the APKBUILD file).
[ci:skip-build]: already built successfully in CI
Add the missing depends to add the GPU firmware to the initramfs
so that osk-sdl works properly, as well as the haptics driver.
Also make all logs go to UART, this will clean up the splash screen and
let developers with UART access debug the boot process.
[ci:skip-build] This MR was already built on CI
Add the missing depends for our soc package alsa ucm configs. Also add
the missing depends to add the GPU firmware to the initramfs so that
osk-sdl works properly!
Also enable logs and point them to UART, this will clean up the splash
screen and let any developers with UART attached to debug the boot
process.
AsteroidOS uses this config file to determine how the UI should look
(e.g. a round or a square screen), and if some things like Wi-Fi are
supported. Upstream auto generates this config file, but it seems so
simple and small that I think it's better for us to just ship the file
next to the APKBUILD
AsteroidOS uses this config file to determine how the UI should look
(e.g. a round or a square screen), and if some things like Wi-Fi are
supported. Upstream auto generates this config file, but it seems so
simple and small that I think it's better for us to just ship the file
next to the APKBUILD
The PMIC AXP803 sends an interrupt to the A64 CPU when the
battery is critical low. This wakes up the tablet at ~10%
battery level, but UPower wasn't configured to add upon
this interrupt as the action level was way lower.
Therefore, the PMIC performed a hard shutdown when the
battery level dropped further, which may cause data loss.
The PMIC AXP803 sends an interrupt to the A64 CPU when the
battery is critical low. This wakes up the phone at ~10%
battery level, but UPower wasn't configured to add upon
this interrupt as the action level was way lower.
Therefore, the PMIC performed a hard shutdown when the
battery level dropped further, which may cause data loss.
TF201 nvram was updated since previous did not work on some devices.
Added support for TF101, TF300TG and TF300TL.
Signed-off-by: Svyatoslav Ryhel <clamor95@gmail.com>
Gummiboot was dropped from Alpine. Switch to grub, which is what we use
for tablet-x86uefi too.
In contrary to tablet-x86uefi, run the grub-mkimage command directly
inside the device package:
* This avoids creating another confusing grub-x86 like package (looks
like the x86 version of alpine's grub package, as it's the case with
grub-efi-x86, but actually it is just the result of grub-mkimage).
* In contrary to grub-efi-x86, the resulting efi file is not shared
across several devices.
* It's consistent with uboot mkimage commands, which we also run in
device packages.
Related: 398b7aef0b
We used to have it at 40% and just bumped it to 100%. With 100%, I can
hear static noise in the headphones when using the PinePhone (pmOS CE)
in a silent room, even if I turn the volume down in Pulseaudio (e.g.
18%-30% in Phosh). This was not the case when we had it at 40%.
70% seems to be the sweet spot, where no static noise can be heard when
using headphones in a silent room, but where volume can still be turned
up to a very high level if necessary.
Ported succesfully to armv7. Everything that worked on armhf
works on armv7 as well: touch, wifi, usb networking etc.
SWRast (gallium) was not enabled but is needed because the device
does not support 3D acceleration yet.
Upstream changelog:
ca736e844a
Patches rebased, and includes some new fixes:
arm64-dts-imx8mq-librem5.dtsi-adjust-the-usdhc-bus-s.patch
- Being tested by Purism as well, has shown some promise improving GPS
reliability
arm64-dts-imx8mq-disable-SuperSpeed-instances-in-par.patch
- Fixes issue with modem disappearing
This is required for kernels earlier than 4.7 for bwrap to work for
normal users, and therefore for gnome web (epiphany) and flatpak.
[ci:skip-build] [ci:ignore-count]
Upstream changelog:
4e76143d2e
Note, previous wifi driver behavior is not changed. The redpine module
still expects the fw to be in /lib/firmware on boot, and won't use the
fw on the card.. Theoretically this kernel version now supports both
loading fw from rootfs into ram AND using fw burned on the chip, but
since I haven't tested that well yet I'm leaving this as-is.
[ci:skip-build]: already built successfully in CI
uboot-tools is provided by u-boot-tools but sometimes apk still gets
confused. This change prevents errors such as
pine64-pinephone:~$ sudo apk upgrade --verbose
WARNING: Failed to perform initial self-upgrade, continuing with full upgrade.
ERROR: unable to select packages:
uboot-tools (virtual):
provided by: u-boot-tools
required by: device-pine64-pinephone-0.25-r1[uboot-tools]
[ci:ignore-count]
[ci:skip-build]: already built in CI successfully
The AP6359SA is a BCM4359 SDIO-based Wi-Fi/Bluetooth module that PINE64
sells specifically for the ROCKPro64 device. This commit starts a
firmware package to support it specifically, while others can later add
firmware for other modules sold for the device. Also add this package as
a nonfree subpackage dependency in the ROCKPro64 device APKBUILD.
I was unable to find a suitable license for the firmware blobs, so until
we find a suitable repository containing all of the required files by
the module with a license included, or contact the vendor directly,
let's use LibreELEC's repository without a license for now.
[ci:skip-build]: already built successfully in CI
mce is used by both Glacier and Asteroid to do all kind of power
management related stuff, including blanking the display. However,
obviously we don't ever want to blank the display on Qemu
Upstream changelog:
6dcba4b588
The redpine interrupt handler patch has been dropped since it's now
merged in Purism's tree.
[ci:skip-build]: already built successfully in CI
As of MR 2039, the kernel modules are now stripped (INSTALL_MOD_STRIP=1).
It turns out that this massively reduces their size so that including
the panel + touchscreen modules in the initfs still fits into the
partition. This allows the splash screen and osk-sdl to work correctly.
As of MR 2039, the kernel modules are now stripped (INSTALL_MOD_STRIP=1).
It turns out that this massively reduces their size so that including
the panel + touchscreen modules in the initfs still fits into the
partition. This allows the splash screen and osk-sdl to work correctly.
As of MR 2039, the kernel modules are now stripped (INSTALL_MOD_STRIP=1).
It turns out that this massively reduces their size so that including
the panel + touchscreen modules in the initfs still fits into the
partition. This allows the splash screen and osk-sdl to work correctly.
As of MR 2039, the kernel modules are now stripped (INSTALL_MOD_STRIP=1).
It turns out that this massively reduces their size so that including
the panel + touchscreen modules in the initfs still fits into the boot
partition. This allows the splash screen and osk-sdl to work correctly.
Make needed deviceinfo changes to support osk-sdl, add "quiet" to the
cmdline and bump the package version to 1.
Signed-off-by: Caleb Connolly <caleb@connolly.tech>
[ci:skip-vercheck]
Make needed deviceinfo changes to support osk-sdl, add "quiet" to the
cmdline and bump the package version to 1.
Signed-off-by: Caleb Connolly <caleb@connolly.tech>
Add a subpackage to ensure that GPU firmware is included in initramfs so
that osk-sdl can work.
[ci:skip-vercheck]
Signed-off-by: Caleb Connolly <caleb@connolly.tech>
This device port is unmaintained: The mainline port (xiaomi-wt88047)
is preferred. This is only intended for testing, and was used to validate
the battery/charging driver as one example. Various patches are used
for the downstream kernel that expose helpful information for debugging.
[ci:skip-build]: already built successfully in CI
These are various debugging related patches that I have used over the time
when attempting to get new features working for the mainline kernel.
Given that the downstream kernel is just intended for debugging in this case,
it seems convenient to add them to pmaports so I don't need to go search for
them in case I need them again in the future.
[ci:skip-build] Already built on CI
Resize the partition when using a pre-built image. We didn't notice that
this was missing, because N900 images are new and we only tested from
pmbootstrap install --sdcard, which already uses the full SD card size.
modules-load.conf was completely unused by this package,
not installed anywhere. brcmfmac is loaded automatically anyway.
Sort values in sources= alphabetically
This is needed with the 5.11 kernel. Also adjust the vram & cma sizes
for all msm8974 devices.
The CMA size is 256MB as set in the kernel config.
VRAM is default 16MB although it is set to 192MB with a kernel patch;
but set it manually for all devices to make it possible to remove this
patch in the future - until we have IOMMU working.
still missing:
* audio
* lcd backlight control
* touchscreen driver
* front camera
* accelerometer mount fix (driver seem not to support mount-matrix)
* 3D acceleration
* HDMI support
This allows loading nonfree fw from rootfs (/lib/firmware), to work
around: https://source.puri.sm/Librem5/linux-next/-/issues/290
This change will break wifi unless the nonfree
firmware-siliconlabs-rs9116 package is installed.
New mainline port with most things working (usb/wifi/bt/3d-accel/sound/gps).
Modem/calls/sms/mobile-data should work but couldn't test it recently
due to broken devices.
* Add u-boot build with a lot of patches that makes the display work in
u-boot for boot selection
* Upgrade the rockchip kernel to 5.11 mainline with config for the
rk3399 devices built-in
* Make the rockpro64 and pinebook pro use the newer kernel
[ci:skip-build]
Actually the display in asus-me176c has a width of 800px, which means
that the splash screen isn't perfectly centered. Correct this in
deviceinfo to make it show up correctly.
Also, add configuration file for Phosh to reduce scaling a bit to 1.75.
It's kind of subjective but scaling = 2 definitely feels too large.
[ci:skip-build]: already built successfully in CI
There's a race condition between when the pwmled device is initialized,
which kicks off a feedbackd udev rule that configures the led trigger to
'pattern', and when ledtrig_pattern actually loads. It seems to mostly
load after the rule runs, so the trigger is never set to 'pattern' on
boot.
This removes the race by building the ledtrig_pattern driver into the
kernel.
[ci:skip-build] Already build successfully in CI