linux-postmarketos-qcom-sdm670: upgrade to v7.1.3

Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8940>
This commit is contained in:
Richard Acayan 2026-07-01 12:02:00 -04:00 committed by The Friendly Meow (merge) Bot
parent 0302ffd6d2
commit 355ae47182
No known key found for this signature in database
5 changed files with 291 additions and 185 deletions

View file

@ -1,42 +0,0 @@
From ce500b195fab1c3fb4d2ff04e7f24577a8f56d66 Mon Sep 17 00:00:00 2001
From: Richard Acayan <mailingradian@gmail.com>
Date: Mon, 8 Jun 2026 19:39:46 -0400
Subject: [PATCH] ASoC: codecs: cs35l36: reduce maximum volume to 0dB
The digital volume can be increased to +12dB. This is very loud, but
ALSA userspace still goes under 0dB until 64% logical volume. Cap the
maximum volume at 0dB, so ALSA only sets the hardware volume up to 0dB.
Link: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/work_items/4616
Signed-off-by: Richard Acayan <mailingradian@gmail.com>
---
sound/soc/codecs/cs35l36.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/sound/soc/codecs/cs35l36.c b/sound/soc/codecs/cs35l36.c
index 93818d7ec1a7..98992eaadb12 100644
--- a/sound/soc/codecs/cs35l36.c
+++ b/sound/soc/codecs/cs35l36.c
@@ -442,8 +442,8 @@ static bool cs35l36_volatile_reg(struct device *dev, unsigned int reg)
}
}
-static const DECLARE_TLV_DB_RANGE(dig_vol_tlv, 0, 912,
- TLV_DB_MINMAX_ITEM(-10200, 1200));
+static const DECLARE_TLV_DB_RANGE(dig_vol_tlv, 0, 816,
+ TLV_DB_MINMAX_ITEM(-10200, 0));
static DECLARE_TLV_DB_SCALE(amp_gain_tlv, 0, 1, 1);
static const char * const cs35l36_pcm_sftramp_text[] = {
@@ -483,7 +483,7 @@ static int cs35l36_ldm_sel_put(struct snd_kcontrol *kcontrol,
static const struct snd_kcontrol_new cs35l36_aud_controls[] = {
SOC_SINGLE_SX_TLV("Digital PCM Volume", CS35L36_AMP_DIG_VOL_CTRL,
- 3, 0x4D0, 0x390, dig_vol_tlv),
+ 3, 0x4D0, 0x330, dig_vol_tlv),
SOC_SINGLE_TLV("Analog PCM Volume", CS35L36_AMP_GAIN_CTRL, 5, 0x13, 0,
amp_gain_tlv),
SOC_ENUM("PCM Soft Ramp", pcm_sft_ramp),
--
2.54.0

View file

@ -0,0 +1,56 @@
From 8c28d5b7264a124b82e4441ea1f888fa58321747 Mon Sep 17 00:00:00 2001
From: Richard Acayan <mailingradian@gmail.com>
Date: Wed, 22 Jul 2026 20:31:34 -0400
Subject: [PATCH] media: i2c: lc898219xi: auto-suspend when not setting focus
The focus actuator consumes a lot of power and should use runtime PM
when not being used. Pipewire usually has the media pipeline open even
when not in use, so camera devices need to suspend while the pipeline is
open. The best available solution currently is to turn the actuator on
when setting the focus and let it turn off after.
This may sometimes reset the focus after 1 second when autosuspend kicks
in, but it's better than disabling the driver completely which can
impact the usability of the entire camera pipeline.
Signed-off-by: Richard Acayan <mailingradian@gmail.com>
---
drivers/media/i2c/lc898219xi.c | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/drivers/media/i2c/lc898219xi.c b/drivers/media/i2c/lc898219xi.c
index 1516524c63cb..6caee91d8948 100644
--- a/drivers/media/i2c/lc898219xi.c
+++ b/drivers/media/i2c/lc898219xi.c
@@ -142,9 +142,13 @@ static int lc898219xi_set_ctrl(struct v4l2_ctrl *ctrl)
struct lc898219xi *lc898219xi = container_of(ctrl->handler,
struct lc898219xi, ctrls);
+ pm_runtime_resume_and_get(lc898219xi->sd.dev);
+
if (ctrl->id == V4L2_CID_FOCUS_ABSOLUTE)
return lc898219xi_set_dac(lc898219xi, ctrl->val);
+ pm_runtime_put_autosuspend(lc898219xi->sd.dev);
+
return 0;
}
@@ -157,13 +161,11 @@ static int lc898219xi_open(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh)
struct lc898219xi *lc898219xi = sd_to_lc898219xi(sd);
__v4l2_ctrl_handler_setup(&lc898219xi->ctrls);
- return pm_runtime_resume_and_get(sd->dev);
+ return 0;
}
static int lc898219xi_close(struct v4l2_subdev *sd, struct v4l2_subdev_fh *fh)
{
- pm_runtime_put_autosuspend(sd->dev);
-
return 0;
}
--
2.55.0

