mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-20 06:08:08 +00:00
4b82a20e77
Pick commits adding drivers for audio engine found in MT7986 from Linux 6.6 as well as follow-up fixes from Linux 6.7. Signed-off-by: Maso Huang <maso.huang@mediatek.com> Signed-off-by: Daniel Golle <daniel@makrotopia.org>
106 lines
3.3 KiB
Diff
106 lines
3.3 KiB
Diff
From 98b8fb2cb4fcab1903d0baf611bf0c3f822a08dc Mon Sep 17 00:00:00 2001
|
|
From: Maso Huang <maso.huang@mediatek.com>
|
|
Date: Tue, 24 Oct 2023 11:50:18 +0800
|
|
Subject: [PATCH 8/9] ASoC: mediatek: mt7986: remove the mt7986_wm8960_priv
|
|
structure
|
|
|
|
Remove the mt7986_wm8960_priv structure.
|
|
|
|
Signed-off-by: Maso Huang <maso.huang@mediatek.com>
|
|
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
|
|
Link: https://lore.kernel.org/r/20231024035019.11732-3-maso.huang@mediatek.com
|
|
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
---
|
|
sound/soc/mediatek/mt7986/mt7986-wm8960.c | 33 +++++++++--------------
|
|
1 file changed, 12 insertions(+), 21 deletions(-)
|
|
|
|
--- a/sound/soc/mediatek/mt7986/mt7986-wm8960.c
|
|
+++ b/sound/soc/mediatek/mt7986/mt7986-wm8960.c
|
|
@@ -12,11 +12,6 @@
|
|
|
|
#include "mt7986-afe-common.h"
|
|
|
|
-struct mt7986_wm8960_priv {
|
|
- struct device_node *platform_node;
|
|
- struct device_node *codec_node;
|
|
-};
|
|
-
|
|
static const struct snd_soc_dapm_widget mt7986_wm8960_widgets[] = {
|
|
SND_SOC_DAPM_HP("Headphone", NULL),
|
|
SND_SOC_DAPM_MIC("AMIC", NULL),
|
|
@@ -92,20 +87,18 @@ static int mt7986_wm8960_machine_probe(s
|
|
struct snd_soc_card *card = &mt7986_wm8960_card;
|
|
struct snd_soc_dai_link *dai_link;
|
|
struct device_node *platform, *codec;
|
|
- struct mt7986_wm8960_priv *priv;
|
|
+ struct device_node *platform_dai_node, *codec_dai_node;
|
|
int ret, i;
|
|
|
|
- priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL);
|
|
- if (!priv)
|
|
- return -ENOMEM;
|
|
+ card->dev = &pdev->dev;
|
|
|
|
platform = of_get_child_by_name(pdev->dev.of_node, "platform");
|
|
|
|
if (platform) {
|
|
- priv->platform_node = of_parse_phandle(platform, "sound-dai", 0);
|
|
+ platform_dai_node = of_parse_phandle(platform, "sound-dai", 0);
|
|
of_node_put(platform);
|
|
|
|
- if (!priv->platform_node) {
|
|
+ if (!platform_dai_node) {
|
|
dev_err(&pdev->dev, "Failed to parse platform/sound-dai property\n");
|
|
return -EINVAL;
|
|
}
|
|
@@ -117,24 +110,22 @@ static int mt7986_wm8960_machine_probe(s
|
|
for_each_card_prelinks(card, i, dai_link) {
|
|
if (dai_link->platforms->name)
|
|
continue;
|
|
- dai_link->platforms->of_node = priv->platform_node;
|
|
+ dai_link->platforms->of_node = platform_dai_node;
|
|
}
|
|
|
|
- card->dev = &pdev->dev;
|
|
-
|
|
codec = of_get_child_by_name(pdev->dev.of_node, "codec");
|
|
|
|
if (codec) {
|
|
- priv->codec_node = of_parse_phandle(codec, "sound-dai", 0);
|
|
+ codec_dai_node = of_parse_phandle(codec, "sound-dai", 0);
|
|
of_node_put(codec);
|
|
|
|
- if (!priv->codec_node) {
|
|
- of_node_put(priv->platform_node);
|
|
+ if (!codec_dai_node) {
|
|
+ of_node_put(platform_dai_node);
|
|
dev_err(&pdev->dev, "Failed to parse codec/sound-dai property\n");
|
|
return -EINVAL;
|
|
}
|
|
} else {
|
|
- of_node_put(priv->platform_node);
|
|
+ of_node_put(platform_dai_node);
|
|
dev_err(&pdev->dev, "Property 'codec' missing or invalid\n");
|
|
return -EINVAL;
|
|
}
|
|
@@ -142,7 +133,7 @@ static int mt7986_wm8960_machine_probe(s
|
|
for_each_card_prelinks(card, i, dai_link) {
|
|
if (dai_link->codecs->name)
|
|
continue;
|
|
- dai_link->codecs->of_node = priv->codec_node;
|
|
+ dai_link->codecs->of_node = codec_dai_node;
|
|
}
|
|
|
|
ret = snd_soc_of_parse_audio_routing(card, "audio-routing");
|
|
@@ -158,8 +149,8 @@ static int mt7986_wm8960_machine_probe(s
|
|
}
|
|
|
|
err_of_node_put:
|
|
- of_node_put(priv->codec_node);
|
|
- of_node_put(priv->platform_node);
|
|
+ of_node_put(platform_dai_node);
|
|
+ of_node_put(codec_dai_node);
|
|
return ret;
|
|
}
|
|
|