diff options
author | Thorsten Leemhuis <fedora@leemhuis.info> | 2020-02-06 16:42:04 +0100 |
---|---|---|
committer | Thorsten Leemhuis <fedora@leemhuis.info> | 2020-02-06 16:42:04 +0100 |
commit | 48d2ea1892fb00405dd817b212cff4e821f6b881 (patch) | |
tree | b6de66d7c93c313dccf057f2ac9cb02f06be829e | |
parent | 2a99138f8ae6d1678562ce5fe45c3e2c3c7c5bef (diff) | |
parent | 830026294181c96c65634a2bd314bcd34f92805f (diff) | |
download | kernel-48d2ea1892fb00405dd817b212cff4e821f6b881.tar.gz kernel-48d2ea1892fb00405dd817b212cff4e821f6b881.tar.xz kernel-48d2ea1892fb00405dd817b212cff4e821f6b881.zip |
Merge remote-tracking branch 'origin/f31' into f31-user-thl-vanilla-fedora
-rw-r--r-- | ASoC-topology-fix-soc_tplg_fe_link_create-link-dobj-.patch | 60 | ||||
-rw-r--r-- | alsa-5.5.patch | 156 | ||||
-rw-r--r-- | alsa-5.6.patch | 73 | ||||
-rw-r--r-- | kernel.spec | 6 |
4 files changed, 3 insertions, 292 deletions
diff --git a/ASoC-topology-fix-soc_tplg_fe_link_create-link-dobj-.patch b/ASoC-topology-fix-soc_tplg_fe_link_create-link-dobj-.patch deleted file mode 100644 index f86069ab9..000000000 --- a/ASoC-topology-fix-soc_tplg_fe_link_create-link-dobj-.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 29bc8978342b2d94a65801904c44dc7b0ef88da2 Mon Sep 17 00:00:00 2001 -From: Jaroslav Kysela <perex@perex.cz> -Date: Wed, 22 Jan 2020 20:07:52 +0100 -Subject: [PATCH] ASoC: topology: fix soc_tplg_fe_link_create() - link->dobj - initialization order - -The code which checks the return value for snd_soc_add_dai_link() call -in soc_tplg_fe_link_create() moved the snd_soc_add_dai_link() call before -link->dobj members initialization. - -While it does not affect the latest kernels, the old soc-core.c code -in the stable kernels is affected. The snd_soc_add_dai_link() function uses -the link->dobj.type member to check, if the link structure is valid. - -Reorder the link->dobj initialization to make things work again. -It's harmless for the recent code (and the structure should be properly -initialized before other calls anyway). - -The problem is in stable linux-5.4.y since version 5.4.11 when the -upstream commit 76d270364932 was applied. - -Fixes: 76d270364932 ("ASoC: topology: Check return value for snd_soc_add_dai_link()") -Cc: Dragos Tarcatu <dragos_tarcatu@mentor.com> -Cc: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> -Cc: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> -Cc: Mark Brown <broonie@kernel.org> -Cc: <stable@vger.kernel.org> -Signed-off-by: Jaroslav Kysela <perex@perex.cz> ---- - sound/soc/soc-topology.c | 7 ++++--- - 1 file changed, 4 insertions(+), 3 deletions(-) - -diff --git a/sound/soc/soc-topology.c b/sound/soc/soc-topology.c -index fd2d22ddc81b..1c143a00633f 100644 ---- a/sound/soc/soc-topology.c -+++ b/sound/soc/soc-topology.c -@@ -1891,6 +1891,10 @@ static int soc_tplg_fe_link_create(struct soc_tplg *tplg, - link->num_codecs = 1; - link->num_platforms = 1; - -+ link->dobj.index = tplg->index; -+ link->dobj.ops = tplg->ops; -+ link->dobj.type = SND_SOC_DOBJ_DAI_LINK; -+ - if (strlen(pcm->pcm_name)) { - link->name = kstrdup(pcm->pcm_name, GFP_KERNEL); - link->stream_name = kstrdup(pcm->pcm_name, GFP_KERNEL); -@@ -1927,9 +1931,6 @@ static int soc_tplg_fe_link_create(struct soc_tplg *tplg, - goto err; - } - -- link->dobj.index = tplg->index; -- link->dobj.ops = tplg->ops; -- link->dobj.type = SND_SOC_DOBJ_DAI_LINK; - list_add(&link->dobj.list, &tplg->comp->dobj_list); - - return 0; --- -2.24.1 - diff --git a/alsa-5.5.patch b/alsa-5.5.patch index e2edd3d9e..350d0a186 100644 --- a/alsa-5.5.patch +++ b/alsa-5.5.patch @@ -4431,162 +4431,6 @@ index 6b1bd4f428e7..e145cec085b8 100644 2.20.1 -From 669fa4378c36f288936e3bdc52dfba7b245ea9fe Mon Sep 17 00:00:00 2001 -From: Kai Vehmanen <kai.vehmanen@linux.intel.com> -Date: Tue, 29 Oct 2019 15:40:13 +0200 -Subject: [PATCH 046/130] ASoC: SOF: Intel: add support for snd-hda-codec-hdmi - -Add support to implement HDMI/DP audio by using the common -snd-hda-codec-hdmi driver. - -Change of codec driver affects user-space as the two -drivers expose different mixer controls. A new kernel -module option "use_common_hdmi" is added to user-space -to indicate which interface should be used. The default -driver can be selected via a Kconfig option. - -Signed-off-by: Kai Vehmanen <kai.vehmanen@linux.intel.com> -Reviewed-by: Takashi Iwai <tiwai@suse.de> -Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> -Link: https://lore.kernel.org/r/20191029134017.18901-6-kai.vehmanen@linux.intel.com -Signed-off-by: Mark Brown <broonie@kernel.org> - -Signed-off-by: Jaroslav Kysela <jkysela@redhat.com> -(cherry picked from commit 139c7febad1afa221c687f3314560284e482a1f4) -Bugzilla: 1772498 ---- - sound/soc/sof/intel/Kconfig | 10 ++++++++++ - sound/soc/sof/intel/hda-codec.c | 22 ++++++++++++++++++---- - sound/soc/sof/intel/hda.c | 6 ++++++ - sound/soc/sof/intel/hda.h | 6 ++++-- - 4 files changed, 38 insertions(+), 6 deletions(-) - -diff --git a/sound/soc/sof/intel/Kconfig b/sound/soc/sof/intel/Kconfig -index aac8d5deba3d..95a2d1708dd9 100644 ---- a/sound/soc/sof/intel/Kconfig -+++ b/sound/soc/sof/intel/Kconfig -@@ -299,6 +299,16 @@ config SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1 - Say Y if you want to enable DMI Link L1 - If unsure, select "N". - -+config SND_SOC_SOF_HDA_COMMON_HDMI_CODEC -+ bool "SOF common HDA HDMI codec driver" -+ depends on SND_SOC_SOF_HDA_LINK -+ depends on SND_HDA_CODEC_HDMI -+ help -+ This adds support for HDMI audio by using the common HDA -+ HDMI/DisplayPort codec driver. -+ Say Y if you want to use the common codec driver with SOF. -+ If unsure select "Y". -+ - endif ## SND_SOC_SOF_HDA_COMMON - - config SND_SOC_SOF_HDA_LINK_BASELINE -diff --git a/sound/soc/sof/intel/hda-codec.c b/sound/soc/sof/intel/hda-codec.c -index 3ca6795a89ba..827f84a0722e 100644 ---- a/sound/soc/sof/intel/hda-codec.c -+++ b/sound/soc/sof/intel/hda-codec.c -@@ -84,6 +84,8 @@ static int hda_codec_probe(struct snd_sof_dev *sdev, int address) - { - #if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA_AUDIO_CODEC) - struct hdac_hda_priv *hda_priv; -+ struct snd_soc_acpi_mach_params *mach_params = NULL; -+ struct snd_sof_pdata *pdata = sdev->pdata; - #endif - struct hda_bus *hbus = sof_to_hbus(sdev); - struct hdac_device *hdev; -@@ -113,8 +115,19 @@ static int hda_codec_probe(struct snd_sof_dev *sdev, int address) - if (ret < 0) - return ret; - -- /* use legacy bus only for HDA codecs, idisp uses ext bus */ -- if ((resp & 0xFFFF0000) != IDISP_VID_INTEL) { -+ if (pdata->machine) -+ mach_params = (struct snd_soc_acpi_mach_params *) -+ &pdata->machine->mach_params; -+ -+ if ((resp & 0xFFFF0000) == IDISP_VID_INTEL) -+ hda_priv->need_display_power = true; -+ -+ /* -+ * if common HDMI codec driver is not used, codec load -+ * is skipped here and hdac_hdmi is used instead -+ */ -+ if ((mach_params && mach_params->common_hdmi_codec_drv) || -+ (resp & 0xFFFF0000) != IDISP_VID_INTEL) { - hdev->type = HDA_DEV_LEGACY; - hda_codec_load_module(&hda_priv->codec); - } -@@ -155,7 +168,8 @@ int hda_codec_probe_bus(struct snd_sof_dev *sdev) - } - EXPORT_SYMBOL(hda_codec_probe_bus); - --#if IS_ENABLED(CONFIG_SND_SOC_HDAC_HDMI) -+#if IS_ENABLED(CONFIG_SND_HDA_CODEC_HDMI) || \ -+ IS_ENABLED(CONFIG_SND_SOC_HDAC_HDMI) - - void hda_codec_i915_get(struct snd_sof_dev *sdev) - { -@@ -204,6 +218,6 @@ int hda_codec_i915_exit(struct snd_sof_dev *sdev) - } - EXPORT_SYMBOL(hda_codec_i915_exit); - --#endif /* CONFIG_SND_SOC_HDAC_HDMI */ -+#endif - - MODULE_LICENSE("Dual BSD/GPL"); -diff --git a/sound/soc/sof/intel/hda.c b/sound/soc/sof/intel/hda.c -index 103f4273c4d3..7dc0018dc4c3 100644 ---- a/sound/soc/sof/intel/hda.c -+++ b/sound/soc/sof/intel/hda.c -@@ -53,6 +53,11 @@ MODULE_PARM_DESC(use_msi, "SOF HDA use PCI MSI mode"); - static int hda_dmic_num = -1; - module_param_named(dmic_num, hda_dmic_num, int, 0444); - MODULE_PARM_DESC(dmic_num, "SOF HDA DMIC number"); -+ -+static bool hda_codec_use_common_hdmi = -+ IS_ENABLED(CONFIG_SND_SOC_SOF_HDA_COMMON_HDMI_CODEC); -+module_param_named(use_common_hdmi, hda_codec_use_common_hdmi, bool, 0444); -+MODULE_PARM_DESC(use_common_hdmi, "SOF HDA use common HDMI codec driver"); - #endif - - static const struct hda_dsp_msg_code hda_dsp_rom_msg[] = { -@@ -459,6 +464,7 @@ static int hda_init_caps(struct snd_sof_dev *sdev) - &pdata->machine->mach_params; - mach_params->codec_mask = bus->codec_mask; - mach_params->platform = dev_name(sdev->dev); -+ mach_params->common_hdmi_codec_drv = hda_codec_use_common_hdmi; - } - - /* create codec instances */ -diff --git a/sound/soc/sof/intel/hda.h b/sound/soc/sof/intel/hda.h -index 8e03d876a0ac..d6ef657b8900 100644 ---- a/sound/soc/sof/intel/hda.h -+++ b/sound/soc/sof/intel/hda.h -@@ -565,7 +565,9 @@ void hda_codec_jack_check(struct snd_sof_dev *sdev); - - #endif /* CONFIG_SND_SOC_SOF_HDA */ - --#if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA) && IS_ENABLED(CONFIG_SND_SOC_HDAC_HDMI) -+#if IS_ENABLED(CONFIG_SND_SOC_SOF_HDA) && \ -+ (IS_ENABLED(CONFIG_SND_HDA_CODEC_HDMI) || \ -+ IS_ENABLED(CONFIG_SND_SOC_HDAC_HDMI)) - - void hda_codec_i915_get(struct snd_sof_dev *sdev); - void hda_codec_i915_put(struct snd_sof_dev *sdev); -@@ -579,7 +581,7 @@ static inline void hda_codec_i915_put(struct snd_sof_dev *sdev) { } - static inline int hda_codec_i915_init(struct snd_sof_dev *sdev) { return 0; } - static inline int hda_codec_i915_exit(struct snd_sof_dev *sdev) { return 0; } - --#endif /* CONFIG_SND_SOC_SOF_HDA && CONFIG_SND_SOC_HDAC_HDMI */ -+#endif - - /* - * Trace Control. --- -2.20.1 - - From 480f07ccb82555912594c2b6d560fdeb35176b40 Mon Sep 17 00:00:00 2001 From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Date: Fri, 1 Nov 2019 12:30:35 -0500 diff --git a/alsa-5.6.patch b/alsa-5.6.patch index 181525102..b5436a7b2 100644 --- a/alsa-5.6.patch +++ b/alsa-5.6.patch @@ -1,76 +1,3 @@ -From 4ef91c45a5a283dc8899402bc68adfe0aa9a026d Mon Sep 17 00:00:00 2001 -From: Jaroslav Kysela <perex@perex.cz> -Date: Wed, 4 Dec 2019 15:15:44 -0600 -Subject: [PATCH 1/4] ASoC: intel/skl/hda - export number of digital - microphones via control components - -It is required for the auto-detection in the user space (for UCM). - -Signed-off-by: Jaroslav Kysela <perex@perex.cz> -Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> -Cc: Mark Brown <broonie@kernel.org> -Link: https://lore.kernel.org/r/20191204211556.12671-2-pierre-louis.bossart@linux.intel.com -Signed-off-by: Mark Brown <broonie@kernel.org> - -Signed-off-by: Jaroslav Kysela <jkysela@redhat.com> -(cherry picked from commit 8cd9956f61c65022209ce6d1e55ed12aea12357d) -Bugzilla: 1772498 ---- - sound/soc/intel/boards/skl_hda_dsp_generic.c | 8 ++++++++ - sound/soc/sof/intel/hda.c | 3 ++- - 2 files changed, 10 insertions(+), 1 deletion(-) - -diff --git a/sound/soc/intel/boards/skl_hda_dsp_generic.c b/sound/soc/intel/boards/skl_hda_dsp_generic.c -index 4e45901e3a2f..11eaee9ae41f 100644 ---- a/sound/soc/intel/boards/skl_hda_dsp_generic.c -+++ b/sound/soc/intel/boards/skl_hda_dsp_generic.c -@@ -100,6 +100,8 @@ static struct snd_soc_card hda_soc_card = { - .late_probe = skl_hda_card_late_probe, - }; - -+static char hda_soc_components[30]; -+ - #define IDISP_DAI_COUNT 3 - #define HDAC_DAI_COUNT 2 - #define DMIC_DAI_COUNT 2 -@@ -183,6 +185,12 @@ static int skl_hda_audio_probe(struct platform_device *pdev) - hda_soc_card.dev = &pdev->dev; - snd_soc_card_set_drvdata(&hda_soc_card, ctx); - -+ if (mach->mach_params.dmic_num > 0) { -+ snprintf(hda_soc_components, sizeof(hda_soc_components), -+ "cfg-dmics:%d", mach->mach_params.dmic_num); -+ hda_soc_card.components = hda_soc_components; -+ } -+ - return devm_snd_soc_register_card(&pdev->dev, &hda_soc_card); - } - -diff --git a/sound/soc/sof/intel/hda.c b/sound/soc/sof/intel/hda.c -index 91bd88fddac7..eea01f75d23d 100644 ---- a/sound/soc/sof/intel/hda.c -+++ b/sound/soc/sof/intel/hda.c -@@ -351,7 +351,7 @@ static int hda_init_caps(struct snd_sof_dev *sdev) - const char *tplg_filename; - const char *idisp_str; - const char *dmic_str; -- int dmic_num; -+ int dmic_num = 0; - int codec_num = 0; - int i; - #endif -@@ -472,6 +472,7 @@ static int hda_init_caps(struct snd_sof_dev *sdev) - mach_params->codec_mask = bus->codec_mask; - mach_params->platform = dev_name(sdev->dev); - mach_params->common_hdmi_codec_drv = hda_codec_use_common_hdmi; -+ mach_params->dmic_num = dmic_num; - } - - /* create codec instances */ --- -2.20.1 - - From 89be5f69889f7e9aeab05279869bba3e9e0d2002 Mon Sep 17 00:00:00 2001 From: Jaroslav Kysela <perex@perex.cz> Date: Wed, 4 Dec 2019 15:15:45 -0600 diff --git a/kernel.spec b/kernel.spec index 6a77b0b39..dad0bfa55 100644 --- a/kernel.spec +++ b/kernel.spec @@ -837,9 +837,6 @@ Patch600: alsa-5.5.patch # ALSA code from v5.6 (Intel ASoC Sound Open Firmware driver support) Patch601: alsa-5.6.patch -# https://bugzilla.redhat.com/show_bug.cgi?id=1772498#c101 -Patch602: ASoC-topology-fix-soc_tplg_fe_link_create-link-dobj-.patch - # This is already in 5.5 rhbz 1794369 Patch603: 0001-e1000e-Add-support-for-Comet-Lake.patch @@ -2543,6 +2540,9 @@ fi # # %changelog +* Thu Feb 06 2020 Jeremy Cline <jcline@redhat.com> - 5.4.18-200 +- Linux v5.4.18 + * Sat Feb 01 2020 Jeremy Cline <jcline@redhat.com> - 5.4.17-200 - Linux v5.4.17 |