View file

@ -3,8 +3,8 @@
maintainer="Richard Acayan <mailingradian@gmail.com>"
_flavor="postmarketos-qcom-sdm670"
pkgname=linux-$_flavor
pkgver=7.0.10
pkgrel=2
pkgver=7.1.3
pkgrel=0
pkgdesc="Mainline Kernel fork for SDM670/SDM710 devices"
arch="aarch64"
_carch="arm64"
@ -18,12 +18,15 @@ options="!strip !check !tracedeps
makedepends="
bison
clang
elfutils-dev
findutils
flex
installkernel
linux-headers
lld
llvm
openssl-dev
pahole
perl
python3
zstd
@ -35,7 +38,7 @@ _tag="sdm670-v$pkgver"
# Source
source="
https://gitlab.com/sdm670-mainline/linux/-/archive/$_tag/linux-$_tag.tar.gz
0001-ASoC-codecs-cs35l36-reduce-maximum-volume-to-0dB.patch
0001-media-i2c-lc898219xi-auto-suspend-when-not-setting-f.patch
$_config
"
builddir="$srcdir/linux-$_tag"
@ -74,7 +77,7 @@ package() {
}
sha512sums="
71476207449337685a947a5ab0c3a6af619e0b1322568723ed387792f8252d329d547a491e8ec6a5cb38ad76e52c4beeb76852cd7d2fbf39fd76f9743e2671de linux-sdm670-v7.0.10.tar.gz
3a463e3f02fe55b295d7c41cbdeb0104d62035c56f621d3536adfdd09b6ecbd90b8daabaa15633e40d5a5b4338ede1f6876996177a089718a0000077fe8e84d9 0001-ASoC-codecs-cs35l36-reduce-maximum-volume-to-0dB.patch
af2360a11f7182c68fb81779f13623af82d4ae5b91be31b6dfad2bec60e7d548b9ba4ba049cf5a075c06e2511d2ede720937c20fd49d9fdc6a4f158fbc4ad519 config-postmarketos-qcom-sdm670.aarch64
d9b99f4b5e41814a2b87a62ab080fc6de75f266fe6c17d4520be25151c2f5be784eb844e17f2703877dab375b4534e85a631fc3be47f36a82eb67bc867fd9aba linux-sdm670-v7.1.3.tar.gz
a8622691666aec1b55535e0764503e6cf38bbb4f43c9ba0b7232de93a96b4fb970551cf233edab7e656fc6daa6ef70bc0494f838163e01ce279467689f79615c 0001-media-i2c-lc898219xi-auto-suspend-when-not-setting-f.patch
d1eff34c318450f0b8e3825a3c669b83d1fb8fb80bc0d94353835df3645a9e89756d014b4a2801c7398c3896538030cc4481a945e211854d84dfd25d5a405c16 config-postmarketos-qcom-sdm670.aarch64
"

View file

