* [PATCH 0/2] ASoC: qcom: remove the ipq806x Storm audio machine driver and binding
@ 2026-07-21 18:12 Dmitry Baryshkov
2026-07-21 18:12 ` [PATCH 1/2] ASoC: qcom: remove ipq806x Storm machine driver Dmitry Baryshkov
2026-07-21 18:12 ` [PATCH 2/2] dt-bindings: sound: remove google,storm-audio binding Dmitry Baryshkov
0 siblings, 2 replies; 5+ messages in thread
From: Dmitry Baryshkov @ 2026-07-21 18:12 UTC (permalink / raw)
To: Srinivas Kandagatla, Liam Girdwood, Mark Brown, Jaroslav Kysela,
Takashi Iwai, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-kernel, linux-sound, linux-arm-msm, devicetree,
Christian Marangi
The Storm machine driver targets Google's IPQ806x-based Storm reference
board, wiring a MAX98357A DAC to the LPASS I2S bus. The board has never
had an upstream device tree, has no active users and has seen no
functional changes in years. Keeping the driver and its binding around
only adds maintenance burden for code that nobody exercises.
Drop the machine driver along with its Kconfig and Makefile entries, and
remove the now-orphaned google,storm-audio device tree binding.
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
Dmitry Baryshkov (2):
ASoC: qcom: remove ipq806x Storm machine driver
dt-bindings: sound: remove google,storm-audio binding
Documentation/devicetree/bindings/sound/storm.txt | 23 ----
sound/soc/qcom/Kconfig | 9 --
sound/soc/qcom/Makefile | 2 -
sound/soc/qcom/storm.c | 142 ----------------------
4 files changed, 176 deletions(-)
---
base-commit: b9810cd75b9fb56a3425d391cba3f608502bd474
change-id: 20260721-drop-sound-storm-7226df1bc850
Best regards,
--
With best wishes
Dmitry
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/2] ASoC: qcom: remove ipq806x Storm machine driver
2026-07-21 18:12 [PATCH 0/2] ASoC: qcom: remove the ipq806x Storm audio machine driver and binding Dmitry Baryshkov
@ 2026-07-21 18:12 ` Dmitry Baryshkov
2026-07-21 18:25 ` sashiko-bot
2026-07-21 18:12 ` [PATCH 2/2] dt-bindings: sound: remove google,storm-audio binding Dmitry Baryshkov
1 sibling, 1 reply; 5+ messages in thread
From: Dmitry Baryshkov @ 2026-07-21 18:12 UTC (permalink / raw)
To: Srinivas Kandagatla, Liam Girdwood, Mark Brown, Jaroslav Kysela,
Takashi Iwai, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-kernel, linux-sound, linux-arm-msm, devicetree,
Christian Marangi
The Storm board machine driver targets Google's IPQ806x-based Storm
reference board (a MAX98357A DAC wired to the LPASS I2S bus). This board
has no upstream device tree, no active users and has seen no functional
changes in years, so the driver is dead weight.
Remove the driver together with its Kconfig entry and Makefile rule.
Assisted-by: Claude:claude-opus-4-8
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
sound/soc/qcom/Kconfig | 9 ---
sound/soc/qcom/Makefile | 2 -
sound/soc/qcom/storm.c | 142 ------------------------------------------------
3 files changed, 153 deletions(-)
diff --git a/sound/soc/qcom/Kconfig b/sound/soc/qcom/Kconfig
index e6e24f3b9922..68e3146bf230 100644
--- a/sound/soc/qcom/Kconfig
+++ b/sound/soc/qcom/Kconfig
@@ -47,15 +47,6 @@ config SND_SOC_LPASS_SC7280
select SND_SOC_LPASS_HDMI
select SND_SOC_LPASS_CDC_DMA
-config SND_SOC_STORM
- tristate "ASoC I2S support for Storm boards"
- depends on GPIOLIB
- select SND_SOC_LPASS_IPQ806X
- select SND_SOC_MAX98357A
- help
- Say Y or M if you want add support for SoC audio on the
- Qualcomm Technologies IPQ806X-based Storm board.
-
config SND_SOC_APQ8016_SBC
tristate "SoC Audio support for APQ8016 SBC platforms"
select SND_SOC_LPASS_APQ8016
diff --git a/sound/soc/qcom/Makefile b/sound/soc/qcom/Makefile
index 985ce2ae286b..bcbb44d17303 100644
--- a/sound/soc/qcom/Makefile
+++ b/sound/soc/qcom/Makefile
@@ -19,7 +19,6 @@ obj-$(CONFIG_SND_SOC_LPASS_SC7180) += snd-soc-lpass-sc7180.o
obj-$(CONFIG_SND_SOC_LPASS_SC7280) += snd-soc-lpass-sc7280.o
# Machine
-snd-soc-storm-y := storm.o
snd-soc-apq8016-sbc-y := apq8016_sbc.o
snd-soc-apq8096-y := apq8096.o
snd-soc-sc7180-y := sc7180.o
@@ -32,7 +31,6 @@ snd-soc-qcom-sdw-y := sdw.o
snd-soc-x1e80100-y := x1e80100.o
snd-soc-qcom-offload-utils-objs := usb_offload_utils.o
-obj-$(CONFIG_SND_SOC_STORM) += snd-soc-storm.o
obj-$(CONFIG_SND_SOC_APQ8016_SBC) += snd-soc-apq8016-sbc.o
obj-$(CONFIG_SND_SOC_MSM8996) += snd-soc-apq8096.o
obj-$(CONFIG_SND_SOC_SC7180) += snd-soc-sc7180.o
diff --git a/sound/soc/qcom/storm.c b/sound/soc/qcom/storm.c
deleted file mode 100644
index 1e0eda8c24c4..000000000000
--- a/sound/soc/qcom/storm.c
+++ /dev/null
@@ -1,142 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0-only
-/*
- * Copyright (c) 2010-2011,2013-2015 The Linux Foundation. All rights reserved.
- *
- * storm.c -- ALSA SoC machine driver for QTi ipq806x-based Storm board
- */
-
-#include <linux/device.h>
-#include <linux/module.h>
-#include <linux/of.h>
-#include <linux/platform_device.h>
-#include <sound/pcm.h>
-#include <sound/pcm_params.h>
-#include <sound/soc.h>
-
-#define STORM_SYSCLK_MULT 4
-
-static int storm_ops_hw_params(struct snd_pcm_substream *substream,
- struct snd_pcm_hw_params *params)
-{
- struct snd_soc_pcm_runtime *soc_runtime = snd_soc_substream_to_rtd(substream);
- struct snd_soc_card *card = soc_runtime->card;
- snd_pcm_format_t format = params_format(params);
- unsigned int rate = params_rate(params);
- unsigned int sysclk_freq;
- int bitwidth, ret;
-
- bitwidth = snd_pcm_format_width(format);
- if (bitwidth < 0) {
- dev_err(card->dev, "invalid bit width given: %d\n", bitwidth);
- return bitwidth;
- }
-
- /*
- * as the CPU DAI is the I2S bus master and no system clock is needed by
- * the MAX98357a DAC, simply set the system clock to be a constant
- * multiple of the bit clock for the clock divider
- */
- sysclk_freq = rate * bitwidth * 2 * STORM_SYSCLK_MULT;
-
- ret = snd_soc_dai_set_sysclk(snd_soc_rtd_to_cpu(soc_runtime, 0), 0, sysclk_freq, 0);
- if (ret) {
- dev_err(card->dev, "error setting sysclk to %u: %d\n",
- sysclk_freq, ret);
- return ret;
- }
-
- return 0;
-}
-
-static const struct snd_soc_ops storm_soc_ops = {
- .hw_params = storm_ops_hw_params,
-};
-
-SND_SOC_DAILINK_DEFS(hifi,
- DAILINK_COMP_ARRAY(COMP_EMPTY()),
- DAILINK_COMP_ARRAY(COMP_CODEC(NULL, "HiFi")),
- DAILINK_COMP_ARRAY(COMP_EMPTY()));
-
-static struct snd_soc_dai_link storm_dai_link = {
- .name = "Primary",
- .stream_name = "Primary",
- .ops = &storm_soc_ops,
- SND_SOC_DAILINK_REG(hifi),
-};
-
-static int storm_parse_of(struct snd_soc_card *card)
-{
- struct snd_soc_dai_link *dai_link = card->dai_link;
- struct device_node *np = card->dev->of_node;
-
- dai_link->cpus->of_node = of_parse_phandle(np, "cpu", 0);
- if (!dai_link->cpus->of_node) {
- dev_err(card->dev, "error getting cpu phandle\n");
- return -EINVAL;
- }
- dai_link->platforms->of_node = dai_link->cpus->of_node;
-
- dai_link->codecs->of_node = of_parse_phandle(np, "codec", 0);
- if (!dai_link->codecs->of_node) {
- dev_err(card->dev, "error getting codec phandle\n");
- return -EINVAL;
- }
-
- return 0;
-}
-
-static int storm_platform_probe(struct platform_device *pdev)
-{
- struct snd_soc_card *card;
- int ret;
-
- card = devm_kzalloc(&pdev->dev, sizeof(*card), GFP_KERNEL);
- if (!card)
- return -ENOMEM;
-
- card->dev = &pdev->dev;
- card->owner = THIS_MODULE;
-
- ret = snd_soc_of_parse_card_name(card, "qcom,model");
- if (ret) {
- dev_err(&pdev->dev, "error parsing card name: %d\n", ret);
- return ret;
- }
-
- card->dai_link = &storm_dai_link;
- card->num_links = 1;
-
- ret = storm_parse_of(card);
- if (ret) {
- dev_err(&pdev->dev, "error resolving dai links: %d\n", ret);
- return ret;
- }
-
- ret = devm_snd_soc_register_card(&pdev->dev, card);
- if (ret)
- dev_err(&pdev->dev, "error registering soundcard: %d\n", ret);
-
- return ret;
-
-}
-
-#ifdef CONFIG_OF
-static const struct of_device_id storm_device_id[] = {
- { .compatible = "google,storm-audio" },
- {},
-};
-MODULE_DEVICE_TABLE(of, storm_device_id);
-#endif
-
-static struct platform_driver storm_platform_driver = {
- .driver = {
- .name = "storm-audio",
- .of_match_table =
- of_match_ptr(storm_device_id),
- },
- .probe = storm_platform_probe,
-};
-module_platform_driver(storm_platform_driver);
-
-MODULE_DESCRIPTION("QTi IPQ806x-based Storm Machine Driver");
-MODULE_LICENSE("GPL");
--
2.47.3
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH 2/2] dt-bindings: sound: remove google,storm-audio binding
2026-07-21 18:12 [PATCH 0/2] ASoC: qcom: remove the ipq806x Storm audio machine driver and binding Dmitry Baryshkov
2026-07-21 18:12 ` [PATCH 1/2] ASoC: qcom: remove ipq806x Storm machine driver Dmitry Baryshkov
@ 2026-07-21 18:12 ` Dmitry Baryshkov
2026-07-21 18:26 ` sashiko-bot
1 sibling, 1 reply; 5+ messages in thread
From: Dmitry Baryshkov @ 2026-07-21 18:12 UTC (permalink / raw)
To: Srinivas Kandagatla, Liam Girdwood, Mark Brown, Jaroslav Kysela,
Takashi Iwai, Rob Herring, Krzysztof Kozlowski, Conor Dooley
Cc: linux-kernel, linux-sound, linux-arm-msm, devicetree,
Christian Marangi
With the ipq806x Storm machine driver gone, the accompanying device tree
binding describing the "google,storm-audio" sound complex is no longer
used by any driver or device tree. Remove it.
Assisted-by: Claude:claude-opus-4-8
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
---
Documentation/devicetree/bindings/sound/storm.txt | 23 -----------------------
1 file changed, 23 deletions(-)
diff --git a/Documentation/devicetree/bindings/sound/storm.txt b/Documentation/devicetree/bindings/sound/storm.txt
deleted file mode 100644
index 062a4c185fa9..000000000000
--- a/Documentation/devicetree/bindings/sound/storm.txt
+++ /dev/null
@@ -1,23 +0,0 @@
-* Sound complex for Storm boards
-
-Models a soundcard for Storm boards with the Qualcomm Technologies IPQ806x SOC
-connected to a MAX98357A DAC via I2S.
-
-Required properties:
-
-- compatible : "google,storm-audio"
-- cpu : Phandle of the CPU DAI
-- codec : Phandle of the codec DAI
-
-Optional properties:
-
-- qcom,model : The user-visible name of this sound card.
-
-Example:
-
-sound {
- compatible = "google,storm-audio";
- qcom,model = "ipq806x-storm";
- cpu = <&lpass_cpu>;
- codec = <&max98357a>;
-};
--
2.47.3
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] ASoC: qcom: remove ipq806x Storm machine driver
2026-07-21 18:12 ` [PATCH 1/2] ASoC: qcom: remove ipq806x Storm machine driver Dmitry Baryshkov
@ 2026-07-21 18:25 ` sashiko-bot
0 siblings, 0 replies; 5+ messages in thread
From: sashiko-bot @ 2026-07-21 18:25 UTC (permalink / raw)
To: Dmitry Baryshkov; +Cc: conor+dt, devicetree, robh
Thank you for your contribution! Sashiko AI review found 2 potential issue(s) to consider:
- [Medium] Removing SND_SOC_STORM leaves SND_SOC_LPASS_IPQ806X without any selectors, rendering the IPQ806X LPASS CPU driver completely unbuildable and unreachable.
- [Low] The device tree binding documentation for the removed google,storm-audio driver was left behind.
--
--- Patch [1]: [PATCH 1/2] ASoC: qcom: remove ipq806x Storm machine driver ---
commit 76b009b0b947fd2197dab876d7f10fb5105c7935
Author: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
ASoC: qcom: remove ipq806x Storm machine driver
The Storm board machine driver targets Google's IPQ806x-based Storm
reference board. This driver is removed together with its Kconfig
entry and Makefile rule since it has no upstream device tree and no
active users.
> diff --git a/sound/soc/qcom/Kconfig b/sound/soc/qcom/Kconfig
> index e6e24f3b99222..68e3146bf2307 100644
> --- a/sound/soc/qcom/Kconfig
> +++ b/sound/soc/qcom/Kconfig
> @@ -47,15 +47,6 @@ config SND_SOC_LPASS_SC7280
> select SND_SOC_LPASS_HDMI
> select SND_SOC_LPASS_CDC_DMA
>
> -config SND_SOC_STORM
> - tristate "ASoC I2S support for Storm boards"
> - depends on GPIOLIB
> - select SND_SOC_LPASS_IPQ806X
[Severity: Medium]
Does removing SND_SOC_STORM leave SND_SOC_LPASS_IPQ806X without any selectors?
SND_SOC_LPASS_IPQ806X lacks a prompt in Kconfig, so without any selectors it
cannot be enabled manually or by COMPILE_TEST. This leaves the IPQ806X LPASS
CPU driver (sound/soc/qcom/lpass-ipq806x.c) and its Makefile entry as
unbuildable dead code.
Should SND_SOC_LPASS_IPQ806X and lpass-ipq806x.c be cleaned up in this patch as
well?
[ ... ]
> diff --git a/sound/soc/qcom/storm.c b/sound/soc/qcom/storm.c
> deleted file mode 100644
> index 1e0eda8c24c4e..0000000000000
> --- a/sound/soc/qcom/storm.c
> +++ /dev/null
[ ... ]
> -#ifdef CONFIG_OF
> -static const struct of_device_id storm_device_id[] = {
> - { .compatible = "google,storm-audio" },
> - {},
> -};
[Severity: Low]
Does the device tree binding documentation for "google,storm-audio" still exist
in the tree?
Removing this compatible string might leave behind obsolete binding
documentation, such as Documentation/devicetree/bindings/sound/storm.txt.
Should the corresponding binding file be removed alongside the driver?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260721-drop-sound-storm-v1-0-23ae4a689ffe@oss.qualcomm.com?part=1
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 2/2] dt-bindings: sound: remove google,storm-audio binding
2026-07-21 18:12 ` [PATCH 2/2] dt-bindings: sound: remove google,storm-audio binding Dmitry Baryshkov
@ 2026-07-21 18:26 ` sashiko-bot
0 siblings, 0 replies; 5+ messages in thread
From: sashiko-bot @ 2026-07-21 18:26 UTC (permalink / raw)
To: Dmitry Baryshkov; +Cc: robh, conor+dt, devicetree
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [Medium] Incomplete cleanup leaves the IPQ806x LPASS driver as unreachable dead code.
--
--- Patch [2]: [PATCH 2/2] dt-bindings: sound: remove google,storm-audio binding ---
commit 4f1f4fbba8c2f852f688a4151731bed0fe4a61f1
Author: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
dt-bindings: sound: remove google,storm-audio binding
This commit removes the device tree binding for the "google,storm-audio"
sound complex. The removal is done because the accompanying ipq806x Storm
machine driver is no longer present.
> With the ipq806x Storm machine driver gone, the accompanying device tree
> binding describing the "google,storm-audio" sound complex is no longer
> used by any driver or device tree. Remove it.
[Severity: Medium]
Since the ipq806x Storm machine driver is gone, does this leave the
IPQ806x LPASS driver as unreachable dead code?
Looking at sound/soc/qcom/Kconfig, SND_SOC_LPASS_IPQ806X is a hidden
Kconfig symbol:
config SND_SOC_LPASS_IPQ806X
tristate
select SND_SOC_LPASS_CPU
select SND_SOC_LPASS_PLATFORM
If the machine driver was the only config that selected it, this symbol can
no longer be enabled. This would mean the compilation target in
sound/soc/qcom/Makefile can no longer be reached:
obj-$(CONFIG_SND_SOC_LPASS_IPQ806X) += snd-soc-lpass-ipq806x.o
Should this incomplete cleanup be addressed by removing the orphaned config
and driver file as well?
> diff --git a/Documentation/devicetree/bindings/sound/storm.txt b/Documentation/devicetree/bindings/sound/storm.txt
> deleted file mode 100644
> index 062a4c185fa9d..0000000000000
> --- a/Documentation/devicetree/bindings/sound/storm.txt
> +++ /dev/null
[ ... ]
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260721-drop-sound-storm-v1-0-23ae4a689ffe@oss.qualcomm.com?part=2
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-07-21 18:26 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-21 18:12 [PATCH 0/2] ASoC: qcom: remove the ipq806x Storm audio machine driver and binding Dmitry Baryshkov
2026-07-21 18:12 ` [PATCH 1/2] ASoC: qcom: remove ipq806x Storm machine driver Dmitry Baryshkov
2026-07-21 18:25 ` sashiko-bot
2026-07-21 18:12 ` [PATCH 2/2] dt-bindings: sound: remove google,storm-audio binding Dmitry Baryshkov
2026-07-21 18:26 ` sashiko-bot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox