|
Pablo Greco |
d6c4c4 |
From 89be5f69889f7e9aeab05279869bba3e9e0d2002 Mon Sep 17 00:00:00 2001
|
|
Pablo Greco |
d6c4c4 |
From: Jaroslav Kysela <perex@perex.cz>
|
|
Pablo Greco |
d6c4c4 |
Date: Wed, 4 Dec 2019 15:15:45 -0600
|
|
Pablo Greco |
d6c4c4 |
Subject: [PATCH 2/4] ASoC: Intel - use control components to describe card
|
|
Pablo Greco |
d6c4c4 |
config
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
Use the control interface (field 'components' in the info structure)
|
|
Pablo Greco |
d6c4c4 |
to pass the I/O configuration details. The goal is to replace
|
|
Pablo Greco |
d6c4c4 |
the card long name with this.
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
|
Pablo Greco |
d6c4c4 |
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
|
|
Pablo Greco |
d6c4c4 |
Cc: Mark Brown <broonie@kernel.org>
|
|
Pablo Greco |
d6c4c4 |
Link: https://lore.kernel.org/r/20191204211556.12671-3-pierre-louis.bossart@linux.intel.com
|
|
Pablo Greco |
d6c4c4 |
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
|
|
Pablo Greco |
d6c4c4 |
(cherry picked from commit 0d5c8187562848b619a35f2ffc5e18ce703e9f3d)
|
|
Pablo Greco |
d6c4c4 |
Bugzilla: 1772498
|
|
Pablo Greco |
d6c4c4 |
---
|
|
Pablo Greco |
d6c4c4 |
sound/soc/intel/boards/bytcht_es8316.c | 9 ++++++++-
|
|
Pablo Greco |
d6c4c4 |
sound/soc/intel/boards/bytcr_rt5640.c | 6 ++++++
|
|
Pablo Greco |
d6c4c4 |
sound/soc/intel/boards/bytcr_rt5651.c | 18 +++++++++++-------
|
|
Pablo Greco |
d6c4c4 |
3 files changed, 25 insertions(+), 8 deletions(-)
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
diff --git a/sound/soc/intel/boards/bytcht_es8316.c b/sound/soc/intel/boards/bytcht_es8316.c
|
|
Pablo Greco |
d6c4c4 |
index 46612331f5ea..efa33f30dcac 100644
|
|
Pablo Greco |
d6c4c4 |
--- a/sound/soc/intel/boards/bytcht_es8316.c
|
|
Pablo Greco |
d6c4c4 |
+++ b/sound/soc/intel/boards/bytcht_es8316.c
|
|
Pablo Greco |
d6c4c4 |
@@ -361,6 +361,7 @@ static struct snd_soc_dai_link byt_cht_es8316_dais[] = {
|
|
Pablo Greco |
d6c4c4 |
/* SoC card */
|
|
Pablo Greco |
d6c4c4 |
static char codec_name[SND_ACPI_I2C_ID_LEN];
|
|
Pablo Greco |
d6c4c4 |
static char long_name[50]; /* = "bytcht-es8316-*-spk-*-mic" */
|
|
Pablo Greco |
d6c4c4 |
+static char components_string[32]; /* = "cfg-spk:* cfg-mic:* */
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
static int byt_cht_es8316_suspend(struct snd_soc_card *card)
|
|
Pablo Greco |
d6c4c4 |
{
|
|
Pablo Greco |
d6c4c4 |
@@ -572,11 +573,17 @@ static int snd_byt_cht_es8316_mc_probe(struct platform_device *pdev)
|
|
Pablo Greco |
d6c4c4 |
}
|
|
Pablo Greco |
d6c4c4 |
}
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
- /* register the soc card */
|
|
Pablo Greco |
d6c4c4 |
+ snprintf(components_string, sizeof(components_string),
|
|
Pablo Greco |
d6c4c4 |
+ "cfg-spk:%s cfg-mic:%s",
|
|
Pablo Greco |
d6c4c4 |
+ (quirk & BYT_CHT_ES8316_MONO_SPEAKER) ? "1" : "2",
|
|
Pablo Greco |
d6c4c4 |
+ mic_name[BYT_CHT_ES8316_MAP(quirk)]);
|
|
Pablo Greco |
d6c4c4 |
+ byt_cht_es8316_card.components = components_string;
|
|
Pablo Greco |
d6c4c4 |
snprintf(long_name, sizeof(long_name), "bytcht-es8316-%s-spk-%s-mic",
|
|
Pablo Greco |
d6c4c4 |
(quirk & BYT_CHT_ES8316_MONO_SPEAKER) ? "mono" : "stereo",
|
|
Pablo Greco |
d6c4c4 |
mic_name[BYT_CHT_ES8316_MAP(quirk)]);
|
|
Pablo Greco |
d6c4c4 |
byt_cht_es8316_card.long_name = long_name;
|
|
Pablo Greco |
d6c4c4 |
+
|
|
Pablo Greco |
d6c4c4 |
+ /* register the soc card */
|
|
Pablo Greco |
d6c4c4 |
snd_soc_card_set_drvdata(&byt_cht_es8316_card, priv);
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
ret = devm_snd_soc_register_card(dev, &byt_cht_es8316_card);
|
|
Pablo Greco |
d6c4c4 |
diff --git a/sound/soc/intel/boards/bytcr_rt5640.c b/sound/soc/intel/boards/bytcr_rt5640.c
|
|
Pablo Greco |
d6c4c4 |
index dd2b5ad08659..7bc6d3cec94c 100644
|
|
Pablo Greco |
d6c4c4 |
--- a/sound/soc/intel/boards/bytcr_rt5640.c
|
|
Pablo Greco |
d6c4c4 |
+++ b/sound/soc/intel/boards/bytcr_rt5640.c
|
|
Pablo Greco |
d6c4c4 |
@@ -1083,6 +1083,7 @@ static char byt_rt5640_codec_name[SND_ACPI_I2C_ID_LEN];
|
|
Pablo Greco |
d6c4c4 |
static char byt_rt5640_codec_aif_name[12]; /* = "rt5640-aif[1|2]" */
|
|
Pablo Greco |
d6c4c4 |
static char byt_rt5640_cpu_dai_name[10]; /* = "ssp[0|2]-port" */
|
|
Pablo Greco |
d6c4c4 |
static char byt_rt5640_long_name[40]; /* = "bytcr-rt5640-*-spk-*-mic" */
|
|
Pablo Greco |
d6c4c4 |
+static char byt_rt5640_components[32]; /* = "cfg-spk:* cfg-mic:*" */
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
static int byt_rt5640_suspend(struct snd_soc_card *card)
|
|
Pablo Greco |
d6c4c4 |
{
|
|
Pablo Greco |
d6c4c4 |
@@ -1305,6 +1306,11 @@ static int snd_byt_rt5640_mc_probe(struct platform_device *pdev)
|
|
Pablo Greco |
d6c4c4 |
}
|
|
Pablo Greco |
d6c4c4 |
}
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
+ snprintf(byt_rt5640_components, sizeof(byt_rt5640_components),
|
|
Pablo Greco |
d6c4c4 |
+ "cfg-spk:%s cfg-mic:%s",
|
|
Pablo Greco |
d6c4c4 |
+ (byt_rt5640_quirk & BYT_RT5640_MONO_SPEAKER) ? "1" : "2",
|
|
Pablo Greco |
d6c4c4 |
+ map_name[BYT_RT5640_MAP(byt_rt5640_quirk)]);
|
|
Pablo Greco |
d6c4c4 |
+ byt_rt5640_card.components = byt_rt5640_components;
|
|
Pablo Greco |
d6c4c4 |
snprintf(byt_rt5640_long_name, sizeof(byt_rt5640_long_name),
|
|
Pablo Greco |
d6c4c4 |
"bytcr-rt5640-%s-spk-%s-mic",
|
|
Pablo Greco |
d6c4c4 |
(byt_rt5640_quirk & BYT_RT5640_MONO_SPEAKER) ?
|
|
Pablo Greco |
d6c4c4 |
diff --git a/sound/soc/intel/boards/bytcr_rt5651.c b/sound/soc/intel/boards/bytcr_rt5651.c
|
|
Pablo Greco |
d6c4c4 |
index 4606f6f582d6..80a5674ddb1b 100644
|
|
Pablo Greco |
d6c4c4 |
--- a/sound/soc/intel/boards/bytcr_rt5651.c
|
|
Pablo Greco |
d6c4c4 |
+++ b/sound/soc/intel/boards/bytcr_rt5651.c
|
|
Pablo Greco |
d6c4c4 |
@@ -798,6 +798,7 @@ static char byt_rt5651_codec_name[SND_ACPI_I2C_ID_LEN];
|
|
Pablo Greco |
d6c4c4 |
static char byt_rt5651_codec_aif_name[12]; /* = "rt5651-aif[1|2]" */
|
|
Pablo Greco |
d6c4c4 |
static char byt_rt5651_cpu_dai_name[10]; /* = "ssp[0|2]-port" */
|
|
Pablo Greco |
d6c4c4 |
static char byt_rt5651_long_name[50]; /* = "bytcr-rt5651-*-spk-*-mic[-swapped-hp]" */
|
|
Pablo Greco |
d6c4c4 |
+static char byt_rt5651_components[50]; /* = "cfg-spk:* cfg-mic:*" */
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
static int byt_rt5651_suspend(struct snd_soc_card *card)
|
|
Pablo Greco |
d6c4c4 |
{
|
|
Pablo Greco |
d6c4c4 |
@@ -876,7 +877,6 @@ static int snd_byt_rt5651_mc_probe(struct platform_device *pdev)
|
|
Pablo Greco |
d6c4c4 |
const char *platform_name;
|
|
Pablo Greco |
d6c4c4 |
struct acpi_device *adev;
|
|
Pablo Greco |
d6c4c4 |
struct device *codec_dev;
|
|
Pablo Greco |
d6c4c4 |
- const char *hp_swapped;
|
|
Pablo Greco |
d6c4c4 |
bool is_bytcr = false;
|
|
Pablo Greco |
d6c4c4 |
int ret_val = 0;
|
|
Pablo Greco |
d6c4c4 |
int dai_index = 0;
|
|
Pablo Greco |
d6c4c4 |
@@ -1080,16 +1080,20 @@ static int snd_byt_rt5651_mc_probe(struct platform_device *pdev)
|
|
Pablo Greco |
d6c4c4 |
}
|
|
Pablo Greco |
d6c4c4 |
}
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
- if (byt_rt5651_quirk & BYT_RT5651_HP_LR_SWAPPED)
|
|
Pablo Greco |
d6c4c4 |
- hp_swapped = "-hp-swapped";
|
|
Pablo Greco |
d6c4c4 |
- else
|
|
Pablo Greco |
d6c4c4 |
- hp_swapped = "";
|
|
Pablo Greco |
d6c4c4 |
-
|
|
Pablo Greco |
d6c4c4 |
+ snprintf(byt_rt5651_components, sizeof(byt_rt5651_components),
|
|
Pablo Greco |
d6c4c4 |
+ "cfg-spk:%s cfg-mic:%s%s",
|
|
Pablo Greco |
d6c4c4 |
+ (byt_rt5651_quirk & BYT_RT5651_MONO_SPEAKER) ? "1" : "2",
|
|
Pablo Greco |
d6c4c4 |
+ mic_name[BYT_RT5651_MAP(byt_rt5651_quirk)],
|
|
Pablo Greco |
d6c4c4 |
+ (byt_rt5651_quirk & BYT_RT5651_HP_LR_SWAPPED) ?
|
|
Pablo Greco |
d6c4c4 |
+ " cfg-hp:lrswap" : "");
|
|
Pablo Greco |
d6c4c4 |
+ byt_rt5651_card.components = byt_rt5651_components;
|
|
Pablo Greco |
d6c4c4 |
snprintf(byt_rt5651_long_name, sizeof(byt_rt5651_long_name),
|
|
Pablo Greco |
d6c4c4 |
"bytcr-rt5651-%s-spk-%s-mic%s",
|
|
Pablo Greco |
d6c4c4 |
(byt_rt5651_quirk & BYT_RT5651_MONO_SPEAKER) ?
|
|
Pablo Greco |
d6c4c4 |
"mono" : "stereo",
|
|
Pablo Greco |
d6c4c4 |
- mic_name[BYT_RT5651_MAP(byt_rt5651_quirk)], hp_swapped);
|
|
Pablo Greco |
d6c4c4 |
+ mic_name[BYT_RT5651_MAP(byt_rt5651_quirk)],
|
|
Pablo Greco |
d6c4c4 |
+ (byt_rt5651_quirk & BYT_RT5651_HP_LR_SWAPPED) ?
|
|
Pablo Greco |
d6c4c4 |
+ "-hp-swapped" : "");
|
|
Pablo Greco |
d6c4c4 |
byt_rt5651_card.long_name = byt_rt5651_long_name;
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
/* override plaform name, if required */
|
|
Pablo Greco |
d6c4c4 |
--
|
|
Pablo Greco |
d6c4c4 |
2.20.1
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
From 36c175e19e9cbb685708519d41e27cd803206737 Mon Sep 17 00:00:00 2001
|
|
Pablo Greco |
d6c4c4 |
From: Jaroslav Kysela <perex@perex.cz>
|
|
Pablo Greco |
d6c4c4 |
Date: Wed, 4 Dec 2019 15:15:46 -0600
|
|
Pablo Greco |
d6c4c4 |
Subject: [PATCH 3/4] ASoC: Intel - do not describe I/O configuration in the
|
|
Pablo Greco |
d6c4c4 |
long card name
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
The long card name might be used in GUI. This information should be hidden.
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
Add CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES configuration option.
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
|
Pablo Greco |
d6c4c4 |
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
|
|
Pablo Greco |
d6c4c4 |
Cc: Mark Brown <broonie@kernel.org>
|
|
Pablo Greco |
d6c4c4 |
Link: https://lore.kernel.org/r/20191204211556.12671-4-pierre-louis.bossart@linux.intel.com
|
|
Pablo Greco |
d6c4c4 |
Signed-off-by: Mark Brown <broonie@kernel.org>
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
Signed-off-by: Jaroslav Kysela <jkysela@redhat.com>
|
|
Pablo Greco |
d6c4c4 |
(cherry picked from commit b5706f8ec29fb461571d25e3e813ede121fe31cd)
|
|
Pablo Greco |
d6c4c4 |
Bugzilla: 1772498
|
|
Pablo Greco |
d6c4c4 |
---
|
|
Pablo Greco |
d6c4c4 |
sound/soc/intel/boards/Kconfig | 13 +++++++++++++
|
|
Pablo Greco |
d6c4c4 |
sound/soc/intel/boards/bytcht_es8316.c | 4 ++++
|
|
Pablo Greco |
d6c4c4 |
sound/soc/intel/boards/bytcr_rt5640.c | 4 ++++
|
|
Pablo Greco |
d6c4c4 |
sound/soc/intel/boards/bytcr_rt5651.c | 4 ++++
|
|
Pablo Greco |
d6c4c4 |
4 files changed, 25 insertions(+)
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
diff --git a/sound/soc/intel/boards/Kconfig b/sound/soc/intel/boards/Kconfig
|
|
Pablo Greco |
d6c4c4 |
index ef20316e83d1..145eb55bd691 100644
|
|
Pablo Greco |
d6c4c4 |
--- a/sound/soc/intel/boards/Kconfig
|
|
Pablo Greco |
d6c4c4 |
+++ b/sound/soc/intel/boards/Kconfig
|
|
Pablo Greco |
d6c4c4 |
@@ -13,6 +13,19 @@ menuconfig SND_SOC_INTEL_MACH
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
if SND_SOC_INTEL_MACH
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
+config SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES
|
|
Pablo Greco |
d6c4c4 |
+ bool "Use more user friendly long card names"
|
|
Pablo Greco |
d6c4c4 |
+ help
|
|
Pablo Greco |
d6c4c4 |
+ Some drivers report the I/O configuration to userspace through the
|
|
Pablo Greco |
d6c4c4 |
+ soundcard's long card name in the control user space AP. An unfortunate
|
|
Pablo Greco |
d6c4c4 |
+ side effect is that this long name may also be used by the GUI,
|
|
Pablo Greco |
d6c4c4 |
+ confusing users with information they don't need.
|
|
Pablo Greco |
d6c4c4 |
+ This option prevents the long name from being modified, and the I/O
|
|
Pablo Greco |
d6c4c4 |
+ configuration will be provided through a different component interface.
|
|
Pablo Greco |
d6c4c4 |
+ Select Y if userspace like UCM (Use Case Manager) uses the component
|
|
Pablo Greco |
d6c4c4 |
+ interface.
|
|
Pablo Greco |
d6c4c4 |
+ If unsure select N.
|
|
Pablo Greco |
d6c4c4 |
+
|
|
Pablo Greco |
d6c4c4 |
if SND_SOC_INTEL_HASWELL
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
config SND_SOC_INTEL_HASWELL_MACH
|
|
Pablo Greco |
d6c4c4 |
diff --git a/sound/soc/intel/boards/bytcht_es8316.c b/sound/soc/intel/boards/bytcht_es8316.c
|
|
Pablo Greco |
d6c4c4 |
index efa33f30dcac..12a1c5255484 100644
|
|
Pablo Greco |
d6c4c4 |
--- a/sound/soc/intel/boards/bytcht_es8316.c
|
|
Pablo Greco |
d6c4c4 |
+++ b/sound/soc/intel/boards/bytcht_es8316.c
|
|
Pablo Greco |
d6c4c4 |
@@ -360,7 +360,9 @@ static struct snd_soc_dai_link byt_cht_es8316_dais[] = {
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
/* SoC card */
|
|
Pablo Greco |
d6c4c4 |
static char codec_name[SND_ACPI_I2C_ID_LEN];
|
|
Pablo Greco |
d6c4c4 |
+#if !IS_ENABLED(CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES)
|
|
Pablo Greco |
d6c4c4 |
static char long_name[50]; /* = "bytcht-es8316-*-spk-*-mic" */
|
|
Pablo Greco |
d6c4c4 |
+#endif
|
|
Pablo Greco |
d6c4c4 |
static char components_string[32]; /* = "cfg-spk:* cfg-mic:* */
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
static int byt_cht_es8316_suspend(struct snd_soc_card *card)
|
|
Pablo Greco |
d6c4c4 |
@@ -578,10 +580,12 @@ static int snd_byt_cht_es8316_mc_probe(struct platform_device *pdev)
|
|
Pablo Greco |
d6c4c4 |
(quirk & BYT_CHT_ES8316_MONO_SPEAKER) ? "1" : "2",
|
|
Pablo Greco |
d6c4c4 |
mic_name[BYT_CHT_ES8316_MAP(quirk)]);
|
|
Pablo Greco |
d6c4c4 |
byt_cht_es8316_card.components = components_string;
|
|
Pablo Greco |
d6c4c4 |
+#if !IS_ENABLED(CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES)
|
|
Pablo Greco |
d6c4c4 |
snprintf(long_name, sizeof(long_name), "bytcht-es8316-%s-spk-%s-mic",
|
|
Pablo Greco |
d6c4c4 |
(quirk & BYT_CHT_ES8316_MONO_SPEAKER) ? "mono" : "stereo",
|
|
Pablo Greco |
d6c4c4 |
mic_name[BYT_CHT_ES8316_MAP(quirk)]);
|
|
Pablo Greco |
d6c4c4 |
byt_cht_es8316_card.long_name = long_name;
|
|
Pablo Greco |
d6c4c4 |
+#endif
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
/* register the soc card */
|
|
Pablo Greco |
d6c4c4 |
snd_soc_card_set_drvdata(&byt_cht_es8316_card, priv);
|
|
Pablo Greco |
d6c4c4 |
diff --git a/sound/soc/intel/boards/bytcr_rt5640.c b/sound/soc/intel/boards/bytcr_rt5640.c
|
|
Pablo Greco |
d6c4c4 |
index 7bc6d3cec94c..648fcc1d07b5 100644
|
|
Pablo Greco |
d6c4c4 |
--- a/sound/soc/intel/boards/bytcr_rt5640.c
|
|
Pablo Greco |
d6c4c4 |
+++ b/sound/soc/intel/boards/bytcr_rt5640.c
|
|
Pablo Greco |
d6c4c4 |
@@ -1082,7 +1082,9 @@ static struct snd_soc_dai_link byt_rt5640_dais[] = {
|
|
Pablo Greco |
d6c4c4 |
static char byt_rt5640_codec_name[SND_ACPI_I2C_ID_LEN];
|
|
Pablo Greco |
d6c4c4 |
static char byt_rt5640_codec_aif_name[12]; /* = "rt5640-aif[1|2]" */
|
|
Pablo Greco |
d6c4c4 |
static char byt_rt5640_cpu_dai_name[10]; /* = "ssp[0|2]-port" */
|
|
Pablo Greco |
d6c4c4 |
+#if !IS_ENABLED(CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES)
|
|
Pablo Greco |
d6c4c4 |
static char byt_rt5640_long_name[40]; /* = "bytcr-rt5640-*-spk-*-mic" */
|
|
Pablo Greco |
d6c4c4 |
+#endif
|
|
Pablo Greco |
d6c4c4 |
static char byt_rt5640_components[32]; /* = "cfg-spk:* cfg-mic:*" */
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
static int byt_rt5640_suspend(struct snd_soc_card *card)
|
|
Pablo Greco |
d6c4c4 |
@@ -1311,12 +1313,14 @@ static int snd_byt_rt5640_mc_probe(struct platform_device *pdev)
|
|
Pablo Greco |
d6c4c4 |
(byt_rt5640_quirk & BYT_RT5640_MONO_SPEAKER) ? "1" : "2",
|
|
Pablo Greco |
d6c4c4 |
map_name[BYT_RT5640_MAP(byt_rt5640_quirk)]);
|
|
Pablo Greco |
d6c4c4 |
byt_rt5640_card.components = byt_rt5640_components;
|
|
Pablo Greco |
d6c4c4 |
+#if !IS_ENABLED(CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES)
|
|
Pablo Greco |
d6c4c4 |
snprintf(byt_rt5640_long_name, sizeof(byt_rt5640_long_name),
|
|
Pablo Greco |
d6c4c4 |
"bytcr-rt5640-%s-spk-%s-mic",
|
|
Pablo Greco |
d6c4c4 |
(byt_rt5640_quirk & BYT_RT5640_MONO_SPEAKER) ?
|
|
Pablo Greco |
d6c4c4 |
"mono" : "stereo",
|
|
Pablo Greco |
d6c4c4 |
map_name[BYT_RT5640_MAP(byt_rt5640_quirk)]);
|
|
Pablo Greco |
d6c4c4 |
byt_rt5640_card.long_name = byt_rt5640_long_name;
|
|
Pablo Greco |
d6c4c4 |
+#endif
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
/* override plaform name, if required */
|
|
Pablo Greco |
d6c4c4 |
platform_name = mach->mach_params.platform;
|
|
Pablo Greco |
d6c4c4 |
diff --git a/sound/soc/intel/boards/bytcr_rt5651.c b/sound/soc/intel/boards/bytcr_rt5651.c
|
|
Pablo Greco |
d6c4c4 |
index 80a5674ddb1b..c0d322a859f7 100644
|
|
Pablo Greco |
d6c4c4 |
--- a/sound/soc/intel/boards/bytcr_rt5651.c
|
|
Pablo Greco |
d6c4c4 |
+++ b/sound/soc/intel/boards/bytcr_rt5651.c
|
|
Pablo Greco |
d6c4c4 |
@@ -797,7 +797,9 @@ static struct snd_soc_dai_link byt_rt5651_dais[] = {
|
|
Pablo Greco |
d6c4c4 |
static char byt_rt5651_codec_name[SND_ACPI_I2C_ID_LEN];
|
|
Pablo Greco |
d6c4c4 |
static char byt_rt5651_codec_aif_name[12]; /* = "rt5651-aif[1|2]" */
|
|
Pablo Greco |
d6c4c4 |
static char byt_rt5651_cpu_dai_name[10]; /* = "ssp[0|2]-port" */
|
|
Pablo Greco |
d6c4c4 |
+#if !IS_ENABLED(CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES)
|
|
Pablo Greco |
d6c4c4 |
static char byt_rt5651_long_name[50]; /* = "bytcr-rt5651-*-spk-*-mic[-swapped-hp]" */
|
|
Pablo Greco |
d6c4c4 |
+#endif
|
|
Pablo Greco |
d6c4c4 |
static char byt_rt5651_components[50]; /* = "cfg-spk:* cfg-mic:*" */
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
static int byt_rt5651_suspend(struct snd_soc_card *card)
|
|
Pablo Greco |
d6c4c4 |
@@ -1087,6 +1089,7 @@ static int snd_byt_rt5651_mc_probe(struct platform_device *pdev)
|
|
Pablo Greco |
d6c4c4 |
(byt_rt5651_quirk & BYT_RT5651_HP_LR_SWAPPED) ?
|
|
Pablo Greco |
d6c4c4 |
" cfg-hp:lrswap" : "");
|
|
Pablo Greco |
d6c4c4 |
byt_rt5651_card.components = byt_rt5651_components;
|
|
Pablo Greco |
d6c4c4 |
+#if !IS_ENABLED(CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES)
|
|
Pablo Greco |
d6c4c4 |
snprintf(byt_rt5651_long_name, sizeof(byt_rt5651_long_name),
|
|
Pablo Greco |
d6c4c4 |
"bytcr-rt5651-%s-spk-%s-mic%s",
|
|
Pablo Greco |
d6c4c4 |
(byt_rt5651_quirk & BYT_RT5651_MONO_SPEAKER) ?
|
|
Pablo Greco |
d6c4c4 |
@@ -1095,6 +1098,7 @@ static int snd_byt_rt5651_mc_probe(struct platform_device *pdev)
|
|
Pablo Greco |
d6c4c4 |
(byt_rt5651_quirk & BYT_RT5651_HP_LR_SWAPPED) ?
|
|
Pablo Greco |
d6c4c4 |
"-hp-swapped" : "");
|
|
Pablo Greco |
d6c4c4 |
byt_rt5651_card.long_name = byt_rt5651_long_name;
|
|
Pablo Greco |
d6c4c4 |
+#endif
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
/* override plaform name, if required */
|
|
Pablo Greco |
d6c4c4 |
platform_name = mach->mach_params.platform;
|
|
Pablo Greco |
d6c4c4 |
--
|
|
Pablo Greco |
d6c4c4 |
2.20.1
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
From 9aa9b367e35494f2d02112ca440a78908f645a04 Mon Sep 17 00:00:00 2001
|
|
Pablo Greco |
d6c4c4 |
From: Jaroslav Kysela <perex@perex.cz>
|
|
Pablo Greco |
d6c4c4 |
Date: Fri, 22 Nov 2019 09:31:03 +0100
|
|
Pablo Greco |
d6c4c4 |
Subject: [PATCH 4/4] ASoC: SOF - topology - do not change the link triger
|
|
Pablo Greco |
d6c4c4 |
order for old firmare
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
This is patch for SOF v1.3 firmware. The DSP firmware will crash
|
|
Pablo Greco |
d6c4c4 |
without this patch. The 1.4.1 firmare has this issue fixed.
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
BugLink: https://github.com/thesofproject/sof/issues/2102
|
|
Pablo Greco |
d6c4c4 |
Signed-off-by: Jaroslav Kysela <perex@perex.cz>
|
|
Pablo Greco |
d6c4c4 |
---
|
|
Pablo Greco |
d6c4c4 |
sound/soc/sof/topology.c | 10 +++++++---
|
|
Pablo Greco |
d6c4c4 |
1 file changed, 7 insertions(+), 3 deletions(-)
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
diff --git a/sound/soc/sof/topology.c b/sound/soc/sof/topology.c
|
|
Pablo Greco |
d6c4c4 |
index d82ab981e840..cbbbf96416ef 100644
|
|
Pablo Greco |
d6c4c4 |
--- a/sound/soc/sof/topology.c
|
|
Pablo Greco |
d6c4c4 |
+++ b/sound/soc/sof/topology.c
|
|
Pablo Greco |
d6c4c4 |
@@ -2971,6 +2971,7 @@ static int sof_link_load(struct snd_soc_component *scomp, int index,
|
|
Pablo Greco |
d6c4c4 |
struct snd_soc_tplg_private *private = &cfg->priv;
|
|
Pablo Greco |
d6c4c4 |
struct sof_ipc_dai_config config;
|
|
Pablo Greco |
d6c4c4 |
struct snd_soc_tplg_hw_config *hw_config;
|
|
Pablo Greco |
d6c4c4 |
+ struct sof_ipc_fw_version *v = &sdev->fw_ready.version;
|
|
Pablo Greco |
d6c4c4 |
int num_hw_configs;
|
|
Pablo Greco |
d6c4c4 |
int ret;
|
|
Pablo Greco |
d6c4c4 |
int i = 0;
|
|
Pablo Greco |
d6c4c4 |
@@ -2988,9 +2989,12 @@ static int sof_link_load(struct snd_soc_component *scomp, int index,
|
|
Pablo Greco |
d6c4c4 |
if (!link->no_pcm) {
|
|
Pablo Greco |
d6c4c4 |
link->nonatomic = true;
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
- /* set trigger order */
|
|
Pablo Greco |
d6c4c4 |
- link->trigger[0] = SND_SOC_DPCM_TRIGGER_POST;
|
|
Pablo Greco |
d6c4c4 |
- link->trigger[1] = SND_SOC_DPCM_TRIGGER_POST;
|
|
Pablo Greco |
d6c4c4 |
+ /* this causes DSP panic on firmware v1.3 */
|
|
Pablo Greco |
d6c4c4 |
+ if (SOF_ABI_VER(v->major, v->minor, v->micro) > SOF_ABI_VER(3, 7, 0)) {
|
|
Pablo Greco |
d6c4c4 |
+ /* set trigger order */
|
|
Pablo Greco |
d6c4c4 |
+ link->trigger[0] = SND_SOC_DPCM_TRIGGER_POST;
|
|
Pablo Greco |
d6c4c4 |
+ link->trigger[1] = SND_SOC_DPCM_TRIGGER_POST;
|
|
Pablo Greco |
d6c4c4 |
+ }
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
/* nothing more to do for FE dai links */
|
|
Pablo Greco |
d6c4c4 |
return 0;
|
|
Pablo Greco |
d6c4c4 |
--
|
|
Pablo Greco |
d6c4c4 |
2.20.1
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
From 264fe78e03d860f8bbf92f250cd22f54cabca59b Mon Sep 17 00:00:00 2001
|
|
Pablo Greco |
d6c4c4 |
From: Fedora Kernel Team <kernel-team@fedoraproject.org>
|
|
Pablo Greco |
d6c4c4 |
Date: Tue, 21 Jan 2020 11:57:17 -0500
|
|
Pablo Greco |
d6c4c4 |
Subject: [PATCH] Force the DSP driver for Intel DSP to "legacy" by default
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
Signed-off-by: Fedora Kernel Team <kernel-team@fedoraproject.org>
|
|
Pablo Greco |
d6c4c4 |
---
|
|
Pablo Greco |
d6c4c4 |
sound/hda/intel-dsp-config.c | 2 +-
|
|
Pablo Greco |
d6c4c4 |
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
diff --git a/sound/hda/intel-dsp-config.c b/sound/hda/intel-dsp-config.c
|
|
Pablo Greco |
d6c4c4 |
index be1df80..2167ae3 100644
|
|
Pablo Greco |
d6c4c4 |
--- a/sound/hda/intel-dsp-config.c
|
|
Pablo Greco |
d6c4c4 |
+++ b/sound/hda/intel-dsp-config.c
|
|
Pablo Greco |
d6c4c4 |
@@ -9,7 +9,7 @@
|
|
Pablo Greco |
d6c4c4 |
#include <sound/intel-dsp-config.h>
|
|
Pablo Greco |
d6c4c4 |
#include <sound/intel-nhlt.h>
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
-static int dsp_driver;
|
|
Pablo Greco |
d6c4c4 |
+static int dsp_driver = 1;
|
|
Pablo Greco |
d6c4c4 |
|
|
Pablo Greco |
d6c4c4 |
module_param(dsp_driver, int, 0444);
|
|
Pablo Greco |
d6c4c4 |
MODULE_PARM_DESC(dsp_driver, "Force the DSP driver for Intel DSP (0=auto, 1=legacy, 2=SST, 3=SOF)");
|
|
Pablo Greco |
d6c4c4 |
--
|
|
Pablo Greco |
d6c4c4 |
2.24.1
|
|
Pablo Greco |
d6c4c4 |
|