linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [v9 0/4] ASoC: mediatek: mt8192: support rt1015p_rt5682s
@ 2022-04-06 10:05 Jiaxin Yu
  2022-04-06 10:05 ` [v9 1/4] ASoC: dt-bindings: mt8192-mt6359: add new compatible and new properties Jiaxin Yu
                   ` (4 more replies)
  0 siblings, 5 replies; 12+ messages in thread
From: Jiaxin Yu @ 2022-04-06 10:05 UTC (permalink / raw)
  To: broonie, robh+dt, nfraprado, tzungbi
  Cc: angelogioacchino.delregno, aaronyu, matthias.bgg, trevor.wu,
	linmq006, alsa-devel, devicetree, linux-arm-kernel,
	linux-mediatek, linux-kernel,
	Project_Global_Chrome_Upstream_Group, Jiaxin Yu

The series reuses mt8192-mt6359-rt1015-rt5682.c for supporting machine
driver with rt1015p speaker amplifier and rt5682s headset codec.

Changes from v8:
  - fix typos.

Changes from v7:
  - "mediatek,hdmi-codec" is an optional property, the code and the
    binding document should match.

Changes from v6:
  - "speaker-codec" changes to "speaker-codecs" due to there may be two
    speaker codec.

Changes from v5:
  - "mediatek,headset-codec" and "mediatek,speaker-codec" drop prefix
    and move to properties from patternProperties.

Changes form v4:
  - split a large patch into three small patches for easy reviewing
  - correct coding style

Changes from v3:
  - fix build error: too many arguments for format
    [-Werror-format-extra-args]

Changes from v2:
  - fix build warnings such as "data argument not used by format string"

Changes from v1:
  - uses the snd_soc_of_get_dai_link_codecs to complete the
  configuration of dai_link's codecs
  - uses definitions to simplifies card name and compatible name

Jiaxin Yu (4):
  ASoC: dt-bindings: mt8192-mt6359: add new compatible and new
    properties
  ASoC: mediatek: mt8192: refactor for I2S3 DAI link of speaker
  ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset
  ASoC: mediatek: mt8192: support rt1015p_rt5682s

 .../sound/mt8192-mt6359-rt1015-rt5682.yaml    |  32 +++
 sound/soc/mediatek/Kconfig                    |   1 +
 .../mt8192/mt8192-mt6359-rt1015-rt5682.c      | 199 +++++++++++-------
 3 files changed, 153 insertions(+), 79 deletions(-)

-- 
2.25.1


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [v9 1/4] ASoC: dt-bindings: mt8192-mt6359: add new compatible and new properties
  2022-04-06 10:05 [v9 0/4] ASoC: mediatek: mt8192: support rt1015p_rt5682s Jiaxin Yu
@ 2022-04-06 10:05 ` Jiaxin Yu
  2022-04-07 22:10   ` Nícolas F. R. A. Prado
  2022-04-06 10:05 ` [v9 2/4] ASoC: mediatek: mt8192: refactor for I2S3 DAI link of speaker Jiaxin Yu
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 12+ messages in thread
From: Jiaxin Yu @ 2022-04-06 10:05 UTC (permalink / raw)
  To: broonie, robh+dt, nfraprado, tzungbi
  Cc: angelogioacchino.delregno, aaronyu, matthias.bgg, trevor.wu,
	linmq006, alsa-devel, devicetree, linux-arm-kernel,
	linux-mediatek, linux-kernel,
	Project_Global_Chrome_Upstream_Group, Jiaxin Yu, Rob Herring

1. Adds new compatible string "mt8192_mt6359_rt1015p_rt5682s" for machines
with rt1015p and rt5682s.
2. Adds new property "headset-codec" for getting headset codec.
3. Adds new property "speaker-codecs" for getting speaker codecs.

Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com>
Reviewed-by: Rob Herring <robh@kernel.org>
---
 .../sound/mt8192-mt6359-rt1015-rt5682.yaml    | 32 +++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml
index 5a5b765b859a..4fa179909c62 100644
--- a/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml
+++ b/Documentation/devicetree/bindings/sound/mt8192-mt6359-rt1015-rt5682.yaml
@@ -18,6 +18,7 @@ properties:
     enum:
       - mediatek,mt8192_mt6359_rt1015_rt5682
       - mediatek,mt8192_mt6359_rt1015p_rt5682
+      - mediatek,mt8192_mt6359_rt1015p_rt5682s
 
   mediatek,platform:
     $ref: "/schemas/types.yaml#/definitions/phandle"
@@ -27,11 +28,33 @@ properties:
     $ref: "/schemas/types.yaml#/definitions/phandle"
     description: The phandle of HDMI codec.
 
+  headset-codec:
+    type: object
+    properties:
+      sound-dai:
+        $ref: /schemas/types.yaml#/definitions/phandle
+    required:
+      - sound-dai
+
+  speaker-codecs:
+    type: object
+    properties:
+      sound-dai:
+        minItems: 1
+        maxItems: 2
+        items:
+          maxItems: 1
+        $ref: /schemas/types.yaml#/definitions/phandle-array
+    required:
+      - sound-dai
+
 additionalProperties: false
 
 required:
   - compatible
   - mediatek,platform
+  - headset-codec
+  - speaker-codecs
 
 examples:
   - |
@@ -44,6 +67,15 @@ examples:
                         "aud_clk_mosi_on";
         pinctrl-0 = <&aud_clk_mosi_off>;
         pinctrl-1 = <&aud_clk_mosi_on>;
+
+        headset-codec {
+            sound-dai = <&rt5682>;
+        };
+
+        speaker-codecs {
+            sound-dai = <&rt1015_l>,
+                        <&rt1015_r>;
+        };
     };
 
 ...
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [v9 2/4] ASoC: mediatek: mt8192: refactor for I2S3 DAI link of speaker
  2022-04-06 10:05 [v9 0/4] ASoC: mediatek: mt8192: support rt1015p_rt5682s Jiaxin Yu
  2022-04-06 10:05 ` [v9 1/4] ASoC: dt-bindings: mt8192-mt6359: add new compatible and new properties Jiaxin Yu
@ 2022-04-06 10:05 ` Jiaxin Yu
  2022-04-07  0:56   ` Tzung-Bi Shih
  2022-04-07 21:24   ` Nícolas F. R. A. Prado
  2022-04-06 10:05 ` [v9 3/4] ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset Jiaxin Yu
                   ` (2 subsequent siblings)
  4 siblings, 2 replies; 12+ messages in thread
From: Jiaxin Yu @ 2022-04-06 10:05 UTC (permalink / raw)
  To: broonie, robh+dt, nfraprado, tzungbi
  Cc: angelogioacchino.delregno, aaronyu, matthias.bgg, trevor.wu,
	linmq006, alsa-devel, devicetree, linux-arm-kernel,
	linux-mediatek, linux-kernel,
	Project_Global_Chrome_Upstream_Group, Jiaxin Yu

MT8192 platform will use rt1015 or rt1015p codec, so through the
snd_soc_of_get_dai_link_codecs() to complete the configuration
of dai_link's codecs.

Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com>
---
 .../mt8192/mt8192-mt6359-rt1015-rt5682.c      | 108 +++++++++---------
 1 file changed, 57 insertions(+), 51 deletions(-)

diff --git a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c
index ee91569c0911..15711448d259 100644
--- a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c
+++ b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c
@@ -604,17 +604,9 @@ SND_SOC_DAILINK_DEFS(i2s2,
 		     DAILINK_COMP_ARRAY(COMP_DUMMY()),
 		     DAILINK_COMP_ARRAY(COMP_EMPTY()));
 
-SND_SOC_DAILINK_DEFS(i2s3_rt1015,
+SND_SOC_DAILINK_DEFS(i2s3,
 		     DAILINK_COMP_ARRAY(COMP_CPU("I2S3")),
-		     DAILINK_COMP_ARRAY(COMP_CODEC(RT1015_DEV0_NAME,
-						   RT1015_CODEC_DAI),
-					COMP_CODEC(RT1015_DEV1_NAME,
-						   RT1015_CODEC_DAI)),
-		     DAILINK_COMP_ARRAY(COMP_EMPTY()));
-
-SND_SOC_DAILINK_DEFS(i2s3_rt1015p,
-		     DAILINK_COMP_ARRAY(COMP_CPU("I2S3")),
-		     DAILINK_COMP_ARRAY(COMP_CODEC("rt1015p", "HiFi")),
+		     DAILINK_COMP_ARRAY(COMP_EMPTY()),
 		     DAILINK_COMP_ARRAY(COMP_EMPTY()));
 
 SND_SOC_DAILINK_DEFS(i2s5,
@@ -929,6 +921,7 @@ static struct snd_soc_dai_link mt8192_mt6359_dai_links[] = {
 		.dpcm_playback = 1,
 		.ignore_suspend = 1,
 		.be_hw_params_fixup = mt8192_i2s_hw_params_fixup,
+		SND_SOC_DAILINK_REG(i2s3),
 	},
 	{
 		.name = "I2S5",
@@ -1100,55 +1093,61 @@ static struct snd_soc_card mt8192_mt6359_rt1015p_rt5682_card = {
 	.num_dapm_routes = ARRAY_SIZE(mt8192_mt6359_rt1015p_rt5682_routes),
 };
 
+static int mt8192_mt6359_card_set_be_link(struct snd_soc_card *card,
+					  struct snd_soc_dai_link *link,
+					  struct device_node *node,
+					  char *link_name)
+{
+	int ret;
+
+	if (node && strcmp(link->name, link_name) == 0) {
+		ret = snd_soc_of_get_dai_link_codecs(card->dev, node, link);
+		if (ret < 0) {
+			dev_err_probe(card->dev, ret, "get dai link codecs fail\n");
+			return ret;
+		}
+	}
+
+	return 0;
+}
+
 static int mt8192_mt6359_dev_probe(struct platform_device *pdev)
 {
 	struct snd_soc_card *card;
-	struct device_node *platform_node, *hdmi_codec;
+	struct device_node *platform_node, *hdmi_codec, *speaker_codec;
 	int ret, i;
 	struct snd_soc_dai_link *dai_link;
 	struct mt8192_mt6359_priv *priv;
 
-	platform_node = of_parse_phandle(pdev->dev.of_node,
-					 "mediatek,platform", 0);
-	if (!platform_node) {
-		dev_err(&pdev->dev, "Property 'platform' missing or invalid\n");
+	card = (struct snd_soc_card *)of_device_get_match_data(&pdev->dev);
+	if (!card)
 		return -EINVAL;
-	}
+	card->dev = &pdev->dev;
 
-	card = (struct snd_soc_card *)of_device_get_match_data(&pdev->dev);
-	if (!card) {
+	hdmi_codec = of_parse_phandle(pdev->dev.of_node, "mediatek,hdmi-codec", 0);
+	if (!hdmi_codec)
+		dev_dbg(&pdev->dev, "The machine has no hdmi-codec\n");
+
+	platform_node = of_parse_phandle(pdev->dev.of_node, "mediatek,platform", 0);
+	if (!platform_node) {
 		ret = -EINVAL;
-		goto put_platform_node;
+		dev_err_probe(&pdev->dev, ret, "Property 'platform' missing or invalid\n");
+		goto err_platform_node;
 	}
-	card->dev = &pdev->dev;
 
-	hdmi_codec = of_parse_phandle(pdev->dev.of_node,
-				      "mediatek,hdmi-codec", 0);
+	speaker_codec = of_get_child_by_name(pdev->dev.of_node, "speaker-codecs");
+	if (!speaker_codec) {
+		ret = -EINVAL;
+		dev_err_probe(&pdev->dev, ret, "Property 'speaker-codecs' missing or invalid\n");
+		goto err_speaker_codec;
+	}
 
 	for_each_card_prelinks(card, i, dai_link) {
-		if (strcmp(dai_link->name, "I2S3") == 0) {
-			if (card == &mt8192_mt6359_rt1015_rt5682_card) {
-				dai_link->ops = &mt8192_rt1015_i2s_ops;
-				dai_link->cpus = i2s3_rt1015_cpus;
-				dai_link->num_cpus =
-					ARRAY_SIZE(i2s3_rt1015_cpus);
-				dai_link->codecs = i2s3_rt1015_codecs;
-				dai_link->num_codecs =
-					ARRAY_SIZE(i2s3_rt1015_codecs);
-				dai_link->platforms = i2s3_rt1015_platforms;
-				dai_link->num_platforms =
-					ARRAY_SIZE(i2s3_rt1015_platforms);
-			} else if (card == &mt8192_mt6359_rt1015p_rt5682_card) {
-				dai_link->cpus = i2s3_rt1015p_cpus;
-				dai_link->num_cpus =
-					ARRAY_SIZE(i2s3_rt1015p_cpus);
-				dai_link->codecs = i2s3_rt1015p_codecs;
-				dai_link->num_codecs =
-					ARRAY_SIZE(i2s3_rt1015p_codecs);
-				dai_link->platforms = i2s3_rt1015p_platforms;
-				dai_link->num_platforms =
-					ARRAY_SIZE(i2s3_rt1015p_platforms);
-			}
+		ret = mt8192_mt6359_card_set_be_link(card, dai_link, speaker_codec, "I2S3");
+		if (ret) {
+			dev_err_probe(&pdev->dev, ret, "%s set speaker_codec fail\n",
+				      dai_link->name);
+			goto err_probe;
 		}
 
 		if (hdmi_codec && strcmp(dai_link->name, "TDM") == 0) {
@@ -1156,6 +1155,9 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev)
 			dai_link->ignore = 0;
 		}
 
+		if (strcmp(dai_link->codecs[0].dai_name, RT1015_CODEC_DAI) == 0)
+			dai_link->ops = &mt8192_rt1015_i2s_ops;
+
 		if (!dai_link->platforms->name)
 			dai_link->platforms->of_node = platform_node;
 	}
@@ -1163,22 +1165,26 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev)
 	priv = devm_kzalloc(&pdev->dev, sizeof(*priv), GFP_KERNEL);
 	if (!priv) {
 		ret = -ENOMEM;
-		goto put_hdmi_codec;
+		goto err_probe;
 	}
 	snd_soc_card_set_drvdata(card, priv);
 
 	ret = mt8192_afe_gpio_init(&pdev->dev);
 	if (ret) {
-		dev_err(&pdev->dev, "init gpio error %d\n", ret);
-		goto put_hdmi_codec;
+		dev_err_probe(&pdev->dev, ret, "%s init gpio error\n", __func__);
+		goto err_probe;
 	}
 
 	ret = devm_snd_soc_register_card(&pdev->dev, card);
+	if (ret)
+		dev_err_probe(&pdev->dev, ret, "%s snd_soc_register_card fail\n", __func__);
 
-put_hdmi_codec:
-	of_node_put(hdmi_codec);
-put_platform_node:
+err_probe:
+	of_node_put(speaker_codec);
+err_speaker_codec:
 	of_node_put(platform_node);
+err_platform_node:
+	of_node_put(hdmi_codec);
 	return ret;
 }
 
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [v9 3/4] ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset
  2022-04-06 10:05 [v9 0/4] ASoC: mediatek: mt8192: support rt1015p_rt5682s Jiaxin Yu
  2022-04-06 10:05 ` [v9 1/4] ASoC: dt-bindings: mt8192-mt6359: add new compatible and new properties Jiaxin Yu
  2022-04-06 10:05 ` [v9 2/4] ASoC: mediatek: mt8192: refactor for I2S3 DAI link of speaker Jiaxin Yu
@ 2022-04-06 10:05 ` Jiaxin Yu
  2022-04-07 21:33   ` Nícolas F. R. A. Prado
  2022-04-06 10:05 ` [v9 4/4] ASoC: mediatek: mt8192: support rt1015p_rt5682s Jiaxin Yu
  2022-04-08 14:47 ` [v9 0/4] " Mark Brown
  4 siblings, 1 reply; 12+ messages in thread
From: Jiaxin Yu @ 2022-04-06 10:05 UTC (permalink / raw)
  To: broonie, robh+dt, nfraprado, tzungbi
  Cc: angelogioacchino.delregno, aaronyu, matthias.bgg, trevor.wu,
	linmq006, alsa-devel, devicetree, linux-arm-kernel,
	linux-mediatek, linux-kernel,
	Project_Global_Chrome_Upstream_Group, Jiaxin Yu, Tzung-Bi Shih

MT8192 platform use rt5682 codec, so through the snd_soc_of_get_dai_link_codecs()
to complete the configuration of I2S8/I2S9 dai_link's codecs.

Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com>
Reviewed-by: Tzung-Bi Shih <tzungbi@kernel.org>
---
 .../mt8192/mt8192-mt6359-rt1015-rt5682.c      | 34 ++++++++++++++-----
 1 file changed, 26 insertions(+), 8 deletions(-)

diff --git a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c
index 15711448d259..4a11f687d416 100644
--- a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c
+++ b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c
@@ -28,9 +28,6 @@
 #define RT1015_DEV0_NAME	"rt1015.1-0028"
 #define RT1015_DEV1_NAME	"rt1015.1-0029"
 
-#define RT5682_CODEC_DAI	"rt5682-aif1"
-#define RT5682_DEV0_NAME	"rt5682.1-001a"
-
 struct mt8192_mt6359_priv {
 	struct snd_soc_jack headset_jack;
 	struct snd_soc_jack hdmi_jack;
@@ -626,14 +623,12 @@ SND_SOC_DAILINK_DEFS(i2s7,
 
 SND_SOC_DAILINK_DEFS(i2s8,
 		     DAILINK_COMP_ARRAY(COMP_CPU("I2S8")),
-		     DAILINK_COMP_ARRAY(COMP_CODEC(RT5682_DEV0_NAME,
-						   RT5682_CODEC_DAI)),
+		     DAILINK_COMP_ARRAY(COMP_EMPTY()),
 		     DAILINK_COMP_ARRAY(COMP_EMPTY()));
 
 SND_SOC_DAILINK_DEFS(i2s9,
 		     DAILINK_COMP_ARRAY(COMP_CPU("I2S9")),
-		     DAILINK_COMP_ARRAY(COMP_CODEC(RT5682_DEV0_NAME,
-						   RT5682_CODEC_DAI)),
+		     DAILINK_COMP_ARRAY(COMP_EMPTY()),
 		     DAILINK_COMP_ARRAY(COMP_EMPTY()));
 
 SND_SOC_DAILINK_DEFS(connsys_i2s,
@@ -1114,7 +1109,7 @@ static int mt8192_mt6359_card_set_be_link(struct snd_soc_card *card,
 static int mt8192_mt6359_dev_probe(struct platform_device *pdev)
 {
 	struct snd_soc_card *card;
-	struct device_node *platform_node, *hdmi_codec, *speaker_codec;
+	struct device_node *platform_node, *hdmi_codec, *headset_codec, *speaker_codec;
 	int ret, i;
 	struct snd_soc_dai_link *dai_link;
 	struct mt8192_mt6359_priv *priv;
@@ -1142,6 +1137,13 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev)
 		goto err_speaker_codec;
 	}
 
+	headset_codec = of_get_child_by_name(pdev->dev.of_node, "headset-codec");
+	if (!headset_codec) {
+		ret = -EINVAL;
+		dev_err_probe(&pdev->dev, ret, "Property 'headset-codec' missing or invalid\n");
+		goto err_headset_codec;
+	}
+
 	for_each_card_prelinks(card, i, dai_link) {
 		ret = mt8192_mt6359_card_set_be_link(card, dai_link, speaker_codec, "I2S3");
 		if (ret) {
@@ -1150,6 +1152,20 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev)
 			goto err_probe;
 		}
 
+		ret = mt8192_mt6359_card_set_be_link(card, dai_link, headset_codec, "I2S8");
+		if (ret) {
+			dev_err_probe(&pdev->dev, ret, "%s set headset_codec fail\n",
+				      dai_link->name);
+			goto err_probe;
+		}
+
+		ret = mt8192_mt6359_card_set_be_link(card, dai_link, headset_codec, "I2S9");
+		if (ret) {
+			dev_err_probe(&pdev->dev, ret, "%s set headset_codec fail\n",
+				      dai_link->name);
+			goto err_probe;
+		}
+
 		if (hdmi_codec && strcmp(dai_link->name, "TDM") == 0) {
 			dai_link->codecs->of_node = hdmi_codec;
 			dai_link->ignore = 0;
@@ -1180,6 +1196,8 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev)
 		dev_err_probe(&pdev->dev, ret, "%s snd_soc_register_card fail\n", __func__);
 
 err_probe:
+	of_node_put(headset_codec);
+err_headset_codec:
 	of_node_put(speaker_codec);
 err_speaker_codec:
 	of_node_put(platform_node);
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [v9 4/4] ASoC: mediatek: mt8192: support rt1015p_rt5682s
  2022-04-06 10:05 [v9 0/4] ASoC: mediatek: mt8192: support rt1015p_rt5682s Jiaxin Yu
                   ` (2 preceding siblings ...)
  2022-04-06 10:05 ` [v9 3/4] ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset Jiaxin Yu
@ 2022-04-06 10:05 ` Jiaxin Yu
  2022-04-07 22:03   ` Nícolas F. R. A. Prado
  2022-04-08 14:47 ` [v9 0/4] " Mark Brown
  4 siblings, 1 reply; 12+ messages in thread
From: Jiaxin Yu @ 2022-04-06 10:05 UTC (permalink / raw)
  To: broonie, robh+dt, nfraprado, tzungbi
  Cc: angelogioacchino.delregno, aaronyu, matthias.bgg, trevor.wu,
	linmq006, alsa-devel, devicetree, linux-arm-kernel,
	linux-mediatek, linux-kernel,
	Project_Global_Chrome_Upstream_Group, Jiaxin Yu, Tzung-Bi Shih

To support machine that only choose one of the rt5682s and rt5682 as
headset codec, adds new compatible string "mt8192_mt6359_rt1015p_rt5682s".
Meanwhile, using macros to simplifies card name and compatible name.

Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com>
Reviewed-by: Tzung-Bi Shih <tzungbi@kernel.org>
---
 sound/soc/mediatek/Kconfig                    |  1 +
 .../mt8192/mt8192-mt6359-rt1015-rt5682.c      | 61 ++++++++++++-------
 2 files changed, 40 insertions(+), 22 deletions(-)

diff --git a/sound/soc/mediatek/Kconfig b/sound/soc/mediatek/Kconfig
index ae838bbc7933..9e5ce1a82639 100644
--- a/sound/soc/mediatek/Kconfig
+++ b/sound/soc/mediatek/Kconfig
@@ -179,6 +179,7 @@ config SND_SOC_MT8192_MT6359_RT1015_RT5682
 	select SND_SOC_RT1015
 	select SND_SOC_RT1015P
 	select SND_SOC_RT5682_I2C
+	select SND_SOC_RT5682S
 	select SND_SOC_DMIC
 	help
 	  This adds ASoC driver for Mediatek MT8192 boards
diff --git a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c
index 4a11f687d416..2c71bd8a2db8 100644
--- a/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c
+++ b/sound/soc/mediatek/mt8192/mt8192-mt6359-rt1015-rt5682.c
@@ -28,6 +28,14 @@
 #define RT1015_DEV0_NAME	"rt1015.1-0028"
 #define RT1015_DEV1_NAME	"rt1015.1-0029"
 
+#define RT1015_RT5682_CARD_NAME "mt8192_mt6359_rt1015_rt5682"
+#define RT1015P_RT5682_CARD_NAME "mt8192_mt6359_rt1015p_rt5682"
+#define RT1015P_RT5682S_CARD_NAME "mt8192_mt6359_rt1015p_rt5682s"
+
+#define RT1015_RT5682_OF_NAME "mediatek,mt8192_mt6359_rt1015_rt5682"
+#define RT1015P_RT5682_OF_NAME "mediatek,mt8192_mt6359_rt1015p_rt5682"
+#define RT1015P_RT5682S_OF_NAME "mediatek,mt8192_mt6359_rt1015p_rt5682s"
+
 struct mt8192_mt6359_priv {
 	struct snd_soc_jack headset_jack;
 	struct snd_soc_jack hdmi_jack;
@@ -68,8 +76,8 @@ static int mt8192_rt1015_i2s_hw_params(struct snd_pcm_substream *substream,
 	return snd_soc_dai_set_sysclk(cpu_dai, 0, mclk_fs, SND_SOC_CLOCK_OUT);
 }
 
-static int mt8192_rt5682_i2s_hw_params(struct snd_pcm_substream *substream,
-				       struct snd_pcm_hw_params *params)
+static int mt8192_rt5682x_i2s_hw_params(struct snd_pcm_substream *substream,
+					struct snd_pcm_hw_params *params)
 {
 	struct snd_soc_pcm_runtime *rtd = asoc_substream_to_rtd(substream);
 	struct snd_soc_card *card = rtd->card;
@@ -118,8 +126,8 @@ static const struct snd_soc_ops mt8192_rt1015_i2s_ops = {
 	.hw_params = mt8192_rt1015_i2s_hw_params,
 };
 
-static const struct snd_soc_ops mt8192_rt5682_i2s_ops = {
-	.hw_params = mt8192_rt5682_i2s_hw_params,
+static const struct snd_soc_ops mt8192_rt5682x_i2s_ops = {
+	.hw_params = mt8192_rt5682x_i2s_hw_params,
 };
 
 static int mt8192_mt6359_mtkaif_calibration(struct snd_soc_pcm_runtime *rtd)
@@ -950,7 +958,7 @@ static struct snd_soc_dai_link mt8192_mt6359_dai_links[] = {
 		.init = mt8192_rt5682_init,
 		.be_hw_params_fixup = mt8192_i2s_hw_params_fixup,
 		SND_SOC_DAILINK_REG(i2s8),
-		.ops = &mt8192_rt5682_i2s_ops,
+		.ops = &mt8192_rt5682x_i2s_ops,
 	},
 	{
 		.name = "I2S9",
@@ -959,7 +967,7 @@ static struct snd_soc_dai_link mt8192_mt6359_dai_links[] = {
 		.ignore_suspend = 1,
 		.be_hw_params_fixup = mt8192_i2s_hw_params_fixup,
 		SND_SOC_DAILINK_REG(i2s9),
-		.ops = &mt8192_rt5682_i2s_ops,
+		.ops = &mt8192_rt5682x_i2s_ops,
 	},
 	{
 		.name = "CONNSYS_I2S",
@@ -1039,7 +1047,7 @@ static struct snd_soc_codec_conf rt1015_amp_conf[] = {
 };
 
 static struct snd_soc_card mt8192_mt6359_rt1015_rt5682_card = {
-	.name = "mt8192_mt6359_rt1015_rt5682",
+	.name = RT1015_RT5682_CARD_NAME,
 	.owner = THIS_MODULE,
 	.dai_link = mt8192_mt6359_dai_links,
 	.num_links = ARRAY_SIZE(mt8192_mt6359_dai_links),
@@ -1053,14 +1061,13 @@ static struct snd_soc_card mt8192_mt6359_rt1015_rt5682_card = {
 	.num_configs = ARRAY_SIZE(rt1015_amp_conf),
 };
 
-static const struct snd_soc_dapm_widget
-mt8192_mt6359_rt1015p_rt5682_widgets[] = {
+static const struct snd_soc_dapm_widget mt8192_mt6359_rt1015p_rt5682x_widgets[] = {
 	SND_SOC_DAPM_SPK("Speakers", NULL),
 	SND_SOC_DAPM_HP("Headphone Jack", NULL),
 	SND_SOC_DAPM_MIC("Headset Mic", NULL),
 };
 
-static const struct snd_soc_dapm_route mt8192_mt6359_rt1015p_rt5682_routes[] = {
+static const struct snd_soc_dapm_route mt8192_mt6359_rt1015p_rt5682x_routes[] = {
 	/* speaker */
 	{ "Speakers", NULL, "Speaker" },
 	/* headset */
@@ -1069,23 +1076,22 @@ static const struct snd_soc_dapm_route mt8192_mt6359_rt1015p_rt5682_routes[] = {
 	{ "IN1P", NULL, "Headset Mic" },
 };
 
-static const struct snd_kcontrol_new mt8192_mt6359_rt1015p_rt5682_controls[] = {
+static const struct snd_kcontrol_new mt8192_mt6359_rt1015p_rt5682x_controls[] = {
 	SOC_DAPM_PIN_SWITCH("Speakers"),
 	SOC_DAPM_PIN_SWITCH("Headphone Jack"),
 	SOC_DAPM_PIN_SWITCH("Headset Mic"),
 };
 
-static struct snd_soc_card mt8192_mt6359_rt1015p_rt5682_card = {
-	.name = "mt8192_mt6359_rt1015p_rt5682",
+static struct snd_soc_card mt8192_mt6359_rt1015p_rt5682x_card = {
 	.owner = THIS_MODULE,
 	.dai_link = mt8192_mt6359_dai_links,
 	.num_links = ARRAY_SIZE(mt8192_mt6359_dai_links),
-	.controls = mt8192_mt6359_rt1015p_rt5682_controls,
-	.num_controls = ARRAY_SIZE(mt8192_mt6359_rt1015p_rt5682_controls),
-	.dapm_widgets = mt8192_mt6359_rt1015p_rt5682_widgets,
-	.num_dapm_widgets = ARRAY_SIZE(mt8192_mt6359_rt1015p_rt5682_widgets),
-	.dapm_routes = mt8192_mt6359_rt1015p_rt5682_routes,
-	.num_dapm_routes = ARRAY_SIZE(mt8192_mt6359_rt1015p_rt5682_routes),
+	.controls = mt8192_mt6359_rt1015p_rt5682x_controls,
+	.num_controls = ARRAY_SIZE(mt8192_mt6359_rt1015p_rt5682x_controls),
+	.dapm_widgets = mt8192_mt6359_rt1015p_rt5682x_widgets,
+	.num_dapm_widgets = ARRAY_SIZE(mt8192_mt6359_rt1015p_rt5682x_widgets),
+	.dapm_routes = mt8192_mt6359_rt1015p_rt5682x_routes,
+	.num_dapm_routes = ARRAY_SIZE(mt8192_mt6359_rt1015p_rt5682x_routes),
 };
 
 static int mt8192_mt6359_card_set_be_link(struct snd_soc_card *card,
@@ -1119,6 +1125,13 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev)
 		return -EINVAL;
 	card->dev = &pdev->dev;
 
+	if (of_device_is_compatible(pdev->dev.of_node, RT1015P_RT5682_OF_NAME))
+		card->name = RT1015P_RT5682_CARD_NAME;
+	else if (of_device_is_compatible(pdev->dev.of_node, RT1015P_RT5682S_OF_NAME))
+		card->name = RT1015P_RT5682S_CARD_NAME;
+	else
+		dev_dbg(&pdev->dev, "No need to set card name\n");
+
 	hdmi_codec = of_parse_phandle(pdev->dev.of_node, "mediatek,hdmi-codec", 0);
 	if (!hdmi_codec)
 		dev_dbg(&pdev->dev, "The machine has no hdmi-codec\n");
@@ -1209,12 +1222,16 @@ static int mt8192_mt6359_dev_probe(struct platform_device *pdev)
 #ifdef CONFIG_OF
 static const struct of_device_id mt8192_mt6359_dt_match[] = {
 	{
-		.compatible = "mediatek,mt8192_mt6359_rt1015_rt5682",
+		.compatible = RT1015_RT5682_OF_NAME,
 		.data = &mt8192_mt6359_rt1015_rt5682_card,
 	},
 	{
-		.compatible = "mediatek,mt8192_mt6359_rt1015p_rt5682",
-		.data = &mt8192_mt6359_rt1015p_rt5682_card,
+		.compatible = RT1015P_RT5682_OF_NAME,
+		.data = &mt8192_mt6359_rt1015p_rt5682x_card,
+	},
+	{
+		.compatible = RT1015P_RT5682S_OF_NAME,
+		.data = &mt8192_mt6359_rt1015p_rt5682x_card,
 	},
 	{}
 };
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [v9 2/4] ASoC: mediatek: mt8192: refactor for I2S3 DAI link of speaker
  2022-04-06 10:05 ` [v9 2/4] ASoC: mediatek: mt8192: refactor for I2S3 DAI link of speaker Jiaxin Yu
@ 2022-04-07  0:56   ` Tzung-Bi Shih
  2022-04-07 21:24   ` Nícolas F. R. A. Prado
  1 sibling, 0 replies; 12+ messages in thread
From: Tzung-Bi Shih @ 2022-04-07  0:56 UTC (permalink / raw)
  To: Jiaxin Yu
  Cc: broonie, robh+dt, nfraprado, angelogioacchino.delregno, aaronyu,
	matthias.bgg, trevor.wu, linmq006, alsa-devel, devicetree,
	linux-arm-kernel, linux-mediatek, linux-kernel,
	Project_Global_Chrome_Upstream_Group

On Wed, Apr 06, 2022 at 06:05:12PM +0800, Jiaxin Yu wrote:
> MT8192 platform will use rt1015 or rt1015p codec, so through the
> snd_soc_of_get_dai_link_codecs() to complete the configuration
> of dai_link's codecs.
> 
> Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com>

Reviewed-by: Tzung-Bi Shih <tzungbi@kernel.org>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [v9 2/4] ASoC: mediatek: mt8192: refactor for I2S3 DAI link of speaker
  2022-04-06 10:05 ` [v9 2/4] ASoC: mediatek: mt8192: refactor for I2S3 DAI link of speaker Jiaxin Yu
  2022-04-07  0:56   ` Tzung-Bi Shih
@ 2022-04-07 21:24   ` Nícolas F. R. A. Prado
  2022-04-08  3:43     ` Jiaxin Yu
  1 sibling, 1 reply; 12+ messages in thread
From: Nícolas F. R. A. Prado @ 2022-04-07 21:24 UTC (permalink / raw)
  To: Jiaxin Yu
  Cc: broonie, robh+dt, tzungbi, angelogioacchino.delregno, aaronyu,
	matthias.bgg, trevor.wu, linmq006, alsa-devel, devicetree,
	linux-arm-kernel, linux-mediatek, linux-kernel,
	Project_Global_Chrome_Upstream_Group

Hi Jiaxin,

On Wed, Apr 06, 2022 at 06:05:12PM +0800, Jiaxin Yu wrote:
> MT8192 platform will use rt1015 or rt1015p codec, so through the
> snd_soc_of_get_dai_link_codecs() to complete the configuration
> of dai_link's codecs.

Suggestion for the commit message:

As part of the refactoring to allow the same machine driver to be used for the
rt1015(p) and rt5682(s) codecs on the MT8192 platform, parse the rt1015(p)
codecs from the speaker-codecs property in the devicetree and wire them to the
I2S3 backend, instead of hardcoding the links and selecting through the
compatible.

> 
> Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com>

Reviewed-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
Tested-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>

- Tested on mt8192-asurada-spherion (rt1015p and rt5682). All audio paths still
  work as previous to this refactor. And it's still possible to omit
  mediatek,hdmi-codec.

Thanks,
Nícolas

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [v9 3/4] ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset
  2022-04-06 10:05 ` [v9 3/4] ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset Jiaxin Yu
@ 2022-04-07 21:33   ` Nícolas F. R. A. Prado
  0 siblings, 0 replies; 12+ messages in thread
From: Nícolas F. R. A. Prado @ 2022-04-07 21:33 UTC (permalink / raw)
  To: Jiaxin Yu
  Cc: broonie, robh+dt, tzungbi, angelogioacchino.delregno, aaronyu,
	matthias.bgg, trevor.wu, linmq006, alsa-devel, devicetree,
	linux-arm-kernel, linux-mediatek, linux-kernel,
	Project_Global_Chrome_Upstream_Group, Tzung-Bi Shih

Hi Jiaxin,

On Wed, Apr 06, 2022 at 06:05:13PM +0800, Jiaxin Yu wrote:
> MT8192 platform use rt5682 codec, so through the snd_soc_of_get_dai_link_codecs()
> to complete the configuration of I2S8/I2S9 dai_link's codecs.

Likewise, suggestion for the commit message:

As part of the refactoring to allow the same machine driver to be used for the
rt1015(p) and rt5682(s) codecs on the MT8192 platform, parse the rt5682(s) codec
from the headset-codec property in the devicetree and wire it to the I2S8 and
I2S9 backends.

> 
> Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com>
> Reviewed-by: Tzung-Bi Shih <tzungbi@kernel.org>

Reviewed-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
Tested-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>

Thanks,
Nícolas

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [v9 4/4] ASoC: mediatek: mt8192: support rt1015p_rt5682s
  2022-04-06 10:05 ` [v9 4/4] ASoC: mediatek: mt8192: support rt1015p_rt5682s Jiaxin Yu
@ 2022-04-07 22:03   ` Nícolas F. R. A. Prado
  0 siblings, 0 replies; 12+ messages in thread
From: Nícolas F. R. A. Prado @ 2022-04-07 22:03 UTC (permalink / raw)
  To: Jiaxin Yu
  Cc: broonie, robh+dt, tzungbi, angelogioacchino.delregno, aaronyu,
	matthias.bgg, trevor.wu, linmq006, alsa-devel, devicetree,
	linux-arm-kernel, linux-mediatek, linux-kernel,
	Project_Global_Chrome_Upstream_Group, Tzung-Bi Shih

Hi Jiaxin,

On Wed, Apr 06, 2022 at 06:05:14PM +0800, Jiaxin Yu wrote:
> To support machine that only choose one of the rt5682s and rt5682 as
> headset codec, adds new compatible string "mt8192_mt6359_rt1015p_rt5682s".
> Meanwhile, using macros to simplifies card name and compatible name.

That first sentence is particularly confusing to me. Suggestion for the commit
message:

Add support for using the rt5682s codec together with rt1015p on mt8192-mt6359
machines. All configurations are shared with the rt5682 codec variant, so simply
select the SND_SOC_RT5682S config to ensure the codec is present and set the
correct card name. The codec will be linked to by pointing to it in the
headset-codec property in the devicetree.

While at it, also create macros for the names of the different codec variants
supported by this driver, as well as rename occurrences of rt1015p_rt5682 to
rt1015p_rt5682x, since they are shared between rt5682 and rt5682s.

> 
> Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com>
> Reviewed-by: Tzung-Bi Shih <tzungbi@kernel.org>

Reviewed-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
Tested-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>

Thanks,
Nícolas

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [v9 1/4] ASoC: dt-bindings: mt8192-mt6359: add new compatible and new properties
  2022-04-06 10:05 ` [v9 1/4] ASoC: dt-bindings: mt8192-mt6359: add new compatible and new properties Jiaxin Yu
@ 2022-04-07 22:10   ` Nícolas F. R. A. Prado
  0 siblings, 0 replies; 12+ messages in thread
From: Nícolas F. R. A. Prado @ 2022-04-07 22:10 UTC (permalink / raw)
  To: Jiaxin Yu
  Cc: broonie, robh+dt, tzungbi, angelogioacchino.delregno, aaronyu,
	matthias.bgg, trevor.wu, linmq006, alsa-devel, devicetree,
	linux-arm-kernel, linux-mediatek, linux-kernel,
	Project_Global_Chrome_Upstream_Group, Rob Herring

Hi Jiaxin,

On Wed, Apr 06, 2022 at 06:05:11PM +0800, Jiaxin Yu wrote:
> 1. Adds new compatible string "mt8192_mt6359_rt1015p_rt5682s" for machines
> with rt1015p and rt5682s.
> 2. Adds new property "headset-codec" for getting headset codec.
> 3. Adds new property "speaker-codecs" for getting speaker codecs.
> 
> Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com>
> Reviewed-by: Rob Herring <robh@kernel.org>

Reviewed-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
Tested-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>

Thanks,
Nícolas

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [v9 2/4] ASoC: mediatek: mt8192: refactor for I2S3 DAI link of speaker
  2022-04-07 21:24   ` Nícolas F. R. A. Prado
@ 2022-04-08  3:43     ` Jiaxin Yu
  0 siblings, 0 replies; 12+ messages in thread
From: Jiaxin Yu @ 2022-04-08  3:43 UTC (permalink / raw)
  To: Nícolas F. R. A. Prado
  Cc: broonie, robh+dt, tzungbi, angelogioacchino.delregno, aaronyu,
	matthias.bgg, trevor.wu, linmq006, alsa-devel, devicetree,
	linux-arm-kernel, linux-mediatek, linux-kernel,
	Project_Global_Chrome_Upstream_Group

On Thu, 2022-04-07 at 17:24 -0400, Nícolas F. R. A. Prado wrote:
> Hi Jiaxin,
> 
> On Wed, Apr 06, 2022 at 06:05:12PM +0800, Jiaxin Yu wrote:
> > MT8192 platform will use rt1015 or rt1015p codec, so through the
> > snd_soc_of_get_dai_link_codecs() to complete the configuration
> > of dai_link's codecs.
> 
> Suggestion for the commit message:
> 
> As part of the refactoring to allow the same machine driver to be
> used for the
> rt1015(p) and rt5682(s) codecs on the MT8192 platform, parse the
> rt1015(p)
> codecs from the speaker-codecs property in the devicetree and wire
> them to the
> I2S3 backend, instead of hardcoding the links and selecting through
> the
> compatible.
> 
Hi Nícolas,

I will update the commit message according to the rule of one row per
75 columns. I will also refer to your suggestions to modify the rest of
the series. Thanks for your review.

Jiaxin.Yu
Thanks.

> > 
> > Signed-off-by: Jiaxin Yu <jiaxin.yu@mediatek.com>
> 
> Reviewed-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
> Tested-by: Nícolas F. R. A. Prado <nfraprado@collabora.com>
> 
> - Tested on mt8192-asurada-spherion (rt1015p and rt5682). All audio
> paths still
>   work as previous to this refactor. And it's still possible to omit
>   mediatek,hdmi-codec.
> 
> Thanks,
> Nícolas


^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [v9 0/4] ASoC: mediatek: mt8192: support rt1015p_rt5682s
  2022-04-06 10:05 [v9 0/4] ASoC: mediatek: mt8192: support rt1015p_rt5682s Jiaxin Yu
                   ` (3 preceding siblings ...)
  2022-04-06 10:05 ` [v9 4/4] ASoC: mediatek: mt8192: support rt1015p_rt5682s Jiaxin Yu
@ 2022-04-08 14:47 ` Mark Brown
  4 siblings, 0 replies; 12+ messages in thread
From: Mark Brown @ 2022-04-08 14:47 UTC (permalink / raw)
  To: tzungbi, robh+dt, jiaxin.yu, nfraprado
  Cc: trevor.wu, linux-arm-kernel, linux-kernel, aaronyu, matthias.bgg,
	alsa-devel, linux-mediatek, devicetree, linmq006,
	Project_Global_Chrome_Upstream_Group, angelogioacchino.delregno

On Wed, 6 Apr 2022 18:05:10 +0800, Jiaxin Yu wrote:
> The series reuses mt8192-mt6359-rt1015-rt5682.c for supporting machine
> driver with rt1015p speaker amplifier and rt5682s headset codec.
> 
> Changes from v8:
>   - fix typos.
> 
> Changes from v7:
>   - "mediatek,hdmi-codec" is an optional property, the code and the
>     binding document should match.
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next

Thanks!

[1/4] ASoC: dt-bindings: mt8192-mt6359: add new compatible and new properties
      commit: 1efe7eca170d344c5101c69ac51df6982de764e4
[2/4] ASoC: mediatek: mt8192: refactor for I2S3 DAI link of speaker
      commit: e1e408e60e856b99782b26308a9dc3937b1ba8bf
[3/4] ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset
      commit: f8910fb4985a00c0a1e6932dc5bda6181c549b76
[4/4] ASoC: mediatek: mt8192: support rt1015p_rt5682s
      commit: 7a80167b08f52e7b5eaa18a9d515efdcff9085fc

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark

^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2022-04-08 14:47 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-04-06 10:05 [v9 0/4] ASoC: mediatek: mt8192: support rt1015p_rt5682s Jiaxin Yu
2022-04-06 10:05 ` [v9 1/4] ASoC: dt-bindings: mt8192-mt6359: add new compatible and new properties Jiaxin Yu
2022-04-07 22:10   ` Nícolas F. R. A. Prado
2022-04-06 10:05 ` [v9 2/4] ASoC: mediatek: mt8192: refactor for I2S3 DAI link of speaker Jiaxin Yu
2022-04-07  0:56   ` Tzung-Bi Shih
2022-04-07 21:24   ` Nícolas F. R. A. Prado
2022-04-08  3:43     ` Jiaxin Yu
2022-04-06 10:05 ` [v9 3/4] ASoC: mediatek: mt8192: refactor for I2S8/I2S9 DAI links of headset Jiaxin Yu
2022-04-07 21:33   ` Nícolas F. R. A. Prado
2022-04-06 10:05 ` [v9 4/4] ASoC: mediatek: mt8192: support rt1015p_rt5682s Jiaxin Yu
2022-04-07 22:03   ` Nícolas F. R. A. Prado
2022-04-08 14:47 ` [v9 0/4] " Mark Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).