* [PATCH v2 0/3] Fix capture devices functionality on TM2
[not found] <CGME20170906010417epcas2p2ba8d740d4d071b6479a05b31f81c8b46@epcas2p2.samsung.com>
@ 2017-09-06 1:04 ` Jaechul Lee
[not found] ` <CGME20170906010417epcas2p208db637d89a670d01fa3dbeb78ff0da0@epcas2p2.samsung.com>
` (2 more replies)
0 siblings, 3 replies; 9+ messages in thread
From: Jaechul Lee @ 2017-09-06 1:04 UTC (permalink / raw)
To: Krzysztof Kozlowski, Sangbeom Kim, Sylwester Nawrocki,
Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai,
alsa-devel
Cc: linux-samsung-soc, linux-kernel, galaxyra, Jaechul Lee,
Chanwoo Choi
Hello,
This patchset makes capture functionality working on TM2.
Capture devices can't be detected because I2S doesn't have appropriate dai
name. Therefore, TM2 will select unexpected cpu dai which is named
"i2s-samsung-sec" that doesn't have a capture functionality.
In samsung I2S driver, it tries to register two components without
specific name. The driver finally has components having same name: dai
name as well. As a result, dai_link doesn't have enough information to
select cpu_dai properly.
Changes in v2:
- defined SAMSUNG_I2S_DAI_* in i2s.h and removed duplicated code
- modified commit message about invalid parameter that Krzystof mentioned
- rebased code because of conflicts in i2s.c
Jaechul Lee (3):
ASoC: samsung: i2s: Use specific name for i2s dais
ASoC: samsung: Use 'samsung-i2s' cpu_dai for dai_links
ASoC: samsung: Fix invalid argument when devm_gpiod_get is called
sound/soc/samsung/i2s.c | 4 ++++
sound/soc/samsung/i2s.h | 3 +++
sound/soc/samsung/tm2_wm5110.c | 7 ++++---
3 files changed, 11 insertions(+), 3 deletions(-)
--
2.14.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v2 1/3] ASoC: samsung: i2s: Use specific name for i2s dais
[not found] ` <CGME20170906010417epcas2p208db637d89a670d01fa3dbeb78ff0da0@epcas2p2.samsung.com>
@ 2017-09-06 1:04 ` Jaechul Lee
2017-09-08 16:43 ` Krzysztof Kozlowski
2017-09-19 14:59 ` Applied "ASoC: samsung: i2s: Use specific name for i2s dais" to the asoc tree Mark Brown
0 siblings, 2 replies; 9+ messages in thread
From: Jaechul Lee @ 2017-09-06 1:04 UTC (permalink / raw)
To: Krzysztof Kozlowski, Sangbeom Kim, Sylwester Nawrocki,
Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai,
alsa-devel
Cc: linux-samsung-soc, linux-kernel, galaxyra, Jaechul Lee,
Chanwoo Choi
Add specific dais name when components are registered. Component and dai
name will follow their parent dev name, if the name isn't described. In
case of this driver, each dais will have same name like '11440000.i2s0' by
fmt_single_name function.
The problem having same name is that TM2 machine driver can't detect
capture devices correctly. Machine driver doesn't know which one is proper
to use for cpu dai. The driver just selects to use 'samsung-i2c-sec' that
doesn't have capture functionality because the component of
samsung-i2s-sec is located in the first of the component_list.
I add dai name like 'samsung-i2s', 'samsung-i2s-sec' for each dais. The
reason why adding dai id to 1 is that it doesn't allow to use particular
dai name in case of when I use 0 for dai id.
Signed-off-by: Jaechul Lee <jcsing.lee@samsung.com>
---
sound/soc/samsung/i2s.c | 4 ++++
sound/soc/samsung/i2s.h | 3 +++
2 files changed, 7 insertions(+)
diff --git a/sound/soc/samsung/i2s.c b/sound/soc/samsung/i2s.c
index 10a4da06c0a1..3aa2e7d54ea9 100644
--- a/sound/soc/samsung/i2s.c
+++ b/sound/soc/samsung/i2s.c
@@ -1096,6 +1096,7 @@ static struct i2s_dai *i2s_alloc_dai(struct platform_device *pdev,
i2s->pdev = pdev;
i2s->pri_dai = NULL;
i2s->sec_dai = NULL;
+ i2s->i2s_dai_drv.id = 1;
i2s->i2s_dai_drv.symmetric_rates = 1;
i2s->i2s_dai_drv.probe = samsung_i2s_dai_probe;
i2s->i2s_dai_drv.remove = samsung_i2s_dai_remove;
@@ -1108,10 +1109,13 @@ static struct i2s_dai *i2s_alloc_dai(struct platform_device *pdev,
i2s->i2s_dai_drv.playback.formats = SAMSUNG_I2S_FMTS;
if (!sec) {
+ i2s->i2s_dai_drv.name = SAMSUNG_I2S_DAI;
i2s->i2s_dai_drv.capture.channels_min = 1;
i2s->i2s_dai_drv.capture.channels_max = 2;
i2s->i2s_dai_drv.capture.rates = i2s_dai_data->pcm_rates;
i2s->i2s_dai_drv.capture.formats = SAMSUNG_I2S_FMTS;
+ } else {
+ i2s->i2s_dai_drv.name = SAMSUNG_I2S_DAI_SEC;
}
return i2s;
}
diff --git a/sound/soc/samsung/i2s.h b/sound/soc/samsung/i2s.h
index 21ff24e930db..79781de2f247 100644
--- a/sound/soc/samsung/i2s.h
+++ b/sound/soc/samsung/i2s.h
@@ -13,6 +13,9 @@
#ifndef __SND_SOC_SAMSUNG_I2S_H
#define __SND_SOC_SAMSUNG_I2S_H
+#define SAMSUNG_I2S_DAI "samsung-i2s"
+#define SAMSUNG_I2S_DAI_SEC "samsung-i2s-sec"
+
#define SAMSUNG_I2S_DIV_BCLK 1
#define SAMSUNG_I2S_RCLKSRC_0 0
--
2.14.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v2 2/3] ASoC: samsung: Use 'samsung-i2s' cpu_dai for dai_links
[not found] ` <CGME20170906010417epcas1p2b3460cf27e35e64f5e35fad98f554108@epcas1p2.samsung.com>
@ 2017-09-06 1:04 ` Jaechul Lee
2017-09-08 16:45 ` Krzysztof Kozlowski
2017-09-19 14:59 ` Applied "ASoC: samsung: Use 'samsung-i2s' cpu_dai for dai_links" to the asoc tree Mark Brown
0 siblings, 2 replies; 9+ messages in thread
From: Jaechul Lee @ 2017-09-06 1:04 UTC (permalink / raw)
To: Krzysztof Kozlowski, Sangbeom Kim, Sylwester Nawrocki,
Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai,
alsa-devel
Cc: linux-samsung-soc, linux-kernel, galaxyra, Jaechul Lee,
Chanwoo Choi
Add specific cpu_dai_name to dai_link because samsung i2s driver registers
two dais and components. Selecting one of them clearly is needed more
information like cpu_dai_name, of_node. The reason why the dai_links have
to use 'samsung-i2s' for cpu_dai is that 'samsung-i2s-sec' doesn't have a
capture functionality.
Without this code, cpu_dai will be selected the first one of the
component_list. For example, if I describe nothing to cpu_dai_name,
'samsung-i2s-sec' might be selected to HiFi Primay.
Signed-off-by: Jaechul Lee <jcsing.lee@samsung.com>
---
sound/soc/samsung/tm2_wm5110.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/sound/soc/samsung/tm2_wm5110.c b/sound/soc/samsung/tm2_wm5110.c
index 68698f3d72f9..710e2151141f 100644
--- a/sound/soc/samsung/tm2_wm5110.c
+++ b/sound/soc/samsung/tm2_wm5110.c
@@ -383,6 +383,7 @@ static struct snd_soc_dai_link tm2_dai_links[] = {
{
.name = "WM5110 AIF1",
.stream_name = "HiFi Primary",
+ .cpu_dai_name = SAMSUNG_I2S_DAI,
.codec_dai_name = "wm5110-aif1",
.ops = &tm2_aif1_ops,
.dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
@@ -390,6 +391,7 @@ static struct snd_soc_dai_link tm2_dai_links[] = {
}, {
.name = "WM5110 Voice",
.stream_name = "Voice call",
+ .cpu_dai_name = SAMSUNG_I2S_DAI,
.codec_dai_name = "wm5110-aif2",
.ops = &tm2_aif2_ops,
.dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
@@ -398,6 +400,7 @@ static struct snd_soc_dai_link tm2_dai_links[] = {
}, {
.name = "WM5110 BT",
.stream_name = "Bluetooth",
+ .cpu_dai_name = SAMSUNG_I2S_DAI,
.codec_dai_name = "wm5110-aif3",
.dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
SND_SOC_DAIFMT_CBM_CFM,
@@ -477,7 +480,6 @@ static int tm2_probe(struct platform_device *pdev)
}
for (i = 0; i < card->num_links; i++) {
- card->dai_link[i].cpu_dai_name = NULL;
card->dai_link[i].cpu_name = NULL;
card->dai_link[i].platform_name = NULL;
card->dai_link[i].codec_of_node = codec_dai_node;
--
2.14.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH v2 3/3] ASoC: samsung: Fix invalid argument when devm_gpiod_get is called
[not found] ` <CGME20170906010417epcas2p1fa15cc68a8fb034f087b8103f6767f29@epcas2p1.samsung.com>
@ 2017-09-06 1:04 ` Jaechul Lee
2017-09-08 16:46 ` Krzysztof Kozlowski
0 siblings, 1 reply; 9+ messages in thread
From: Jaechul Lee @ 2017-09-06 1:04 UTC (permalink / raw)
To: Krzysztof Kozlowski, Sangbeom Kim, Sylwester Nawrocki,
Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai,
alsa-devel
Cc: linux-samsung-soc, linux-kernel, galaxyra, Jaechul Lee,
Chanwoo Choi
devm_gpiod_get is called with GPIOF_OUT_INIT_LOW but the function doesn't
allow the parameters. Unluckily, GPIOF_OUT_INIT_LOW is same value as
GPIOD_ASIS and gpio direction isn't set properly.
Muted stream comes up when I try recording some sounds on TM2. mic-bias
gpiod state can't be changed because the gpiod is created with the invalid
parameter. The gpio should be set GPIOD_OUT_HIGH.
Fixes: 1bfbc260a5b4 ("ASoC: samsung: Add machine driver for Exynos5433 based TM2 board")
Signed-off-by: Jaechul Lee <jcsing.lee@samsung.com>
---
sound/soc/samsung/tm2_wm5110.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/sound/soc/samsung/tm2_wm5110.c b/sound/soc/samsung/tm2_wm5110.c
index 710e2151141f..a55d18703fe7 100644
--- a/sound/soc/samsung/tm2_wm5110.c
+++ b/sound/soc/samsung/tm2_wm5110.c
@@ -439,8 +439,7 @@ static int tm2_probe(struct platform_device *pdev)
snd_soc_card_set_drvdata(card, priv);
card->dev = dev;
- priv->gpio_mic_bias = devm_gpiod_get(dev, "mic-bias",
- GPIOF_OUT_INIT_LOW);
+ priv->gpio_mic_bias = devm_gpiod_get(dev, "mic-bias", GPIOD_OUT_HIGH);
if (IS_ERR(priv->gpio_mic_bias)) {
dev_err(dev, "Failed to get mic bias gpio\n");
return PTR_ERR(priv->gpio_mic_bias);
--
2.14.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v2 1/3] ASoC: samsung: i2s: Use specific name for i2s dais
2017-09-06 1:04 ` [PATCH v2 1/3] ASoC: samsung: i2s: Use specific name for i2s dais Jaechul Lee
@ 2017-09-08 16:43 ` Krzysztof Kozlowski
2017-09-19 14:59 ` Applied "ASoC: samsung: i2s: Use specific name for i2s dais" to the asoc tree Mark Brown
1 sibling, 0 replies; 9+ messages in thread
From: Krzysztof Kozlowski @ 2017-09-08 16:43 UTC (permalink / raw)
To: Jaechul Lee
Cc: Sangbeom Kim, Sylwester Nawrocki, Liam Girdwood, Mark Brown,
Jaroslav Kysela, Takashi Iwai, alsa-devel, linux-samsung-soc,
linux-kernel, galaxyra, Chanwoo Choi
On Wed, Sep 06, 2017 at 10:04:13AM +0900, Jaechul Lee wrote:
> Add specific dais name when components are registered. Component and dai
> name will follow their parent dev name, if the name isn't described. In
> case of this driver, each dais will have same name like '11440000.i2s0' by
> fmt_single_name function.
>
> The problem having same name is that TM2 machine driver can't detect
> capture devices correctly. Machine driver doesn't know which one is proper
> to use for cpu dai. The driver just selects to use 'samsung-i2c-sec' that
> doesn't have capture functionality because the component of
> samsung-i2s-sec is located in the first of the component_list.
>
> I add dai name like 'samsung-i2s', 'samsung-i2s-sec' for each dais. The
> reason why adding dai id to 1 is that it doesn't allow to use particular
> dai name in case of when I use 0 for dai id.
>
> Signed-off-by: Jaechul Lee <jcsing.lee@samsung.com>
> ---
> sound/soc/samsung/i2s.c | 4 ++++
> sound/soc/samsung/i2s.h | 3 +++
> 2 files changed, 7 insertions(+)
>
Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 2/3] ASoC: samsung: Use 'samsung-i2s' cpu_dai for dai_links
2017-09-06 1:04 ` [PATCH v2 2/3] ASoC: samsung: Use 'samsung-i2s' cpu_dai for dai_links Jaechul Lee
@ 2017-09-08 16:45 ` Krzysztof Kozlowski
2017-09-19 14:59 ` Applied "ASoC: samsung: Use 'samsung-i2s' cpu_dai for dai_links" to the asoc tree Mark Brown
1 sibling, 0 replies; 9+ messages in thread
From: Krzysztof Kozlowski @ 2017-09-08 16:45 UTC (permalink / raw)
To: Jaechul Lee
Cc: Sangbeom Kim, Sylwester Nawrocki, Liam Girdwood, Mark Brown,
Jaroslav Kysela, Takashi Iwai, alsa-devel, linux-samsung-soc,
linux-kernel, galaxyra, Chanwoo Choi
On Wed, Sep 06, 2017 at 10:04:14AM +0900, Jaechul Lee wrote:
> Add specific cpu_dai_name to dai_link because samsung i2s driver registers
> two dais and components. Selecting one of them clearly is needed more
> information like cpu_dai_name, of_node. The reason why the dai_links have
> to use 'samsung-i2s' for cpu_dai is that 'samsung-i2s-sec' doesn't have a
> capture functionality.
>
> Without this code, cpu_dai will be selected the first one of the
> component_list. For example, if I describe nothing to cpu_dai_name,
> 'samsung-i2s-sec' might be selected to HiFi Primay.
>
> Signed-off-by: Jaechul Lee <jcsing.lee@samsung.com>
> ---
> sound/soc/samsung/tm2_wm5110.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 3/3] ASoC: samsung: Fix invalid argument when devm_gpiod_get is called
2017-09-06 1:04 ` [PATCH v2 3/3] ASoC: samsung: Fix invalid argument when devm_gpiod_get is called Jaechul Lee
@ 2017-09-08 16:46 ` Krzysztof Kozlowski
0 siblings, 0 replies; 9+ messages in thread
From: Krzysztof Kozlowski @ 2017-09-08 16:46 UTC (permalink / raw)
To: Jaechul Lee
Cc: Sangbeom Kim, Sylwester Nawrocki, Liam Girdwood, Mark Brown,
Jaroslav Kysela, Takashi Iwai, alsa-devel, linux-samsung-soc,
linux-kernel, galaxyra, Chanwoo Choi
On Wed, Sep 06, 2017 at 10:04:15AM +0900, Jaechul Lee wrote:
> devm_gpiod_get is called with GPIOF_OUT_INIT_LOW but the function doesn't
> allow the parameters. Unluckily, GPIOF_OUT_INIT_LOW is same value as
> GPIOD_ASIS and gpio direction isn't set properly.
>
> Muted stream comes up when I try recording some sounds on TM2. mic-bias
> gpiod state can't be changed because the gpiod is created with the invalid
> parameter. The gpio should be set GPIOD_OUT_HIGH.
>
> Fixes: 1bfbc260a5b4 ("ASoC: samsung: Add machine driver for Exynos5433 based TM2 board")
> Signed-off-by: Jaechul Lee <jcsing.lee@samsung.com>
> ---
> sound/soc/samsung/tm2_wm5110.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org>
Best regards,
Krzysztof
^ permalink raw reply [flat|nested] 9+ messages in thread
* Applied "ASoC: samsung: Use 'samsung-i2s' cpu_dai for dai_links" to the asoc tree
2017-09-06 1:04 ` [PATCH v2 2/3] ASoC: samsung: Use 'samsung-i2s' cpu_dai for dai_links Jaechul Lee
2017-09-08 16:45 ` Krzysztof Kozlowski
@ 2017-09-19 14:59 ` Mark Brown
1 sibling, 0 replies; 9+ messages in thread
From: Mark Brown @ 2017-09-19 14:59 UTC (permalink / raw)
To: Jaechul Lee
Cc: Mark Brown, Krzysztof Kozlowski, Sangbeom Kim, Sylwester Nawrocki,
Liam Girdwood
The patch
ASoC: samsung: Use 'samsung-i2s' cpu_dai for dai_links
has been applied to the asoc tree at
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git
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
>From e8d93208905a9987c211f97a14a93f2776ab52e7 Mon Sep 17 00:00:00 2001
From: Jaechul Lee <jcsing.lee@samsung.com>
Date: Wed, 6 Sep 2017 10:04:14 +0900
Subject: [PATCH] ASoC: samsung: Use 'samsung-i2s' cpu_dai for dai_links
Add specific cpu_dai_name to dai_link because samsung i2s driver registers
two dais and components. Selecting one of them clearly is needed more
information like cpu_dai_name, of_node. The reason why the dai_links have
to use 'samsung-i2s' for cpu_dai is that 'samsung-i2s-sec' doesn't have a
capture functionality.
Without this code, cpu_dai will be selected the first one of the
component_list. For example, if I describe nothing to cpu_dai_name,
'samsung-i2s-sec' might be selected to HiFi Primay.
Signed-off-by: Jaechul Lee <jcsing.lee@samsung.com>
Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
sound/soc/samsung/tm2_wm5110.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/sound/soc/samsung/tm2_wm5110.c b/sound/soc/samsung/tm2_wm5110.c
index 68698f3d72f9..710e2151141f 100644
--- a/sound/soc/samsung/tm2_wm5110.c
+++ b/sound/soc/samsung/tm2_wm5110.c
@@ -383,6 +383,7 @@ static struct snd_soc_dai_link tm2_dai_links[] = {
{
.name = "WM5110 AIF1",
.stream_name = "HiFi Primary",
+ .cpu_dai_name = SAMSUNG_I2S_DAI,
.codec_dai_name = "wm5110-aif1",
.ops = &tm2_aif1_ops,
.dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
@@ -390,6 +391,7 @@ static struct snd_soc_dai_link tm2_dai_links[] = {
}, {
.name = "WM5110 Voice",
.stream_name = "Voice call",
+ .cpu_dai_name = SAMSUNG_I2S_DAI,
.codec_dai_name = "wm5110-aif2",
.ops = &tm2_aif2_ops,
.dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
@@ -398,6 +400,7 @@ static struct snd_soc_dai_link tm2_dai_links[] = {
}, {
.name = "WM5110 BT",
.stream_name = "Bluetooth",
+ .cpu_dai_name = SAMSUNG_I2S_DAI,
.codec_dai_name = "wm5110-aif3",
.dai_fmt = SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_NB_NF |
SND_SOC_DAIFMT_CBM_CFM,
@@ -477,7 +480,6 @@ static int tm2_probe(struct platform_device *pdev)
}
for (i = 0; i < card->num_links; i++) {
- card->dai_link[i].cpu_dai_name = NULL;
card->dai_link[i].cpu_name = NULL;
card->dai_link[i].platform_name = NULL;
card->dai_link[i].codec_of_node = codec_dai_node;
--
2.14.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Applied "ASoC: samsung: i2s: Use specific name for i2s dais" to the asoc tree
2017-09-06 1:04 ` [PATCH v2 1/3] ASoC: samsung: i2s: Use specific name for i2s dais Jaechul Lee
2017-09-08 16:43 ` Krzysztof Kozlowski
@ 2017-09-19 14:59 ` Mark Brown
1 sibling, 0 replies; 9+ messages in thread
From: Mark Brown @ 2017-09-19 14:59 UTC (permalink / raw)
To: Jaechul Lee
Cc: Mark Brown, Krzysztof Kozlowski, Sangbeom Kim, Sylwester Nawrocki,
Liam Girdwood
The patch
ASoC: samsung: i2s: Use specific name for i2s dais
has been applied to the asoc tree at
git://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git
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
>From 22289ddcd87285b3d61cd8b129438ca6abb1aa37 Mon Sep 17 00:00:00 2001
From: Jaechul Lee <jcsing.lee@samsung.com>
Date: Wed, 6 Sep 2017 10:04:13 +0900
Subject: [PATCH] ASoC: samsung: i2s: Use specific name for i2s dais
Add specific dais name when components are registered. Component and dai
name will follow their parent dev name, if the name isn't described. In
case of this driver, each dais will have same name like '11440000.i2s0' by
fmt_single_name function.
The problem having same name is that TM2 machine driver can't detect
capture devices correctly. Machine driver doesn't know which one is proper
to use for cpu dai. The driver just selects to use 'samsung-i2c-sec' that
doesn't have capture functionality because the component of
samsung-i2s-sec is located in the first of the component_list.
I add dai name like 'samsung-i2s', 'samsung-i2s-sec' for each dais. The
reason why adding dai id to 1 is that it doesn't allow to use particular
dai name in case of when I use 0 for dai id.
Signed-off-by: Jaechul Lee <jcsing.lee@samsung.com>
Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
sound/soc/samsung/i2s.c | 4 ++++
sound/soc/samsung/i2s.h | 3 +++
2 files changed, 7 insertions(+)
diff --git a/sound/soc/samsung/i2s.c b/sound/soc/samsung/i2s.c
index d7e7f4244d38..8d5e1861abb1 100644
--- a/sound/soc/samsung/i2s.c
+++ b/sound/soc/samsung/i2s.c
@@ -1099,6 +1099,7 @@ static struct i2s_dai *i2s_alloc_dai(struct platform_device *pdev,
i2s->pdev = pdev;
i2s->pri_dai = NULL;
i2s->sec_dai = NULL;
+ i2s->i2s_dai_drv.id = 1;
i2s->i2s_dai_drv.symmetric_rates = 1;
i2s->i2s_dai_drv.probe = samsung_i2s_dai_probe;
i2s->i2s_dai_drv.remove = samsung_i2s_dai_remove;
@@ -1111,10 +1112,13 @@ static struct i2s_dai *i2s_alloc_dai(struct platform_device *pdev,
i2s->i2s_dai_drv.playback.formats = SAMSUNG_I2S_FMTS;
if (!sec) {
+ i2s->i2s_dai_drv.name = SAMSUNG_I2S_DAI;
i2s->i2s_dai_drv.capture.channels_min = 1;
i2s->i2s_dai_drv.capture.channels_max = 2;
i2s->i2s_dai_drv.capture.rates = i2s_dai_data->pcm_rates;
i2s->i2s_dai_drv.capture.formats = SAMSUNG_I2S_FMTS;
+ } else {
+ i2s->i2s_dai_drv.name = SAMSUNG_I2S_DAI_SEC;
}
return i2s;
}
diff --git a/sound/soc/samsung/i2s.h b/sound/soc/samsung/i2s.h
index 21ff24e930db..79781de2f247 100644
--- a/sound/soc/samsung/i2s.h
+++ b/sound/soc/samsung/i2s.h
@@ -13,6 +13,9 @@
#ifndef __SND_SOC_SAMSUNG_I2S_H
#define __SND_SOC_SAMSUNG_I2S_H
+#define SAMSUNG_I2S_DAI "samsung-i2s"
+#define SAMSUNG_I2S_DAI_SEC "samsung-i2s-sec"
+
#define SAMSUNG_I2S_DIV_BCLK 1
#define SAMSUNG_I2S_RCLKSRC_0 0
--
2.14.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
end of thread, other threads:[~2017-09-19 14:59 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <CGME20170906010417epcas2p2ba8d740d4d071b6479a05b31f81c8b46@epcas2p2.samsung.com>
2017-09-06 1:04 ` [PATCH v2 0/3] Fix capture devices functionality on TM2 Jaechul Lee
[not found] ` <CGME20170906010417epcas2p208db637d89a670d01fa3dbeb78ff0da0@epcas2p2.samsung.com>
2017-09-06 1:04 ` [PATCH v2 1/3] ASoC: samsung: i2s: Use specific name for i2s dais Jaechul Lee
2017-09-08 16:43 ` Krzysztof Kozlowski
2017-09-19 14:59 ` Applied "ASoC: samsung: i2s: Use specific name for i2s dais" to the asoc tree Mark Brown
[not found] ` <CGME20170906010417epcas1p2b3460cf27e35e64f5e35fad98f554108@epcas1p2.samsung.com>
2017-09-06 1:04 ` [PATCH v2 2/3] ASoC: samsung: Use 'samsung-i2s' cpu_dai for dai_links Jaechul Lee
2017-09-08 16:45 ` Krzysztof Kozlowski
2017-09-19 14:59 ` Applied "ASoC: samsung: Use 'samsung-i2s' cpu_dai for dai_links" to the asoc tree Mark Brown
[not found] ` <CGME20170906010417epcas2p1fa15cc68a8fb034f087b8103f6767f29@epcas2p1.samsung.com>
2017-09-06 1:04 ` [PATCH v2 3/3] ASoC: samsung: Fix invalid argument when devm_gpiod_get is called Jaechul Lee
2017-09-08 16:46 ` Krzysztof Kozlowski
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).