* [RESEND PATCH 00/10] ASoC: Intel: sof_sdw: Use fixed DAI link id
@ 2021-11-15 12:22 Bard Liao
2021-11-15 12:22 ` [RESEND PATCH 01/10] ASoC: intel: sof_sdw: return the original error number Bard Liao
` (10 more replies)
0 siblings, 11 replies; 12+ messages in thread
From: Bard Liao @ 2021-11-15 12:22 UTC (permalink / raw)
To: broonie, tiwai; +Cc: alsa-devel, pierre-louis.bossart, bard.liao
This series provides a way to use constant dailink numbers for different
devices. So that we don't need to renumber them in topologies.
Some patches with different purpose are sent together in this series
since they are dependent.
Bard Liao (8):
ASoC: intel: sof_sdw: return the original error number
ASoC: intel: sof_sdw: rename be_index/link_id to link_index
ASoC: intel: sof_sdw: Use a fixed DAI link id for AMP
ASoC: intel: sof_sdw: move DMIC link id overwrite to
create_sdw_dailink
ASoC: intel: sof_sdw: remove SOF_RT715_DAI_ID_FIX quirk
ASoC: intel: sof_sdw: remove sof_sdw_mic_codec_mockup_init
ASoC: intel: sof_sdw: remove get_next_be_id
ASoC: intel: sof_sdw: add link adr order check
Pierre-Louis Bossart (2):
ASoC: Intel: sof_sdw: fix jack detection on HP Spectre x360
convertible
ASoC: Intel: sof_sdw: add SKU for Dell Latitude 9520
sound/soc/intel/boards/sof_sdw.c | 152 ++++++++++----------
sound/soc/intel/boards/sof_sdw_common.h | 7 +-
sound/soc/intel/boards/sof_sdw_rt715.c | 7 -
sound/soc/intel/boards/sof_sdw_rt715_sdca.c | 7 -
4 files changed, 85 insertions(+), 88 deletions(-)
--
2.17.1
^ permalink raw reply [flat|nested] 12+ messages in thread
* [RESEND PATCH 01/10] ASoC: intel: sof_sdw: return the original error number
2021-11-15 12:22 [RESEND PATCH 00/10] ASoC: Intel: sof_sdw: Use fixed DAI link id Bard Liao
@ 2021-11-15 12:22 ` Bard Liao
2021-11-15 12:22 ` [RESEND PATCH 02/10] ASoC: Intel: sof_sdw: fix jack detection on HP Spectre x360 convertible Bard Liao
` (9 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Bard Liao @ 2021-11-15 12:22 UTC (permalink / raw)
To: broonie, tiwai; +Cc: alsa-devel, pierre-louis.bossart, bard.liao
We don't want to convert create_sdw_dailink()'s return value to -ENOMEM.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Rander Wang <rander.wang@intel.com>
---
sound/soc/intel/boards/sof_sdw.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/soc/intel/boards/sof_sdw.c b/sound/soc/intel/boards/sof_sdw.c
index 77219c3f8766..6d59462880fb 100644
--- a/sound/soc/intel/boards/sof_sdw.c
+++ b/sound/soc/intel/boards/sof_sdw.c
@@ -1203,7 +1203,7 @@ static int sof_card_dai_links_create(struct device *dev,
&ignore_pch_dmic);
if (ret < 0) {
dev_err(dev, "failed to create dai link %d", be_id);
- return -ENOMEM;
+ return ret;
}
}
--
2.17.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [RESEND PATCH 02/10] ASoC: Intel: sof_sdw: fix jack detection on HP Spectre x360 convertible
2021-11-15 12:22 [RESEND PATCH 00/10] ASoC: Intel: sof_sdw: Use fixed DAI link id Bard Liao
2021-11-15 12:22 ` [RESEND PATCH 01/10] ASoC: intel: sof_sdw: return the original error number Bard Liao
@ 2021-11-15 12:22 ` Bard Liao
2021-11-15 12:22 ` [RESEND PATCH 03/10] ASoC: Intel: sof_sdw: add SKU for Dell Latitude 9520 Bard Liao
` (8 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Bard Liao @ 2021-11-15 12:22 UTC (permalink / raw)
To: broonie, tiwai; +Cc: alsa-devel, pierre-louis.bossart, bard.liao
From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Tests on device show the JD2 mode does not work at all, the 'Headphone
Jack' and 'Headset Mic Jack' are shown as 'on' always.
JD1 seems to be the better option, with at least a change between the
two cases.
Jack not plugged-in:
[root@fedora ~]# amixer -Dhw:0 cget numid=12
numid=12,iface=CARD,name='Headphone Jack'
; type=BOOLEAN,access=r-------,values=1
: values=off
[root@fedora ~]# amixer -Dhw:0 cget numid=13
numid=13,iface=CARD,name='Headset Mic Jack'
; type=BOOLEAN,access=r-------,values=1
: values=off
Jack plugged-in:
[root@fedora ~]# amixer -Dhw:0 cget numid=13
numid=13,iface=CARD,name='Headset Mic Jack'
; type=BOOLEAN,access=r-------,values=1
: values=on
[root@fedora ~]# amixer -Dhw:0 cget numid=13
numid=13,iface=CARD,name='Headset Mic Jack'
; type=BOOLEAN,access=r-------,values=1
: values=on
The 'Headset Mic Jack' is updated with a delay which seems normal with
additional calibration needed.
Fixes: d92e279dee56 ('ASoC: Intel: sof_sdw: add quirk for HP Spectre x360 convertible')
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
---
sound/soc/intel/boards/sof_sdw.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sound/soc/intel/boards/sof_sdw.c b/sound/soc/intel/boards/sof_sdw.c
index 6d59462880fb..c5b1a1621fb5 100644
--- a/sound/soc/intel/boards/sof_sdw.c
+++ b/sound/soc/intel/boards/sof_sdw.c
@@ -188,7 +188,7 @@ static const struct dmi_system_id sof_sdw_quirk_table[] = {
},
.driver_data = (void *)(SOF_SDW_TGL_HDMI |
SOF_SDW_PCH_DMIC |
- RT711_JD2),
+ RT711_JD1),
},
{
/* NUC15 'Bishop County' LAPBC510 and LAPBC710 skews */
--
2.17.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [RESEND PATCH 03/10] ASoC: Intel: sof_sdw: add SKU for Dell Latitude 9520
2021-11-15 12:22 [RESEND PATCH 00/10] ASoC: Intel: sof_sdw: Use fixed DAI link id Bard Liao
2021-11-15 12:22 ` [RESEND PATCH 01/10] ASoC: intel: sof_sdw: return the original error number Bard Liao
2021-11-15 12:22 ` [RESEND PATCH 02/10] ASoC: Intel: sof_sdw: fix jack detection on HP Spectre x360 convertible Bard Liao
@ 2021-11-15 12:22 ` Bard Liao
2021-11-15 12:22 ` [RESEND PATCH 04/10] ASoC: intel: sof_sdw: rename be_index/link_id to link_index Bard Liao
` (7 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Bard Liao @ 2021-11-15 12:22 UTC (permalink / raw)
To: broonie, tiwai; +Cc: alsa-devel, pierre-louis.bossart, bard.liao
From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Different SKUs seem to be used for the same design.
BugLink: https://github.com/thesofproject/linux/issues/3206
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Reviewed-by: Kai Vehmanen <kai.vehmanen@intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
---
sound/soc/intel/boards/sof_sdw.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/sound/soc/intel/boards/sof_sdw.c b/sound/soc/intel/boards/sof_sdw.c
index c5b1a1621fb5..1c6c22cb7cab 100644
--- a/sound/soc/intel/boards/sof_sdw.c
+++ b/sound/soc/intel/boards/sof_sdw.c
@@ -129,6 +129,17 @@ static const struct dmi_system_id sof_sdw_quirk_table[] = {
RT711_JD2 |
SOF_RT715_DAI_ID_FIX),
},
+ {
+ /* another SKU of Dell Latitude 9520 */
+ .callback = sof_sdw_quirk_cb,
+ .matches = {
+ DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc"),
+ DMI_EXACT_MATCH(DMI_PRODUCT_SKU, "0A3F")
+ },
+ .driver_data = (void *)(SOF_SDW_TGL_HDMI |
+ RT711_JD2 |
+ SOF_RT715_DAI_ID_FIX),
+ },
{
/* Dell XPS 9710 */
.callback = sof_sdw_quirk_cb,
--
2.17.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [RESEND PATCH 04/10] ASoC: intel: sof_sdw: rename be_index/link_id to link_index
2021-11-15 12:22 [RESEND PATCH 00/10] ASoC: Intel: sof_sdw: Use fixed DAI link id Bard Liao
` (2 preceding siblings ...)
2021-11-15 12:22 ` [RESEND PATCH 03/10] ASoC: Intel: sof_sdw: add SKU for Dell Latitude 9520 Bard Liao
@ 2021-11-15 12:22 ` Bard Liao
2021-11-15 12:22 ` [RESEND PATCH 05/10] ASoC: intel: sof_sdw: Use a fixed DAI link id for AMP Bard Liao
` (6 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Bard Liao @ 2021-11-15 12:22 UTC (permalink / raw)
To: broonie, tiwai; +Cc: alsa-devel, pierre-louis.bossart, bard.liao
The link_id variable in sof_card_dai_links_create() and be_index argument
in create_sdw_dailink() is actually links' index. Rename them to link_index
to be consistent.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
---
sound/soc/intel/boards/sof_sdw.c | 48 +++++++++++++++++---------------
1 file changed, 25 insertions(+), 23 deletions(-)
diff --git a/sound/soc/intel/boards/sof_sdw.c b/sound/soc/intel/boards/sof_sdw.c
index 1c6c22cb7cab..2492cd3556a8 100644
--- a/sound/soc/intel/boards/sof_sdw.c
+++ b/sound/soc/intel/boards/sof_sdw.c
@@ -899,7 +899,7 @@ static int get_slave_info(const struct snd_soc_acpi_link_adr *adr_link,
}
static int create_sdw_dailink(struct snd_soc_card *card,
- struct device *dev, int *be_index,
+ struct device *dev, int *link_index,
struct snd_soc_dai_link *dai_links,
int sdw_be_num, int sdw_cpu_dai_num,
struct snd_soc_dai_link_component *cpus,
@@ -1002,8 +1002,12 @@ static int create_sdw_dailink(struct snd_soc_card *card,
cpus[cpu_dai_index++].dai_name = cpu_name;
}
- if (*be_index >= sdw_be_num) {
- dev_err(dev, " invalid be dai index %d", *be_index);
+ /*
+ * We create sdw dai links at first stage, so link index should
+ * not be larger than sdw_be_num
+ */
+ if (*link_index >= sdw_be_num) {
+ dev_err(dev, "invalid dai link index %d", *link_index);
return -EINVAL;
}
@@ -1014,18 +1018,19 @@ static int create_sdw_dailink(struct snd_soc_card *card,
playback = (stream == SNDRV_PCM_STREAM_PLAYBACK);
capture = (stream == SNDRV_PCM_STREAM_CAPTURE);
- init_dai_link(dev, dai_links + *be_index, *be_index, name,
+ init_dai_link(dev, dai_links + *link_index, *link_index, name,
playback, capture,
cpus + *cpu_id, cpu_dai_num,
codecs, codec_num,
NULL, &sdw_ops);
+
/*
* SoundWire DAILINKs use 'stream' functions and Bank Switch operations
* based on wait_for_completion(), tag them as 'nonatomic'.
*/
- dai_links[*be_index].nonatomic = true;
+ dai_links[*link_index].nonatomic = true;
- ret = set_codec_init_func(card, link, dai_links + (*be_index)++,
+ ret = set_codec_init_func(card, link, dai_links + (*link_index)++,
playback, group_id);
if (ret < 0) {
dev_err(dev, "failed to init codec %d", codec_index);
@@ -1106,7 +1111,7 @@ static int sof_card_dai_links_create(struct device *dev,
bool group_generated[SDW_MAX_GROUPS];
int ssp_codec_index, ssp_mask;
struct snd_soc_dai_link *links;
- int num_links, link_id = 0;
+ int num_links, link_index = 0;
char *name, *cpu_name;
int total_cpu_dai_num;
int sdw_cpu_dai_num;
@@ -1206,23 +1211,20 @@ static int sof_card_dai_links_create(struct device *dev,
group_generated[endpoint->group_id])
continue;
- ret = create_sdw_dailink(card, dev, &be_id, links, sdw_be_num,
+ ret = create_sdw_dailink(card, dev, &link_index, links, sdw_be_num,
sdw_cpu_dai_num, cpus, adr_link,
&cpu_id, group_generated,
codec_conf, codec_conf_count,
&codec_conf_index,
&ignore_pch_dmic);
if (ret < 0) {
- dev_err(dev, "failed to create dai link %d", be_id);
+ dev_err(dev, "failed to create dai link %d", link_index);
return ret;
}
}
- /* non-sdw DAI follows sdw DAI */
- link_id = be_id;
-
/* get BE ID for non-sdw DAI */
- be_id = get_next_be_id(links, be_id);
+ be_id = get_next_be_id(links, link_index);
SSP:
/* SSP */
@@ -1263,17 +1265,17 @@ static int sof_card_dai_links_create(struct device *dev,
playback = info->direction[SNDRV_PCM_STREAM_PLAYBACK];
capture = info->direction[SNDRV_PCM_STREAM_CAPTURE];
- init_dai_link(dev, links + link_id, be_id, name,
+ init_dai_link(dev, links + link_index, be_id, name,
playback, capture,
cpus + cpu_id, 1,
ssp_components, 1,
NULL, info->ops);
- ret = info->init(card, NULL, links + link_id, info, 0);
+ ret = info->init(card, NULL, links + link_index, info, 0);
if (ret < 0)
return ret;
- INC_ID(be_id, cpu_id, link_id);
+ INC_ID(be_id, cpu_id, link_index);
}
DMIC:
@@ -1284,21 +1286,21 @@ static int sof_card_dai_links_create(struct device *dev,
goto HDMI;
}
cpus[cpu_id].dai_name = "DMIC01 Pin";
- init_dai_link(dev, links + link_id, be_id, "dmic01",
+ init_dai_link(dev, links + link_index, be_id, "dmic01",
0, 1, // DMIC only supports capture
cpus + cpu_id, 1,
dmic_component, 1,
sof_sdw_dmic_init, NULL);
- INC_ID(be_id, cpu_id, link_id);
+ INC_ID(be_id, cpu_id, link_index);
cpus[cpu_id].dai_name = "DMIC16k Pin";
- init_dai_link(dev, links + link_id, be_id, "dmic16k",
+ init_dai_link(dev, links + link_index, be_id, "dmic16k",
0, 1, // DMIC only supports capture
cpus + cpu_id, 1,
dmic_component, 1,
/* don't call sof_sdw_dmic_init() twice */
NULL, NULL);
- INC_ID(be_id, cpu_id, link_id);
+ INC_ID(be_id, cpu_id, link_index);
}
HDMI:
@@ -1336,12 +1338,12 @@ static int sof_card_dai_links_create(struct device *dev,
return -ENOMEM;
cpus[cpu_id].dai_name = cpu_name;
- init_dai_link(dev, links + link_id, be_id, name,
+ init_dai_link(dev, links + link_index, be_id, name,
1, 0, // HDMI only supports playback
cpus + cpu_id, 1,
idisp_components + i, 1,
sof_sdw_hdmi_init, NULL);
- INC_ID(be_id, cpu_id, link_id);
+ INC_ID(be_id, cpu_id, link_index);
}
if (sof_sdw_quirk & SOF_SSP_BT_OFFLOAD_PRESENT) {
@@ -1365,7 +1367,7 @@ static int sof_card_dai_links_create(struct device *dev,
return -ENOMEM;
cpus[cpu_id].dai_name = cpu_name;
- init_dai_link(dev, links + link_id, be_id, name, 1, 1,
+ init_dai_link(dev, links + link_index, be_id, name, 1, 1,
cpus + cpu_id, 1, ssp_components, 1, NULL, NULL);
}
--
2.17.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [RESEND PATCH 05/10] ASoC: intel: sof_sdw: Use a fixed DAI link id for AMP
2021-11-15 12:22 [RESEND PATCH 00/10] ASoC: Intel: sof_sdw: Use fixed DAI link id Bard Liao
` (3 preceding siblings ...)
2021-11-15 12:22 ` [RESEND PATCH 04/10] ASoC: intel: sof_sdw: rename be_index/link_id to link_index Bard Liao
@ 2021-11-15 12:22 ` Bard Liao
2021-11-15 12:22 ` [RESEND PATCH 06/10] ASoC: intel: sof_sdw: move DMIC link id overwrite to create_sdw_dailink Bard Liao
` (5 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Bard Liao @ 2021-11-15 12:22 UTC (permalink / raw)
To: broonie, tiwai; +Cc: alsa-devel, pierre-louis.bossart, bard.liao
Currently, we assign SoundWire DAI link id according to the order in
the link address table, with the assumption that the headset codec is
listed first, then amplifiers and last capture devices. If the headset
codec is not present in a platform, the dai link for amplifiers will be
shifted, which can be handled in two ways
a) modify the topology to renumber the dailink changes
b) keep the dailink numbers constant in topology but also avoid the
variations in the machine driver.
This patch adds support for option b), the dailink index for amplifiers
and capture devices becomes fixed.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
---
sound/soc/intel/boards/sof_sdw.c | 26 ++++++++++++++++++++++---
sound/soc/intel/boards/sof_sdw_common.h | 6 ++++++
2 files changed, 29 insertions(+), 3 deletions(-)
diff --git a/sound/soc/intel/boards/sof_sdw.c b/sound/soc/intel/boards/sof_sdw.c
index 2492cd3556a8..1be5c4754337 100644
--- a/sound/soc/intel/boards/sof_sdw.c
+++ b/sound/soc/intel/boards/sof_sdw.c
@@ -462,6 +462,7 @@ static struct sof_sdw_codec_info codec_info_list[] = {
.direction = {true, true},
.dai_name = "rt700-aif1",
.init = sof_sdw_rt700_init,
+ .codec_type = SOF_SDW_CODEC_TYPE_JACK,
},
{
.part_id = 0x711,
@@ -470,6 +471,7 @@ static struct sof_sdw_codec_info codec_info_list[] = {
.dai_name = "rt711-sdca-aif1",
.init = sof_sdw_rt711_sdca_init,
.exit = sof_sdw_rt711_sdca_exit,
+ .codec_type = SOF_SDW_CODEC_TYPE_JACK,
},
{
.part_id = 0x711,
@@ -478,6 +480,7 @@ static struct sof_sdw_codec_info codec_info_list[] = {
.dai_name = "rt711-aif1",
.init = sof_sdw_rt711_init,
.exit = sof_sdw_rt711_exit,
+ .codec_type = SOF_SDW_CODEC_TYPE_JACK,
},
{
.part_id = 0x1308,
@@ -486,12 +489,14 @@ static struct sof_sdw_codec_info codec_info_list[] = {
.dai_name = "rt1308-aif",
.ops = &sof_sdw_rt1308_i2s_ops,
.init = sof_sdw_rt1308_init,
+ .codec_type = SOF_SDW_CODEC_TYPE_AMP,
},
{
.part_id = 0x1316,
.direction = {true, true},
.dai_name = "rt1316-aif",
.init = sof_sdw_rt1316_init,
+ .codec_type = SOF_SDW_CODEC_TYPE_AMP,
},
{
.part_id = 0x714,
@@ -500,6 +505,7 @@ static struct sof_sdw_codec_info codec_info_list[] = {
.ignore_pch_dmic = true,
.dai_name = "rt715-aif2",
.init = sof_sdw_rt715_sdca_init,
+ .codec_type = SOF_SDW_CODEC_TYPE_MIC,
},
{
.part_id = 0x715,
@@ -508,6 +514,7 @@ static struct sof_sdw_codec_info codec_info_list[] = {
.ignore_pch_dmic = true,
.dai_name = "rt715-aif2",
.init = sof_sdw_rt715_sdca_init,
+ .codec_type = SOF_SDW_CODEC_TYPE_MIC,
},
{
.part_id = 0x714,
@@ -516,6 +523,7 @@ static struct sof_sdw_codec_info codec_info_list[] = {
.ignore_pch_dmic = true,
.dai_name = "rt715-aif2",
.init = sof_sdw_rt715_init,
+ .codec_type = SOF_SDW_CODEC_TYPE_MIC,
},
{
.part_id = 0x715,
@@ -524,6 +532,7 @@ static struct sof_sdw_codec_info codec_info_list[] = {
.ignore_pch_dmic = true,
.dai_name = "rt715-aif2",
.init = sof_sdw_rt715_init,
+ .codec_type = SOF_SDW_CODEC_TYPE_MIC,
},
{
.part_id = 0x8373,
@@ -531,12 +540,14 @@ static struct sof_sdw_codec_info codec_info_list[] = {
.dai_name = "max98373-aif1",
.init = sof_sdw_mx8373_init,
.codec_card_late_probe = sof_sdw_mx8373_late_probe,
+ .codec_type = SOF_SDW_CODEC_TYPE_AMP,
},
{
.part_id = 0x5682,
.direction = {true, true},
.dai_name = "rt5682-sdw",
.init = sof_sdw_rt5682_init,
+ .codec_type = SOF_SDW_CODEC_TYPE_JACK,
},
{
.part_id = 0xaaaa, /* generic codec mockup */
@@ -544,6 +555,7 @@ static struct sof_sdw_codec_info codec_info_list[] = {
.direction = {true, true},
.dai_name = "sdw-mockup-aif1",
.init = NULL,
+ .codec_type = SOF_SDW_CODEC_TYPE_JACK,
},
{
.part_id = 0xaa55, /* headset codec mockup */
@@ -551,6 +563,7 @@ static struct sof_sdw_codec_info codec_info_list[] = {
.direction = {true, true},
.dai_name = "sdw-mockup-aif1",
.init = NULL,
+ .codec_type = SOF_SDW_CODEC_TYPE_JACK,
},
{
.part_id = 0x55aa, /* amplifier mockup */
@@ -558,6 +571,7 @@ static struct sof_sdw_codec_info codec_info_list[] = {
.direction = {true, false},
.dai_name = "sdw-mockup-aif1",
.init = NULL,
+ .codec_type = SOF_SDW_CODEC_TYPE_AMP,
},
{
.part_id = 0x5555,
@@ -565,6 +579,7 @@ static struct sof_sdw_codec_info codec_info_list[] = {
.direction = {false, true},
.dai_name = "sdw-mockup-aif1",
.init = sof_sdw_mic_codec_mockup_init,
+ .codec_type = SOF_SDW_CODEC_TYPE_MIC,
},
};
@@ -906,7 +921,7 @@ static int create_sdw_dailink(struct snd_soc_card *card,
const struct snd_soc_acpi_link_adr *link,
int *cpu_id, bool *group_generated,
struct snd_soc_codec_conf *codec_conf,
- int codec_count,
+ int codec_count, int *link_id,
int *codec_conf_index,
bool *ignore_pch_dmic)
{
@@ -964,6 +979,11 @@ static int create_sdw_dailink(struct snd_soc_card *card,
if (codec_info_list[codec_index].ignore_pch_dmic)
*ignore_pch_dmic = true;
+ /* Shift the first amplifier's *link_id to SDW_AMP_DAI_ID */
+ if (codec_info_list[codec_index].codec_type == SOF_SDW_CODEC_TYPE_AMP &&
+ *link_id < SDW_AMP_DAI_ID)
+ *link_id = SDW_AMP_DAI_ID;
+
cpu_dai_index = *cpu_id;
for_each_pcm_streams(stream) {
char *name, *cpu_name;
@@ -1018,7 +1038,7 @@ static int create_sdw_dailink(struct snd_soc_card *card,
playback = (stream == SNDRV_PCM_STREAM_PLAYBACK);
capture = (stream == SNDRV_PCM_STREAM_CAPTURE);
- init_dai_link(dev, dai_links + *link_index, *link_index, name,
+ init_dai_link(dev, dai_links + *link_index, (*link_id)++, name,
playback, capture,
cpus + *cpu_id, cpu_dai_num,
codecs, codec_num,
@@ -1215,7 +1235,7 @@ static int sof_card_dai_links_create(struct device *dev,
sdw_cpu_dai_num, cpus, adr_link,
&cpu_id, group_generated,
codec_conf, codec_conf_count,
- &codec_conf_index,
+ &be_id, &codec_conf_index,
&ignore_pch_dmic);
if (ret < 0) {
dev_err(dev, "failed to create dai link %d", link_index);
diff --git a/sound/soc/intel/boards/sof_sdw_common.h b/sound/soc/intel/boards/sof_sdw_common.h
index b35f5a9b96f5..c6200aa14089 100644
--- a/sound/soc/intel/boards/sof_sdw_common.h
+++ b/sound/soc/intel/boards/sof_sdw_common.h
@@ -15,6 +15,7 @@
#define MAX_NO_PROPS 2
#define MAX_HDMI_NUM 4
+#define SDW_AMP_DAI_ID 2
#define SDW_DMIC_DAI_ID 4
#define SDW_MAX_CPU_DAIS 16
#define SDW_INTEL_BIDIR_PDI_BASE 2
@@ -52,9 +53,14 @@ enum {
(((quirk) << SOF_BT_OFFLOAD_SSP_SHIFT) & SOF_BT_OFFLOAD_SSP_MASK)
#define SOF_SSP_BT_OFFLOAD_PRESENT BIT(18)
+#define SOF_SDW_CODEC_TYPE_JACK 0
+#define SOF_SDW_CODEC_TYPE_AMP 1
+#define SOF_SDW_CODEC_TYPE_MIC 2
+
struct sof_sdw_codec_info {
const int part_id;
const int version_id;
+ const int codec_type;
int amp_num;
const u8 acpi_id[ACPI_ID_LEN];
const bool direction[2]; // playback & capture support
--
2.17.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [RESEND PATCH 06/10] ASoC: intel: sof_sdw: move DMIC link id overwrite to create_sdw_dailink
2021-11-15 12:22 [RESEND PATCH 00/10] ASoC: Intel: sof_sdw: Use fixed DAI link id Bard Liao
` (4 preceding siblings ...)
2021-11-15 12:22 ` [RESEND PATCH 05/10] ASoC: intel: sof_sdw: Use a fixed DAI link id for AMP Bard Liao
@ 2021-11-15 12:22 ` Bard Liao
2021-11-15 12:22 ` [RESEND PATCH 07/10] ASoC: intel: sof_sdw: remove SOF_RT715_DAI_ID_FIX quirk Bard Liao
` (4 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Bard Liao @ 2021-11-15 12:22 UTC (permalink / raw)
To: broonie, tiwai; +Cc: alsa-devel, pierre-louis.bossart, bard.liao
We can apply the fixed dai link id for DMICs in create_sdw_dailink().
No need to set it in each DMIC's callback.
The fixed dai link id is not only for rt715 and rt715-sdca, but for all
DMICs, therefore we remove the SOF_RT715_DAI_ID_FIX check as well.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
---
sound/soc/intel/boards/sof_sdw.c | 8 ++++++++
sound/soc/intel/boards/sof_sdw_rt715.c | 7 -------
sound/soc/intel/boards/sof_sdw_rt715_sdca.c | 7 -------
3 files changed, 8 insertions(+), 14 deletions(-)
diff --git a/sound/soc/intel/boards/sof_sdw.c b/sound/soc/intel/boards/sof_sdw.c
index 1be5c4754337..b00c1731c2c3 100644
--- a/sound/soc/intel/boards/sof_sdw.c
+++ b/sound/soc/intel/boards/sof_sdw.c
@@ -984,6 +984,14 @@ static int create_sdw_dailink(struct snd_soc_card *card,
*link_id < SDW_AMP_DAI_ID)
*link_id = SDW_AMP_DAI_ID;
+ /*
+ * DAI ID is fixed at SDW_DMIC_DAI_ID for MICs to
+ * keep sdw DMIC and HDMI setting static in UCM
+ */
+ if (codec_info_list[codec_index].codec_type == SOF_SDW_CODEC_TYPE_MIC &&
+ *link_id < SDW_DMIC_DAI_ID)
+ *link_id = SDW_DMIC_DAI_ID;
+
cpu_dai_index = *cpu_id;
for_each_pcm_streams(stream) {
char *name, *cpu_name;
diff --git a/sound/soc/intel/boards/sof_sdw_rt715.c b/sound/soc/intel/boards/sof_sdw_rt715.c
index c8af3780cbc3..7c068dc6b9cf 100644
--- a/sound/soc/intel/boards/sof_sdw_rt715.c
+++ b/sound/soc/intel/boards/sof_sdw_rt715.c
@@ -30,13 +30,6 @@ int sof_sdw_rt715_init(struct snd_soc_card *card,
struct sof_sdw_codec_info *info,
bool playback)
{
- /*
- * DAI ID is fixed at SDW_DMIC_DAI_ID for 715 to
- * keep sdw DMIC and HDMI setting static in UCM
- */
- if (sof_sdw_quirk & SOF_RT715_DAI_ID_FIX)
- dai_links->id = SDW_DMIC_DAI_ID;
-
dai_links->init = rt715_rtd_init;
return 0;
diff --git a/sound/soc/intel/boards/sof_sdw_rt715_sdca.c b/sound/soc/intel/boards/sof_sdw_rt715_sdca.c
index 85d3d8c355cc..ca0cf3db2e4d 100644
--- a/sound/soc/intel/boards/sof_sdw_rt715_sdca.c
+++ b/sound/soc/intel/boards/sof_sdw_rt715_sdca.c
@@ -30,13 +30,6 @@ int sof_sdw_rt715_sdca_init(struct snd_soc_card *card,
struct sof_sdw_codec_info *info,
bool playback)
{
- /*
- * DAI ID is fixed at SDW_DMIC_DAI_ID for 715-SDCA to
- * keep sdw DMIC and HDMI setting static in UCM
- */
- if (sof_sdw_quirk & SOF_RT715_DAI_ID_FIX)
- dai_links->id = SDW_DMIC_DAI_ID;
-
dai_links->init = rt715_sdca_rtd_init;
return 0;
--
2.17.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [RESEND PATCH 07/10] ASoC: intel: sof_sdw: remove SOF_RT715_DAI_ID_FIX quirk
2021-11-15 12:22 [RESEND PATCH 00/10] ASoC: Intel: sof_sdw: Use fixed DAI link id Bard Liao
` (5 preceding siblings ...)
2021-11-15 12:22 ` [RESEND PATCH 06/10] ASoC: intel: sof_sdw: move DMIC link id overwrite to create_sdw_dailink Bard Liao
@ 2021-11-15 12:22 ` Bard Liao
2021-11-15 12:22 ` [RESEND PATCH 08/10] ASoC: intel: sof_sdw: remove sof_sdw_mic_codec_mockup_init Bard Liao
` (3 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Bard Liao @ 2021-11-15 12:22 UTC (permalink / raw)
To: broonie, tiwai; +Cc: alsa-devel, pierre-louis.bossart, bard.liao
SOF_RT715_DAI_ID_FIX is not used anywhere. Remove it.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
---
sound/soc/intel/boards/sof_sdw.c | 23 +++++------------------
sound/soc/intel/boards/sof_sdw_common.h | 1 -
2 files changed, 5 insertions(+), 19 deletions(-)
diff --git a/sound/soc/intel/boards/sof_sdw.c b/sound/soc/intel/boards/sof_sdw.c
index b00c1731c2c3..72bc7da2d21e 100644
--- a/sound/soc/intel/boards/sof_sdw.c
+++ b/sound/soc/intel/boards/sof_sdw.c
@@ -36,8 +36,6 @@ static void log_quirks(struct device *dev)
if (SOF_SSP_GET_PORT(sof_sdw_quirk))
dev_dbg(dev, "SSP port %ld\n",
SOF_SSP_GET_PORT(sof_sdw_quirk));
- if (sof_sdw_quirk & SOF_RT715_DAI_ID_FIX)
- dev_dbg(dev, "quirk SOF_RT715_DAI_ID_FIX enabled\n");
if (sof_sdw_quirk & SOF_SDW_NO_AGGREGATION)
dev_dbg(dev, "quirk SOF_SDW_NO_AGGREGATION enabled\n");
}
@@ -64,8 +62,7 @@ static const struct dmi_system_id sof_sdw_quirk_table[] = {
DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc"),
DMI_EXACT_MATCH(DMI_PRODUCT_SKU, "09C6")
},
- .driver_data = (void *)(RT711_JD2 |
- SOF_RT715_DAI_ID_FIX),
+ .driver_data = (void *)RT711_JD2,
},
{
/* early version of SKU 09C6 */
@@ -74,8 +71,7 @@ static const struct dmi_system_id sof_sdw_quirk_table[] = {
DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc"),
DMI_EXACT_MATCH(DMI_PRODUCT_SKU, "0983")
},
- .driver_data = (void *)(RT711_JD2 |
- SOF_RT715_DAI_ID_FIX),
+ .driver_data = (void *)RT711_JD2,
},
{
.callback = sof_sdw_quirk_cb,
@@ -84,7 +80,6 @@ static const struct dmi_system_id sof_sdw_quirk_table[] = {
DMI_EXACT_MATCH(DMI_PRODUCT_SKU, "098F"),
},
.driver_data = (void *)(RT711_JD2 |
- SOF_RT715_DAI_ID_FIX |
SOF_SDW_FOUR_SPK),
},
{
@@ -94,7 +89,6 @@ static const struct dmi_system_id sof_sdw_quirk_table[] = {
DMI_EXACT_MATCH(DMI_PRODUCT_SKU, "0990"),
},
.driver_data = (void *)(RT711_JD2 |
- SOF_RT715_DAI_ID_FIX |
SOF_SDW_FOUR_SPK),
},
/* IceLake devices */
@@ -126,8 +120,7 @@ static const struct dmi_system_id sof_sdw_quirk_table[] = {
DMI_EXACT_MATCH(DMI_PRODUCT_SKU, "0A3E")
},
.driver_data = (void *)(SOF_SDW_TGL_HDMI |
- RT711_JD2 |
- SOF_RT715_DAI_ID_FIX),
+ RT711_JD2),
},
{
/* another SKU of Dell Latitude 9520 */
@@ -137,8 +130,7 @@ static const struct dmi_system_id sof_sdw_quirk_table[] = {
DMI_EXACT_MATCH(DMI_PRODUCT_SKU, "0A3F")
},
.driver_data = (void *)(SOF_SDW_TGL_HDMI |
- RT711_JD2 |
- SOF_RT715_DAI_ID_FIX),
+ RT711_JD2),
},
{
/* Dell XPS 9710 */
@@ -149,7 +141,6 @@ static const struct dmi_system_id sof_sdw_quirk_table[] = {
},
.driver_data = (void *)(SOF_SDW_TGL_HDMI |
RT711_JD2 |
- SOF_RT715_DAI_ID_FIX |
SOF_SDW_FOUR_SPK),
},
{
@@ -160,7 +151,6 @@ static const struct dmi_system_id sof_sdw_quirk_table[] = {
},
.driver_data = (void *)(SOF_SDW_TGL_HDMI |
RT711_JD2 |
- SOF_RT715_DAI_ID_FIX |
SOF_SDW_FOUR_SPK),
},
{
@@ -221,7 +211,6 @@ static const struct dmi_system_id sof_sdw_quirk_table[] = {
},
.driver_data = (void *)(SOF_SDW_TGL_HDMI |
RT711_JD2 |
- SOF_RT715_DAI_ID_FIX |
SOF_SDW_FOUR_SPK),
},
{
@@ -231,8 +220,7 @@ static const struct dmi_system_id sof_sdw_quirk_table[] = {
DMI_EXACT_MATCH(DMI_PRODUCT_SKU, "0A45")
},
.driver_data = (void *)(SOF_SDW_TGL_HDMI |
- RT711_JD2 |
- SOF_RT715_DAI_ID_FIX),
+ RT711_JD2),
},
/* AlderLake devices */
{
@@ -243,7 +231,6 @@ static const struct dmi_system_id sof_sdw_quirk_table[] = {
},
.driver_data = (void *)(RT711_JD2_100K |
SOF_SDW_TGL_HDMI |
- SOF_RT715_DAI_ID_FIX |
SOF_BT_OFFLOAD_SSP(2) |
SOF_SSP_BT_OFFLOAD_PRESENT),
},
diff --git a/sound/soc/intel/boards/sof_sdw_common.h b/sound/soc/intel/boards/sof_sdw_common.h
index c6200aa14089..e2457738a332 100644
--- a/sound/soc/intel/boards/sof_sdw_common.h
+++ b/sound/soc/intel/boards/sof_sdw_common.h
@@ -43,7 +43,6 @@ enum {
#define SOF_SDW_PCH_DMIC BIT(6)
#define SOF_SSP_PORT(x) (((x) & GENMASK(5, 0)) << 7)
#define SOF_SSP_GET_PORT(quirk) (((quirk) >> 7) & GENMASK(5, 0))
-#define SOF_RT715_DAI_ID_FIX BIT(13)
#define SOF_SDW_NO_AGGREGATION BIT(14)
/* BT audio offload: reserve 3 bits for future */
--
2.17.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [RESEND PATCH 08/10] ASoC: intel: sof_sdw: remove sof_sdw_mic_codec_mockup_init
2021-11-15 12:22 [RESEND PATCH 00/10] ASoC: Intel: sof_sdw: Use fixed DAI link id Bard Liao
` (6 preceding siblings ...)
2021-11-15 12:22 ` [RESEND PATCH 07/10] ASoC: intel: sof_sdw: remove SOF_RT715_DAI_ID_FIX quirk Bard Liao
@ 2021-11-15 12:22 ` Bard Liao
2021-11-15 12:22 ` [RESEND PATCH 09/10] ASoC: intel: sof_sdw: remove get_next_be_id Bard Liao
` (2 subsequent siblings)
10 siblings, 0 replies; 12+ messages in thread
From: Bard Liao @ 2021-11-15 12:22 UTC (permalink / raw)
To: broonie, tiwai; +Cc: alsa-devel, pierre-louis.bossart, bard.liao
Now, we set DAI link id as SDW_DMIC_DAI_ID for all DMICs.
No need to set it in sof_sdw_mic_codec_mockup_init.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
---
sound/soc/intel/boards/sof_sdw.c | 15 ---------------
1 file changed, 15 deletions(-)
diff --git a/sound/soc/intel/boards/sof_sdw.c b/sound/soc/intel/boards/sof_sdw.c
index 72bc7da2d21e..aac493aea002 100644
--- a/sound/soc/intel/boards/sof_sdw.c
+++ b/sound/soc/intel/boards/sof_sdw.c
@@ -429,20 +429,6 @@ static const struct snd_soc_ops sdw_ops = {
.shutdown = sdw_shutdown,
};
-static int sof_sdw_mic_codec_mockup_init(struct snd_soc_card *card,
- const struct snd_soc_acpi_link_adr *link,
- struct snd_soc_dai_link *dai_links,
- struct sof_sdw_codec_info *info,
- bool playback)
-{
- /*
- * force DAI link to use same ID as RT715 and DMIC
- * to reuse topologies
- */
- dai_links->id = SDW_DMIC_DAI_ID;
- return 0;
-}
-
static struct sof_sdw_codec_info codec_info_list[] = {
{
.part_id = 0x700,
@@ -565,7 +551,6 @@ static struct sof_sdw_codec_info codec_info_list[] = {
.version_id = 0,
.direction = {false, true},
.dai_name = "sdw-mockup-aif1",
- .init = sof_sdw_mic_codec_mockup_init,
.codec_type = SOF_SDW_CODEC_TYPE_MIC,
},
};
--
2.17.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [RESEND PATCH 09/10] ASoC: intel: sof_sdw: remove get_next_be_id
2021-11-15 12:22 [RESEND PATCH 00/10] ASoC: Intel: sof_sdw: Use fixed DAI link id Bard Liao
` (7 preceding siblings ...)
2021-11-15 12:22 ` [RESEND PATCH 08/10] ASoC: intel: sof_sdw: remove sof_sdw_mic_codec_mockup_init Bard Liao
@ 2021-11-15 12:22 ` Bard Liao
2021-11-15 12:22 ` [RESEND PATCH 10/10] ASoC: intel: sof_sdw: add link adr order check Bard Liao
2021-11-15 13:26 ` [RESEND PATCH 00/10] ASoC: Intel: sof_sdw: Use fixed DAI link id Mark Brown
10 siblings, 0 replies; 12+ messages in thread
From: Bard Liao @ 2021-11-15 12:22 UTC (permalink / raw)
To: broonie, tiwai; +Cc: alsa-devel, pierre-louis.bossart, bard.liao
DAI link id will not be set from sdw codec init feedback function,
and be_id is changed by create_sdw_dailink() now. So we don't need
get_next_be_id() anymore.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
---
sound/soc/intel/boards/sof_sdw.c | 14 --------------
1 file changed, 14 deletions(-)
diff --git a/sound/soc/intel/boards/sof_sdw.c b/sound/soc/intel/boards/sof_sdw.c
index aac493aea002..df29f7b478a4 100644
--- a/sound/soc/intel/boards/sof_sdw.c
+++ b/sound/soc/intel/boards/sof_sdw.c
@@ -1044,17 +1044,6 @@ static int create_sdw_dailink(struct snd_soc_card *card,
return 0;
}
-/*
- * DAI link ID of SSP & DMIC & HDMI are based on last
- * link ID used by sdw link. Since be_id may be changed
- * in init func of sdw codec, it is not equal to be_id
- */
-static inline int get_next_be_id(struct snd_soc_dai_link *links,
- int be_id)
-{
- return links[be_id - 1].id + 1;
-}
-
#define IDISP_CODEC_MASK 0x4
static int sof_card_codec_conf_alloc(struct device *dev,
@@ -1223,9 +1212,6 @@ static int sof_card_dai_links_create(struct device *dev,
}
}
- /* get BE ID for non-sdw DAI */
- be_id = get_next_be_id(links, link_index);
-
SSP:
/* SSP */
if (!ssp_num)
--
2.17.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [RESEND PATCH 10/10] ASoC: intel: sof_sdw: add link adr order check
2021-11-15 12:22 [RESEND PATCH 00/10] ASoC: Intel: sof_sdw: Use fixed DAI link id Bard Liao
` (8 preceding siblings ...)
2021-11-15 12:22 ` [RESEND PATCH 09/10] ASoC: intel: sof_sdw: remove get_next_be_id Bard Liao
@ 2021-11-15 12:22 ` Bard Liao
2021-11-15 13:26 ` [RESEND PATCH 00/10] ASoC: Intel: sof_sdw: Use fixed DAI link id Mark Brown
10 siblings, 0 replies; 12+ messages in thread
From: Bard Liao @ 2021-11-15 12:22 UTC (permalink / raw)
To: broonie, tiwai; +Cc: alsa-devel, pierre-louis.bossart, bard.liao
We assume the adr order described in a snd_soc_acpi_link_adr array is
jack -> amp -> mic. We follow the same order to implement the topology.
We will need a special topology if we configure a snd_soc_acpi_link_adr
array with different order. Adding a check and a warning message can
remind people to keep the order when adding a new snd_soc_acpi_link_adr
array.
Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com>
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
---
sound/soc/intel/boards/sof_sdw.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/sound/soc/intel/boards/sof_sdw.c b/sound/soc/intel/boards/sof_sdw.c
index df29f7b478a4..de303a980879 100644
--- a/sound/soc/intel/boards/sof_sdw.c
+++ b/sound/soc/intel/boards/sof_sdw.c
@@ -599,10 +599,11 @@ static inline int find_codec_info_acpi(const u8 *acpi_id)
* Since some sdw slaves may be aggregated, the CPU DAI number
* may be larger than the number of BE dailinks.
*/
-static int get_sdw_dailink_info(const struct snd_soc_acpi_link_adr *links,
+static int get_sdw_dailink_info(struct device *dev, const struct snd_soc_acpi_link_adr *links,
int *sdw_be_num, int *sdw_cpu_dai_num)
{
const struct snd_soc_acpi_link_adr *link;
+ int _codec_type = SOF_SDW_CODEC_TYPE_JACK;
bool group_visited[SDW_MAX_GROUPS];
bool no_aggregation;
int i;
@@ -628,6 +629,12 @@ static int get_sdw_dailink_info(const struct snd_soc_acpi_link_adr *links,
if (codec_index < 0)
return codec_index;
+ if (codec_info_list[codec_index].codec_type < _codec_type)
+ dev_warn(dev,
+ "Unexpected address table ordering. Expected order: jack -> amp -> mic\n");
+
+ _codec_type = codec_info_list[codec_index].codec_type;
+
endpoint = link->adr_d->endpoints;
/* count DAI number for playback and capture */
@@ -1136,7 +1143,7 @@ static int sof_card_dai_links_create(struct device *dev,
ssp_num = ssp_codec_index >= 0 ? hweight_long(ssp_mask) : 0;
comp_num = hdmi_num + ssp_num;
- ret = get_sdw_dailink_info(mach_params->links,
+ ret = get_sdw_dailink_info(dev, mach_params->links,
&sdw_be_num, &sdw_cpu_dai_num);
if (ret < 0) {
dev_err(dev, "failed to get sdw link info %d", ret);
--
2.17.1
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [RESEND PATCH 00/10] ASoC: Intel: sof_sdw: Use fixed DAI link id
2021-11-15 12:22 [RESEND PATCH 00/10] ASoC: Intel: sof_sdw: Use fixed DAI link id Bard Liao
` (9 preceding siblings ...)
2021-11-15 12:22 ` [RESEND PATCH 10/10] ASoC: intel: sof_sdw: add link adr order check Bard Liao
@ 2021-11-15 13:26 ` Mark Brown
10 siblings, 0 replies; 12+ messages in thread
From: Mark Brown @ 2021-11-15 13:26 UTC (permalink / raw)
To: Bard Liao; +Cc: tiwai, alsa-devel, pierre-louis.bossart, bard.liao
[-- Attachment #1: Type: text/plain, Size: 425 bytes --]
On Mon, Nov 15, 2021 at 08:22:31PM +0800, Bard Liao wrote:
> This series provides a way to use constant dailink numbers for different
> devices. So that we don't need to renumber them in topologies.
> Some patches with different purpose are sent together in this series
> since they are dependent.
AFAICT this is the same patch series you sent just before the merge
window which hadn't been applied due to the merge window.
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2021-11-15 13:27 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-15 12:22 [RESEND PATCH 00/10] ASoC: Intel: sof_sdw: Use fixed DAI link id Bard Liao
2021-11-15 12:22 ` [RESEND PATCH 01/10] ASoC: intel: sof_sdw: return the original error number Bard Liao
2021-11-15 12:22 ` [RESEND PATCH 02/10] ASoC: Intel: sof_sdw: fix jack detection on HP Spectre x360 convertible Bard Liao
2021-11-15 12:22 ` [RESEND PATCH 03/10] ASoC: Intel: sof_sdw: add SKU for Dell Latitude 9520 Bard Liao
2021-11-15 12:22 ` [RESEND PATCH 04/10] ASoC: intel: sof_sdw: rename be_index/link_id to link_index Bard Liao
2021-11-15 12:22 ` [RESEND PATCH 05/10] ASoC: intel: sof_sdw: Use a fixed DAI link id for AMP Bard Liao
2021-11-15 12:22 ` [RESEND PATCH 06/10] ASoC: intel: sof_sdw: move DMIC link id overwrite to create_sdw_dailink Bard Liao
2021-11-15 12:22 ` [RESEND PATCH 07/10] ASoC: intel: sof_sdw: remove SOF_RT715_DAI_ID_FIX quirk Bard Liao
2021-11-15 12:22 ` [RESEND PATCH 08/10] ASoC: intel: sof_sdw: remove sof_sdw_mic_codec_mockup_init Bard Liao
2021-11-15 12:22 ` [RESEND PATCH 09/10] ASoC: intel: sof_sdw: remove get_next_be_id Bard Liao
2021-11-15 12:22 ` [RESEND PATCH 10/10] ASoC: intel: sof_sdw: add link adr order check Bard Liao
2021-11-15 13:26 ` [RESEND PATCH 00/10] ASoC: Intel: sof_sdw: Use fixed DAI link id Mark Brown
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.