@ -11,12 +11,14 @@ CONFIG_DM_CRYPT=y
CONFIG_FB=y
CONFIG_INPUT_EVDEV=m
# CONFIG_KINETO_GAN is not set
CONFIG_NLS_ASCII=y
# CONFIG_PFT is not set
# CONFIG_SEC_RESTRICT_ROOTING is not set
CONFIG_SYN_COOKIES=y
CONFIG_SYSVIPC=y
CONFIG_TMPFS_POSIX_ACL=y
# CONFIG_USE_VFB is not set
CONFIG_VFAT_FS=y
CONFIG_VT=y
CONFIG_DRM_FBDEV_EMULATION=y
CONFIG_BINFMT_SCRIPT=y
@ -34,6 +36,10 @@ CONFIG_UDMABUF=y
CONFIG_BPF=y
CONFIG_BPF_JIT=y
CONFIG_BPF_LSM=y
CONFIG_DEBUG_INFO_BTF=y
CONFIG_DEBUG_INFO_BTF_MODULES=y
CONFIG_DEBUG_INFO_DWARF5=y
# CONFIG_DEBUG_INFO_REDUCED is not set
CONFIG_IPC_NS=y
CONFIG_KPROBES=y
CONFIG_KPROBE_EVENTS=y
@ -41,6 +47,7 @@ CONFIG_NET_NS=y
CONFIG_PID_NS=y
CONFIG_SECURITY=y
CONFIG_SECURITYFS=y
CONFIG_SECURITY_PATH=y
CONFIG_USER_NS=y
CONFIG_UTS_NS=y
@ -66,10 +73,11 @@ CONFIG_NFS_V3=m
CONFIG_NFS_V4=m
CONFIG_NFS_V4_2=y
CONFIG_RPCSEC_GSS_KRB5=m
CONFIG_CRYPTO_AES_ARM64_CE_BLK=y
CONFIG_CRYPTO_KRB5=m
CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA1=y
CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA2=y
CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_CAMELLIA=y
CONFIG_CRYPTO_AES_ARM64_CE_BLK=y
# accessibility
CONFIG_A11Y_BRAILLE_CONSOLE=y
@ -261,14 +269,14 @@ CONFIG_NF_TABLES_IPV6=y
CONFIG_WIREGUARD=m
# filesystems
CONFIG_BTRFS_FS=y
CONFIG_BTRFS_FS=m
CONFIG_BTRFS_FS_POSIX_ACL=y
CONFIG_EROFS_FS=m
CONFIG_EROFS_FS_ZIP=y
CONFIG_EROFS_FS_ZIP_LZMA=y
CONFIG_EXFAT_FS=m
CONFIG_EXT4_FS=y
CONFIG_F2FS_FS=y
CONFIG_F2FS_FS=m
CONFIG_UDF_FS=m
CONFIG_XFS_FS=m
CONFIG_EROFS_FS_ZIP_DEFLATE=y
@ -314,13 +322,11 @@ CONFIG_EFI_ESRT=y
CONFIG_EFI_RUNTIME_WRAPPERS=y
CONFIG_EFI_STUB=y
CONFIG_EFI_VARS_PSTORE=y
CONFIG_NLS_ASCII=y
CONFIG_PSTORE=y
CONFIG_VFAT_FS=y
CONFIG_EFI_GENERIC_STUB=y
CONFIG_EFI_PARAMS_FROM_FDT=y
CONFIG_EFI_ZBOOT=y
CONFIG_NTFS3_FS=m
CONFIG_NTFS_FS=m
# input
CONFIG_BT=m
@ -490,7 +496,10 @@ CONFIG_EFIVAR_FS=m
CONFIG_DM_VERITY=m
# hardening
CONFIG_LSM="landlock,lockdown,yama,loadpin,safesetid,selinux,smack,tomoyo,ipe,bpf"
CONFIG_SECURITY_DMESG_RESTRICT=y
CONFIG_SECURITY_LOCKDOWN_LSM=y
CONFIG_SECURITY_LOCKDOWN_LSM_EARLY=y
CONFIG_SECURITY_YAMA=y
CONFIG_SHADOW_CALL_STACK=y
CONFIG_CFI=y