{"id":2225758,"url":"http://patchwork.ozlabs.org/api/patches/2225758/?format=json","web_url":"http://patchwork.ozlabs.org/project/ubuntu-kernel/patch/20260421144053.131431-3-tobias.heider@canonical.com/","project":{"id":15,"url":"http://patchwork.ozlabs.org/api/projects/15/?format=json","name":"Ubuntu Kernel","link_name":"ubuntu-kernel","list_id":"kernel-team.lists.ubuntu.com","list_email":"kernel-team@lists.ubuntu.com","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<20260421144053.131431-3-tobias.heider@canonical.com>","list_archive_url":null,"date":"2026-04-21T14:40:55","name":"[SRU,R] UBUNTU: SAUCE: ASoC: qcom: x1e80100: limit speaker volumes","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"30d372a884c7956bec7c161583c703fda7dfe3c3","submitter":{"id":90158,"url":"http://patchwork.ozlabs.org/api/people/90158/?format=json","name":"Tobias Heider","email":"tobias.heider@canonical.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/ubuntu-kernel/patch/20260421144053.131431-3-tobias.heider@canonical.com/mbox/","series":[{"id":500825,"url":"http://patchwork.ozlabs.org/api/series/500825/?format=json","web_url":"http://patchwork.ozlabs.org/project/ubuntu-kernel/list/?series=500825","date":"2026-04-21T14:40:55","name":"[SRU,R] UBUNTU: SAUCE: ASoC: qcom: x1e80100: limit speaker volumes","version":1,"mbox":"http://patchwork.ozlabs.org/series/500825/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2225758/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2225758/checks/","tags":{},"related":[],"headers":{"Return-Path":"<kernel-team-bounces@lists.ubuntu.com>","X-Original-To":"incoming@patchwork.ozlabs.org","Delivered-To":"patchwork-incoming@legolas.ozlabs.org","Authentication-Results":["legolas.ozlabs.org;\n\tdkim=fail reason=\"signature verification failed\" (4096-bit key;\n unprotected) header.d=canonical.com header.i=@canonical.com\n header.a=rsa-sha256 header.s=20251003 header.b=BhzHXxpP;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=lists.ubuntu.com\n (client-ip=185.125.189.65; helo=lists.ubuntu.com;\n envelope-from=kernel-team-bounces@lists.ubuntu.com;\n receiver=patchwork.ozlabs.org)"],"Received":["from lists.ubuntu.com (lists.ubuntu.com [185.125.189.65])\n\t(using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits))\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g0Q716102z1yCv\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 00:42:21 +1000 (AEST)","from localhost ([127.0.0.1] helo=lists.ubuntu.com)\n\tby lists.ubuntu.com with esmtp (Exim 4.86_2)\n\t(envelope-from <kernel-team-bounces@lists.ubuntu.com>)\n\tid 1wFCIm-0006G9-VN; Tue, 21 Apr 2026 14:42:13 +0000","from smtp-relay-internal-0.internal ([10.131.114.225]\n helo=smtp-relay-internal-0.canonical.com)\n by lists.ubuntu.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128)\n (Exim 4.86_2) (envelope-from <tobias.heider@canonical.com>)\n id 1wFCIm-0006G0-41\n for kernel-team@lists.ubuntu.com; Tue, 21 Apr 2026 14:42:12 +0000","from mail-wm1-f71.google.com (mail-wm1-f71.google.com\n [209.85.128.71])\n (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest\n SHA256)\n (No client certificate requested)\n by smtp-relay-internal-0.canonical.com (Postfix) with ESMTPS id E8CA73FE9D\n for <kernel-team@lists.ubuntu.com>; Tue, 21 Apr 2026 14:42:11 +0000 (UTC)","by mail-wm1-f71.google.com with SMTP id\n 5b1f17b1804b1-488d2cd2674so33797865e9.0\n for <kernel-team@lists.ubuntu.com>; Tue, 21 Apr 2026 07:42:11 -0700 (PDT)","from shodan.fritz.box ([2001:a61:3426:4001:8efc:6f26:5d61:2375])\n by smtp.gmail.com with ESMTPSA id\n 5b1f17b1804b1-488fc10777csm430129195e9.8.2026.04.21.07.42.10\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Tue, 21 Apr 2026 07:42:10 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com;\n s=20251003; t=1776782531;\n bh=mX/hfTcDIJr9J/LQOGLCUnYThWh6k57By6GzHz/1L9M=;\n h=From:To:Cc:Subject:Date:Message-ID:MIME-Version;\n b=BhzHXxpPH6SlLOQkEfuuyvLNFanVsvqck84zKdza7kxz00SVb/RMpl924tKXsBgUU\n lpHww8mn5Duh70iV+ASAx39a6lxxJH8D2Ujil2Se0E64Xu5gkQTkZ0cNfPBf2XewV2\n hbKp/HpRxI9Oiaqg3L5xvRJ05fV9eFdWvJ7VwBSjNNOiddwSXnJRd6yRENe9V6Lj4N\n TIzxJ0Q9pbVcUFa2J8RN+oZf9ZyrxwxmouBTRnIfGMwAmLO0jHzB83UapF0RESGuEp\n JRZfVGZd9GiC6wUPTNxLdWqay7fBR0w8PmEdjhwX91imchSslyE/JBPRF+U2qXiur0\n 0iopxIPKtKfuyeJl+p8TyApN0O2S19nbfH0DYE2iZ5Pon5ZdDo4k3cQa8R9GWehLWF\n QT+TSZwlUV9EPtxMojADN44gnytuwoWq7sNMoDFx5+xvfhJAyvKjRTacNtG/FvKQ2G\n wOG+vo87qz3V+UIFCGlQAI6FaqvIiEHM1MSzE7Qn10B4XvtReNqEV7Az5qbK6dpSCI\n UsqSGBIXzhjOgTnrV4x0GOQ8cnq4inBb82/SadoaiL1aftvRzq270CdOCFf5ZeKpGc\n plZI/FMesP6GyOATDzV79/knZGS0H9pnVrPfOeMK7eh0KomaiqTzxU9LzlenY1zWWX\n jW6BXYwuDRPEeZXoM0tUtQUQ=","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776782531; x=1777387331;\n h=content-transfer-encoding:mime-version:message-id:date:subject:cc\n :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date\n :message-id:reply-to;\n bh=mX/hfTcDIJr9J/LQOGLCUnYThWh6k57By6GzHz/1L9M=;\n b=e60fvCjjUam0/jqlIDE+1qDkUE9ES42pdzVCQaVWdkdylI55cxbwaJ1wA9m0Vz6vxk\n Xkz7L3v5SgR5UyOXQp4w0qGljp7QwPbs9pCPowutR9bVecrEncrvfadlrVVDizuRxDQ0\n gWKRNKR462/7ZENPlLWM6MdrsDTR6gIwLGQK1YlfEqTHhmmSIBpiIJao1h8JTVb6xERJ\n StakMk4S/lZ6gH0fJtbBRoJl5/GPxQa44oS2Jq08JlE/v7/jBhz2n+Pvf2ru46eiiWK4\n v1ZF8KS924VD5CW3oBdZwb80FHoXikB8o34E2K/2P5pH5rpo0EsbCT1fE1/+jEA3opZr\n lLhQ==","X-Gm-Message-State":"AOJu0YxmrcfjsrVcEd43c6KakqIdUh1RAWIBLZoRbzzq7ElPe+nq6iTs\n zsq+3P6XQe1bibPCrwF47yN+UPpRcIMg7KY5JeXvttb7POPteGAymKyzW87EB1FbqkgoWfL1Gdy\n bWJIomgCi5L/UJhVCsu2MB54sDP2FQ2t45/RgAvhsnb0qW3Cr4H1uSPv8bBgyflyhsRtq+uaoYm\n ggaevHvzwdI2Unxw==","X-Gm-Gg":"AeBDieviVUFT1TY2OO36xaL1fZL5sXbap9YF2+9xajjOxSsZtBmXiyGYtxJTzyxByJw\n 9H5neNnn4tfMO28dTOJjXnIijl7id12HI079CRIIjQ/0MS/2DaIU82j/MekwIKOZtkWNn2AuKEg\n Z3yR0ciTUbOI8MsamtAU4UWyEhaM4Hu5UZv2Xxh5XKGqb20THvbBdJsM8deD4SvxHw8nVC2GrAS\n bKym1wXatlMIHSiTPcyuKMM0utIxPHnUbRWac77b9qrBQGAZp+kq8rtViFEuSGQnWlA2jVKU2og\n tvRcgl4FiYFc4AqTY+EOunqMj26IVimV/zsP8/40VwBwvNA81fgfDgZA4a+Zps+od/shvZPZyMr\n LB2Buqhx8mbxK8GBtpR0vZGkjbaXpXG5/RrBldMjGn9O2MQaHAAo+","X-Received":["by 2002:a05:600c:a10e:b0:485:3b9e:caa7 with SMTP id\n 5b1f17b1804b1-488fb773f38mr205262405e9.23.1776782531327;\n Tue, 21 Apr 2026 07:42:11 -0700 (PDT)","by 2002:a05:600c:a10e:b0:485:3b9e:caa7 with SMTP id\n 5b1f17b1804b1-488fb773f38mr205262125e9.23.1776782530865;\n Tue, 21 Apr 2026 07:42:10 -0700 (PDT)"],"From":"Tobias Heider <tobias.heider@canonical.com>","To":"kernel-team@lists.ubuntu.com","Subject":"[SRU][R][PATCH] UBUNTU: SAUCE: ASoC: qcom: x1e80100: limit speaker\n volumes","Date":"Tue, 21 Apr 2026 16:40:55 +0200","Message-ID":"<20260421144053.131431-3-tobias.heider@canonical.com>","X-Mailer":"git-send-email 2.51.0","MIME-Version":"1.0","X-BeenThere":"kernel-team@lists.ubuntu.com","X-Mailman-Version":"2.1.20","Precedence":"list","List-Id":"Kernel team discussions <kernel-team.lists.ubuntu.com>","List-Unsubscribe":"<https://lists.ubuntu.com/mailman/options/kernel-team>,\n <mailto:kernel-team-request@lists.ubuntu.com?subject=unsubscribe>","List-Archive":"<https://lists.ubuntu.com/archives/kernel-team>","List-Post":"<mailto:kernel-team@lists.ubuntu.com>","List-Help":"<mailto:kernel-team-request@lists.ubuntu.com?subject=help>","List-Subscribe":"<https://lists.ubuntu.com/mailman/listinfo/kernel-team>,\n <mailto:kernel-team-request@lists.ubuntu.com?subject=subscribe>","Content-Type":"text/plain; charset=\"utf-8\"","Content-Transfer-Encoding":"base64","Errors-To":"kernel-team-bounces@lists.ubuntu.com","Sender":"\"kernel-team\" <kernel-team-bounces@lists.ubuntu.com>"},"content":"BugLink: https://bugs.launchpad.net/bugs/2149808\n\nLimit the digital gain and PA volumes to a combined -3 dB in the machine\ndriver to reduce the risk of speaker damage until we have active speaker\nprotection in place (or higher safe levels have been established).\n\nBased on commit c481016bb4f8 (\"ASoC: qcom: sc8280xp: limit speaker\nvolumes\") which addressed the same issue on the sc8280x SoC with some\nminor changes as explained below.\n\nThe Digital Volume behaves identical to sc8280x, both use the same\nlpass-wsa-macro.\nFor PA x1e80100 machines use wsa884x amplifiers which expose a linear\nscale from -9 dB to 9 dB with a 1.5 dB step size giving us\n0 dB = -9 dB + 6 * 1.5 dB.\n\nOn x1e80100 there are two different speaker topologies we need to handle:\n  2-Speakers: SpkrLeft, Spkr Right\n  4-Speakers: WooferLeft, WooferRight, TweeterLeft, TweeterRight\n\nSigned-off-by: Tobias Heider <tobias.heider@canonical.com>\n---\n sound/soc/qcom/x1e80100.c | 17 +++++++++++++++++\n 1 file changed, 17 insertions(+)","diff":"diff --git a/sound/soc/qcom/x1e80100.c b/sound/soc/qcom/x1e80100.c\nindex a3f4785c4bbe..94ed3ade0daf 100644\n--- a/sound/soc/qcom/x1e80100.c\n+++ b/sound/soc/qcom/x1e80100.c\n@@ -27,10 +27,27 @@ static int x1e80100_snd_init(struct snd_soc_pcm_runtime *rtd)\n {\n \tstruct x1e80100_snd_data *data = snd_soc_card_get_drvdata(rtd->card);\n \tstruct snd_soc_dai *cpu_dai = snd_soc_rtd_to_cpu(rtd, 0);\n+\tstruct snd_soc_card *card = rtd->card;\n \tstruct snd_soc_jack *dp_jack = NULL;\n \tint dp_pcm_id = 0;\n \n \tswitch (cpu_dai->id) {\n+\tcase WSA_CODEC_DMA_RX_0:\n+\tcase WSA_CODEC_DMA_RX_1:\n+\t\t/*\n+\t\t * Set limit of -3 dB on Digital Volume and 0 dB on PA Volume\n+\t\t * to reduce the risk of speaker damage until we have active\n+\t\t * speaker protection in place.\n+\t\t */\n+\t\tsnd_soc_limit_volume(card, \"WSA_RX0 Digital Volume\", 81);\n+\t\tsnd_soc_limit_volume(card, \"WSA_RX1 Digital Volume\", 81);\n+\t\tsnd_soc_limit_volume(card, \"SpkrLeft PA Volume\", 6);\n+\t\tsnd_soc_limit_volume(card, \"SpkrRight PA Volume\", 6);\n+\t\tsnd_soc_limit_volume(card, \"WooferLeft PA Volume\", 6);\n+\t\tsnd_soc_limit_volume(card, \"TweeterLeft PA Volume\", 6);\n+\t\tsnd_soc_limit_volume(card, \"WooferRight PA Volume\", 6);\n+\t\tsnd_soc_limit_volume(card, \"TweeterRight PA Volume\", 6);\n+\t\tbreak;\n \tcase DISPLAY_PORT_RX_0:\n \t\tdp_pcm_id = 0;\n \t\tdp_jack = &data->dp_jack[dp_pcm_id];\n","prefixes":["SRU","R"]}