Skip to content
Snippets Groups Projects
Unverified Commit 31b3ba7a authored by Frank Oltmanns's avatar Frank Oltmanns Committed by Casey
Browse files

linux-postmarketos-qcom-sdm845: Improve work-around for call audio regressions (MR 6032)

Somehow enabling in-kernel PD mapper (introduced in 5b9f51b200dcb
"remoteproc: qcom: enable in-kernel PD mapper"), breaks the bottom mic
on xiaomi-beryllium (Poco F1) and distorts audio on OP6 (and possibly
OP6T). Temporarily disable it until the issue is resolved upstream.

Previously, the module's was modified to disable the in-kernel PD
mapper. This modification was a hack. Instead, modify the config so that
the in-kernel PD mapper is not built in the first place, which achieves
the same result.

Link: https://lore.kernel.org/linux-arm-msm/20241010074246.15725-1-johan+linaro@kernel.org/T


Link: pmaports#3353
Link: pmaports#3320
Link: pmaports#3245
Link: pmaports#3253

Signed-off-by: default avatarFrank Oltmanns <frank@oltmanns.dev>
parent dbe231aa
No related branches found
No related tags found
No related merge requests found
From 7e1ea84748d49b328213db529b524216600a9419 Mon Sep 17 00:00:00 2001
From: Frank Oltmanns <frank@oltmanns.dev>
Date: Mon, 30 Dec 2024 19:12:53 +0100
Subject: [PATCH] HACK: remoteproc: qcom: disable in-kernel PD mapper
Somehow enabling in-kernel PD mapper (introduced in 5b9f51b200dcb
"remoteproc: qcom: enable in-kernel PD mapper"), breaks the bottom mic
on xiaomi-beryllium (Poco F1) and distorts audio on OP6 (and possibly
OP6T). Temporarily disable it and log the rprocs in use until we better
understand what causes the issue.
Link: pmaports#3353
Link: pmaports#3320
Link: pmaports#3245
Link: pmaports#3253
Signed-off-by: Frank Oltmanns <frank@oltmanns.dev>
---
drivers/remoteproc/qcom_common.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/remoteproc/qcom_common.c b/drivers/remoteproc/qcom_common.c
index 8c8688f99f0ab..0b4e8eb7622d9 100644
--- a/drivers/remoteproc/qcom_common.c
+++ b/drivers/remoteproc/qcom_common.c
@@ -583,6 +583,8 @@ static void pdm_notify_unprepare(struct rproc_subdev *subdev)
*/
void qcom_add_pdm_subdev(struct rproc *rproc, struct qcom_rproc_pdm *pdm)
{
+ printk(KERN_INFO "aborting qcom_add_pdm_subdev, name %s\n", rproc->name);
+ return;
pdm->dev = &rproc->dev;
pdm->index = rproc->index;
@@ -602,6 +604,8 @@ EXPORT_SYMBOL_GPL(qcom_add_pdm_subdev);
*/
void qcom_remove_pdm_subdev(struct rproc *rproc, struct qcom_rproc_pdm *pdm)
{
+ printk(KERN_INFO "aborting qcom_remove_pdm_subdev, name %s\n", rproc->name);
+ return;
rproc_remove_subdev(rproc, &pdm->subdev);
}
EXPORT_SYMBOL_GPL(qcom_remove_pdm_subdev);
--
2.47.1
......@@ -6,7 +6,7 @@
_flavor="postmarketos-qcom-sdm845"
pkgname=linux-$_flavor
pkgver=6.13.0_rc2
pkgrel=2
pkgrel=3
pkgdesc="Mainline Kernel fork for SDM845 devices"
arch="aarch64"
_carch="arm64"
......@@ -24,7 +24,6 @@ _tag="sdm845-6.13-rc2-r2"
source="
linux-$_tag.tar.gz::https://gitlab.com/sdm845-mainline/linux/-/archive/$_tag/linux-$_tag.tar.gz
$_config
0001-HACK-remoteproc-qcom-disable-in-kernel-PD-mapper.patch
"
builddir="$srcdir/linux-$_tag"
......@@ -73,6 +72,5 @@ package() {
sha512sums="
af8b5e960248adf5da95571e964e664c8e329bf610a567b43fa22fc8a853b6e321192cb39667492ac86d8ac48e75b1e47eb546017937c9d0aeb11485e70797d3 linux-sdm845-6.13-rc2-r2.tar.gz
4c663896c0bc76858a91cbe6d64461ebebe5beb42a14320479e2291761dd9bfb01fd68047b2813df24f697f1f7465f63c3ca5777f5bca9d26552366e851400d6 config-postmarketos-qcom-sdm845.aarch64
a107cada98c5902aaf193bbc80d19276cf286c5094c7e8587a6d5756929d91f46b555efbf48f4b7b85c1feb8c71b989fbb49b26b2c7a8f7ec2ee1385c20b9d03 0001-HACK-remoteproc-qcom-disable-in-kernel-PD-mapper.patch
44c36dbf9596d33a6aca7705f3a7912718b730c59ca4a198406b7f005c11916348367306ab436637ae912c44f5209c10508fbf59f12705af0876b810f52bbbc6 config-postmarketos-qcom-sdm845.aarch64
"
......@@ -6853,7 +6853,7 @@ CONFIG_QCOM_LLCC=y
CONFIG_QCOM_KRYO_L2_ACCESSORS=y
CONFIG_QCOM_MDT_LOADER=y
CONFIG_QCOM_OCMEM=y
CONFIG_QCOM_PD_MAPPER=m
# CONFIG_QCOM_PD_MAPPER is not set
CONFIG_QCOM_PDR_HELPERS=y
CONFIG_QCOM_PDR_MSG=y
# CONFIG_QCOM_PMIC_PDCHARGER_ULOG is not set
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment