{"id":2225981,"url":"http://patchwork.ozlabs.org/api/1.1/patches/2225981/?format=json","web_url":"http://patchwork.ozlabs.org/project/ubuntu-kernel/patch/20260422001715.294759-3-tobias.heider@canonical.com/","project":{"id":15,"url":"http://patchwork.ozlabs.org/api/1.1/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},"msgid":"<20260422001715.294759-3-tobias.heider@canonical.com>","date":"2026-04-22T00:17:17","name":"[SRU,R,v2] ASoC: qcom: x1e80100: limit speaker volumes","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"06c3324d261fa86115656253544467ee3d22e07f","submitter":{"id":90158,"url":"http://patchwork.ozlabs.org/api/1.1/people/90158/?format=json","name":"Tobias Heider","email":"tobias.heider@canonical.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/ubuntu-kernel/patch/20260422001715.294759-3-tobias.heider@canonical.com/mbox/","series":[{"id":500905,"url":"http://patchwork.ozlabs.org/api/1.1/series/500905/?format=json","web_url":"http://patchwork.ozlabs.org/project/ubuntu-kernel/list/?series=500905","date":"2026-04-22T00:17:17","name":"[SRU,R,v2] ASoC: qcom: x1e80100: limit speaker volumes","version":2,"mbox":"http://patchwork.ozlabs.org/series/500905/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2225981/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2225981/checks/","tags":{},"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=pJJEb7Tx;\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 4g0fyj617Sz1yD5\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 10:21:01 +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 1wFLKg-0003KD-LN; Wed, 22 Apr 2026 00:20:46 +0000","from smtp-relay-internal-1.internal ([10.131.114.114]\n helo=smtp-relay-internal-1.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 1wFLKf-0003K6-H0\n for kernel-team@lists.ubuntu.com; Wed, 22 Apr 2026 00:20:45 +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-1.canonical.com (Postfix) with ESMTPS id 621373F61E\n for <kernel-team@lists.ubuntu.com>; Wed, 22 Apr 2026 00:20:45 +0000 (UTC)","by mail-wm1-f71.google.com with SMTP id\n 5b1f17b1804b1-488c0120047so26917735e9.0\n for <kernel-team@lists.ubuntu.com>; Tue, 21 Apr 2026 17:20:45 -0700 (PDT)","from shodan.fritz.box ([2001:a61:3426:4001:8efc:6f26:5d61:2375])\n by smtp.gmail.com with ESMTPSA id\n 5b1f17b1804b1-4891b46cffasm221476415e9.13.2026.04.21.17.20.43\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Tue, 21 Apr 2026 17:20:43 -0700 (PDT)"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=canonical.com;\n s=20251003; t=1776817245;\n bh=K30gaSnKP5oJ/i+f0SBpj0eV67sSOCN9yyNt/i2ivqk=;\n h=From:To:Cc:Subject:Date:Message-ID:MIME-Version;\n b=pJJEb7TxaBcBgO/SxhTuM0aAeKXw0IATxLHstNL5CxM6mPrWAUDw7sydLj/ZEWpgQ\n /oyTJTx9o5FlHpLitYmQNgfZtFJYciKiGg4zXZhohxFAuq6ebyvdpZ9Pa9Wz4K8UAH\n t6bLm7VNAcv7JGRbbt7XmS3ni2j8RcwAc7dL7Rtro74fpfwEXB7y8gVqs35Yxq8OBu\n 84u6S0qG86coLHlKyyF7i+X4gZ9+WXEGJIV6MKh2NaA3LKe5P1ZWaGOuQuxNFv7UHN\n BR55RL7jPbn/0fPKSGp2jqu6B1l785s3jvnv7H5UY2N/yEgG5UPVWwz3mF2fVsFq0G\n 9uz+w+TRMnjOG6an32OZsIQGFtsCTi+qGho7n/3hgC6roSiN82qtg7bhFjI5jigqJn\n OHElRD0m+gh37dCB3alRhl/GTrbVVUy8qJIprw/0fp+NhGJN/eRzk1HFp40S8tbEEE\n Cca8mwMW1G0UJFNFFgkOxRblkqtGZfkdSfCTuKPnq6ByqEUHqSW4vJYFCai1aZSOVy\n Bd2tcOm4j9ifENr/OCGX4ZuAXApTizKOmMuypUa5Cl6wVKR2xz9OyIc8FyqGkPOtP/\n wHqrsPRRDkxErnackr+TCaxDBB94FanGQGnse9fdXhaFBwu9kl/GzcBOPmNdVlyAVF\n qto9EcaUztlqYaWfUmdPZ99w=","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1776817245; x=1777422045;\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=K30gaSnKP5oJ/i+f0SBpj0eV67sSOCN9yyNt/i2ivqk=;\n b=X7OudrH2WpmVW5NlsBxbpI4glvTj8lkoXCvRouneADyfC/lX7fCFIDN9P9a6HYoM6W\n Yg8QvxkiDuM6X8Dy+lOZaE0zCb+GTV5Gjk5sMOCwvs7o75us5Nqc3mbItffVt9RedWzA\n 6hUazgxNT7TJLVvDZoZNVZFeqDMIm5xzZgJjU2SdwiNRJ+/S8Kg6gsO7jYVK6GknHEaE\n XWA96St69kRm4a+5EqQuQRYgjUNATgKaSvtcH8A2wKw8GYESmC28JP68IjHgO9+A/spf\n YzVzSAJ36RhJ20OTxysxREmq4J/1q5xSMcRAckzZO4GTYO1GWjnuMyZb3ysT+dC2yw5k\n iWYw==","X-Gm-Message-State":"AOJu0YyL6X4JigmfiuozQbqXDz5W+9ztRszaj+87YehISso0N+/GpKfJ\n jeNOz/6dBdfC+iPxVqctR55Klx7cRLYuie3D3xsMgK1R9TMjI90lQRPoJdDzKyxdftFHcipbsH6\n FyANitfyRlqEGIwpxpq9/mR3abkopJ+7xZnjg3l+dtui4HVfdN5xwyLw7/EKffVXRCGbtlBSWwu\n GUqm0ca7ooGuUBIg==","X-Gm-Gg":"AeBDietUJ2Apb+uthh4IXzuhJ9i8uHnnn0QRseao3v4qCkrNlc02K2PPrZ8VQm39VkJ\n dTsZEnYgKFdrVEAqqXPL3JzpM7AjwXITi7jemjKKpHehYPrZj3qN45GJ8zgbtwVqoQ3475QOb36\n mOJ6ifBzlH8Lj13Mit5DBiowLbeTGFN87Cn2B8OtijeiIsp48cw+sS8o++X10S1nMdhQln1Oolk\n oz/utb/NlAmh7I/G7kjf78YyxeayP9MZdtt1tiiWPdT6kjjGBOurconRXq6ons8OJz88mnb8Yzp\n JCo4JijbH9vAmZ0rj5uyLuGlj8BjUid7P4Zo4Dg/yJV91icKrT0BkXCmvYYOTf4ECW5Kv+mdQWW\n rNR/XMD5BQT1ci3wkjGDyXoSN7jxk/7h/fiANK0z1ihDxovOxLGfg","X-Received":["by 2002:a05:600c:3006:b0:487:1108:48b8 with SMTP id\n 5b1f17b1804b1-488fb739f86mr157567105e9.2.1776817244888;\n Tue, 21 Apr 2026 17:20:44 -0700 (PDT)","by 2002:a05:600c:3006:b0:487:1108:48b8 with SMTP id\n 5b1f17b1804b1-488fb739f86mr157566985e9.2.1776817244434;\n Tue, 21 Apr 2026 17:20:44 -0700 (PDT)"],"From":"Tobias Heider <tobias.heider@canonical.com>","To":"kernel-team@lists.ubuntu.com","Subject":"[SRU][R][PATCH v2] ASoC: qcom: x1e80100: limit speaker volumes","Date":"Wed, 22 Apr 2026 02:17:17 +0200","Message-ID":"<20260422001715.294759-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":"Limit 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\n- Changed in v2:\n  Fixed names of Digital Volume Channels. On X1 they are prefixed with\n  WSA and WSA2 (for 4 speaker configurations). Based on LKML feedback.\n\n sound/soc/qcom/x1e80100.c | 19 +++++++++++++++++++\n 1 file changed, 19 insertions(+)","diff":"diff --git a/sound/soc/qcom/x1e80100.c b/sound/soc/qcom/x1e80100.c\nindex a3f4785c4bbe..c81df41ace88 100644\n--- a/sound/soc/qcom/x1e80100.c\n+++ b/sound/soc/qcom/x1e80100.c\n@@ -27,10 +27,29 @@ 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 WSA_RX0 Digital Volume\", 81);\n+\t\tsnd_soc_limit_volume(card, \"WSA WSA_RX1 Digital Volume\", 81);\n+\t\tsnd_soc_limit_volume(card, \"WSA2 WSA_RX0 Digital Volume\", 81);\n+\t\tsnd_soc_limit_volume(card, \"WSA2 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","v2"]}