]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ASoC: Intel: Disable route checks for Skylake boards
authorCezary Rojewski <cezary.rojewski@intel.com>
Fri, 8 Mar 2024 09:04:58 +0000 (10:04 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 16 Jun 2024 11:39:27 +0000 (13:39 +0200)
[ Upstream commit 0cb3b7fd530b8c107443218ce6db5cb6e7b5dbe1 ]

Topology files that are propagated to the world and utilized by the
skylake-driver carry shortcomings in their SectionGraphs.

Since commit daa480bde6b3 ("ASoC: soc-core: tidyup for
snd_soc_dapm_add_routes()") route checks are no longer permissive. Probe
failures for Intel boards have been partially addressed by commit
a22ae72b86a4 ("ASoC: soc-core: disable route checks for legacy devices")
and its follow up but only skl_nau88l25_ssm4567.c is patched. Fix the
problem for the rest of the boards.

Link: https://lore.kernel.org/all/20200309192744.18380-1-pierre-louis.bossart@linux.intel.com/
Fixes: daa480bde6b3 ("ASoC: soc-core: tidyup for snd_soc_dapm_add_routes()")
Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com>
Link: https://msgid.link/r/20240308090502.2136760-2-cezary.rojewski@intel.com
Reviewed-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
sound/soc/intel/boards/bxt_da7219_max98357a.c
sound/soc/intel/boards/bxt_rt298.c
sound/soc/intel/boards/glk_rt5682_max98357a.c
sound/soc/intel/boards/kbl_da7219_max98357a.c
sound/soc/intel/boards/kbl_da7219_max98927.c
sound/soc/intel/boards/kbl_rt5660.c
sound/soc/intel/boards/kbl_rt5663_max98927.c
sound/soc/intel/boards/kbl_rt5663_rt5514_max98927.c
sound/soc/intel/boards/skl_hda_dsp_generic.c
sound/soc/intel/boards/skl_nau88l25_max98357a.c
sound/soc/intel/boards/skl_rt286.c

index e49c64f54a12c10a71f8435ba26103b5960fefde..5bc2f8c82ffcd1b2f0e53c24ebf36a4a2784ba81 100644 (file)
@@ -750,6 +750,7 @@ static struct snd_soc_card broxton_audio_card = {
        .dapm_routes = audio_map,
        .num_dapm_routes = ARRAY_SIZE(audio_map),
        .fully_routed = true,
+       .disable_route_checks = true,
        .late_probe = bxt_card_late_probe,
 };
 
index 0d1df37ecea0b6a9a4a430764cb97a51f1b1c201..cd11a4025232919a01359333d9a1af45d6e303c7 100644 (file)
@@ -575,6 +575,7 @@ static struct snd_soc_card broxton_rt298 = {
        .dapm_routes = broxton_rt298_map,
        .num_dapm_routes = ARRAY_SIZE(broxton_rt298_map),
        .fully_routed = true,
+       .disable_route_checks = true,
        .late_probe = bxt_card_late_probe,
 
 };
index 99b3d7642cb77e2bbbbccd835018b35a1acaf381..5f1eb75048324ba9a0f80a53ae32d0da7d7a1a1b 100644 (file)
@@ -603,6 +603,8 @@ static int geminilake_audio_probe(struct platform_device *pdev)
        card = &glk_audio_card_rt5682_m98357a;
        card->dev = &pdev->dev;
        snd_soc_card_set_drvdata(card, ctx);
+       if (!snd_soc_acpi_sof_parent(&pdev->dev))
+               card->disable_route_checks = true;
 
        /* override platform name, if required */
        mach = pdev->dev.platform_data;
index 14b625e947f5f35d2d6df91c26ced0821406c855..77f6898b397d40bbebb5a75b2a9551c0d3115329 100644 (file)
@@ -621,6 +621,7 @@ static struct snd_soc_card kabylake_audio_card_da7219_m98357a = {
        .dapm_routes = kabylake_map,
        .num_dapm_routes = ARRAY_SIZE(kabylake_map),
        .fully_routed = true,
+       .disable_route_checks = true,
        .late_probe = kabylake_card_late_probe,
 };
 
index 2b43459adc33aebb0c7c292bfa5afd448911a0bb..2c57c9204d3222a835b8698ddfae18264c6eb4c3 100644 (file)
@@ -1018,6 +1018,7 @@ static struct snd_soc_card kbl_audio_card_da7219_m98927 = {
        .codec_conf = max98927_codec_conf,
        .num_configs = ARRAY_SIZE(max98927_codec_conf),
        .fully_routed = true,
+       .disable_route_checks = true,
        .late_probe = kabylake_card_late_probe,
 };
 
@@ -1036,6 +1037,7 @@ static struct snd_soc_card kbl_audio_card_max98927 = {
        .codec_conf = max98927_codec_conf,
        .num_configs = ARRAY_SIZE(max98927_codec_conf),
        .fully_routed = true,
+       .disable_route_checks = true,
        .late_probe = kabylake_card_late_probe,
 };
 
@@ -1053,6 +1055,7 @@ static struct snd_soc_card kbl_audio_card_da7219_m98373 = {
        .codec_conf = max98373_codec_conf,
        .num_configs = ARRAY_SIZE(max98373_codec_conf),
        .fully_routed = true,
+       .disable_route_checks = true,
        .late_probe = kabylake_card_late_probe,
 };
 
@@ -1070,6 +1073,7 @@ static struct snd_soc_card kbl_audio_card_max98373 = {
        .codec_conf = max98373_codec_conf,
        .num_configs = ARRAY_SIZE(max98373_codec_conf),
        .fully_routed = true,
+       .disable_route_checks = true,
        .late_probe = kabylake_card_late_probe,
 };
 
index 289ca39b8206e189f3e096d8bab37a069b19334c..776a1beaaf17de8cab0623fad0166360c6677cbd 100644 (file)
@@ -519,6 +519,7 @@ static struct snd_soc_card kabylake_audio_card_rt5660 = {
        .dapm_routes = kabylake_rt5660_map,
        .num_dapm_routes = ARRAY_SIZE(kabylake_rt5660_map),
        .fully_routed = true,
+       .disable_route_checks = true,
        .late_probe = kabylake_card_late_probe,
 };
 
index a3e040a249f6ff79ec14fe1e8b34fb7eb36183c8..fa7d9cff9855047dfc1c7c2c6fdf83e4b91dabe8 100644 (file)
@@ -954,6 +954,7 @@ static struct snd_soc_card kabylake_audio_card_rt5663_m98927 = {
        .codec_conf = max98927_codec_conf,
        .num_configs = ARRAY_SIZE(max98927_codec_conf),
        .fully_routed = true,
+       .disable_route_checks = true,
        .late_probe = kabylake_card_late_probe,
 };
 
@@ -970,6 +971,7 @@ static struct snd_soc_card kabylake_audio_card_rt5663 = {
        .dapm_routes = kabylake_5663_map,
        .num_dapm_routes = ARRAY_SIZE(kabylake_5663_map),
        .fully_routed = true,
+       .disable_route_checks = true,
        .late_probe = kabylake_card_late_probe,
 };
 
index dd38fdaf2ff5892e997d094bea461f82b17331d2..673eaa8917067bb07fff44a3694131700d0bf0d7 100644 (file)
@@ -779,6 +779,7 @@ static struct snd_soc_card kabylake_audio_card = {
        .codec_conf = max98927_codec_conf,
        .num_configs = ARRAY_SIZE(max98927_codec_conf),
        .fully_routed = true,
+       .disable_route_checks = true,
        .late_probe = kabylake_card_late_probe,
 };
 
index f4b4eeca3e03c2d03b00cbf06de073c7666cd8ab..6aad5232acbe44ad6b608de3e6dbe9e61d2fd4b8 100644 (file)
@@ -229,6 +229,8 @@ static int skl_hda_audio_probe(struct platform_device *pdev)
        ctx->common_hdmi_codec_drv = mach->mach_params.common_hdmi_codec_drv;
 
        hda_soc_card.dev = &pdev->dev;
+       if (!snd_soc_acpi_sof_parent(&pdev->dev))
+               hda_soc_card.disable_route_checks = true;
 
        if (mach->mach_params.dmic_num > 0) {
                snprintf(hda_soc_components, sizeof(hda_soc_components),
index e3a1f04a8b5356daf548a0e468c7018ca180879e..3b62e15da95fa30a309dade63bbfd4364e1233a9 100644 (file)
@@ -643,6 +643,7 @@ static struct snd_soc_card skylake_audio_card = {
        .dapm_routes = skylake_map,
        .num_dapm_routes = ARRAY_SIZE(skylake_map),
        .fully_routed = true,
+       .disable_route_checks = true,
        .late_probe = skylake_card_late_probe,
 };
 
index 75dab5405380fb9ae85c3ae326cfbfd8dd1380ea..9c2ba695c1a16207b927237b4dd24da8e2800806 100644 (file)
@@ -524,6 +524,7 @@ static struct snd_soc_card skylake_rt286 = {
        .dapm_routes = skylake_rt286_map,
        .num_dapm_routes = ARRAY_SIZE(skylake_rt286_map),
        .fully_routed = true,
+       .disable_route_checks = true,
        .late_probe = skylake_card_late_probe,
 };