ASoC: Intel: avs: Permit deferred card registration
authorCezary Rojewski <cezary.rojewski@intel.com>
Fri, 4 Apr 2025 10:16:22 +0000 (12:16 +0200)
committerMark Brown <broonie@kernel.org>
Sun, 6 Apr 2025 22:25:12 +0000 (23:25 +0100)
Utilize card->deferrable flag to support delayed card enumeration -
scenario where snd_soc_register_card() occurs before all the required
card components are registered into the framework.

Reviewed-by: Amadeusz Sławiński <amadeuszx.slawinski@linux.intel.com>
Signed-off-by: Cezary Rojewski <cezary.rojewski@intel.com>
Link: https://patch.msgid.link/20250404101622.3673850-2-cezary.rojewski@intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
18 files changed:
sound/soc/intel/avs/boards/da7219.c
sound/soc/intel/avs/boards/dmic.c
sound/soc/intel/avs/boards/es8336.c
sound/soc/intel/avs/boards/hdaudio.c
sound/soc/intel/avs/boards/i2s_test.c
sound/soc/intel/avs/boards/max98357a.c
sound/soc/intel/avs/boards/max98373.c
sound/soc/intel/avs/boards/max98927.c
sound/soc/intel/avs/boards/nau8825.c
sound/soc/intel/avs/boards/pcm3168a.c
sound/soc/intel/avs/boards/probe.c
sound/soc/intel/avs/boards/rt274.c
sound/soc/intel/avs/boards/rt286.c
sound/soc/intel/avs/boards/rt298.c
sound/soc/intel/avs/boards/rt5514.c
sound/soc/intel/avs/boards/rt5663.c
sound/soc/intel/avs/boards/rt5682.c
sound/soc/intel/avs/boards/ssm4567.c

index 7217ae51e89c2645ce51d74ca924115e3ba5d0b0..a248221a666d48b235e1fdd0df6e75a17f5091e9 100644 (file)
@@ -256,7 +256,7 @@ static int avs_da7219_probe(struct platform_device *pdev)
        if (ret)
                return ret;
 
-       return devm_snd_soc_register_card(dev, card);
+       return devm_snd_soc_register_deferrable_card(dev, card);
 }
 
 static const struct platform_device_id avs_da7219_driver_ids[] = {
index 4dd9591ee98b7596e6cbfb35a2b697c887a87579..237f6845935dfa21cdf52a123edcea6c0ed4c0b0 100644 (file)
@@ -74,7 +74,7 @@ static int avs_dmic_probe(struct platform_device *pdev)
        if (ret)
                return ret;
 
-       return devm_snd_soc_register_card(dev, card);
+       return devm_snd_soc_register_deferrable_card(dev, card);
 }
 
 static const struct platform_device_id avs_dmic_driver_ids[] = {
index 6f3c4f6c930232353947fc5db5548d80fcfe0880..1caaf9a49e401bdd22f780da93f859da709d2209 100644 (file)
@@ -303,7 +303,7 @@ static int avs_es8336_probe(struct platform_device *pdev)
        if (ret)
                return ret;
 
-       return devm_snd_soc_register_card(dev, card);
+       return devm_snd_soc_register_deferrable_card(dev, card);
 }
 
 static const struct platform_device_id avs_es8336_driver_ids[] = {
index cb6d54db7189214e1bfce9a9a9de100499be4ee1..c4e65c8dc045c320502957b2c69229633ea2c7cd 100644 (file)
@@ -209,7 +209,7 @@ static int avs_hdaudio_probe(struct platform_device *pdev)
        if (hda_codec_is_display(codec))
                card->late_probe = avs_card_late_probe;
 
-       return devm_snd_soc_register_card(dev, card);
+       return devm_snd_soc_register_deferrable_card(dev, card);
 }
 
 static const struct platform_device_id avs_hdaudio_driver_ids[] = {
index 4556f105c793eb40018a4f1310c9d356ef33a742..ffad3718c3b05115911a0dd10a2920e2468c810b 100644 (file)
@@ -101,7 +101,7 @@ static int avs_i2s_test_probe(struct platform_device *pdev)
        if (ret)
                return ret;
 
-       return devm_snd_soc_register_card(dev, card);
+       return devm_snd_soc_register_deferrable_card(dev, card);
 }
 
 static const struct platform_device_id avs_i2s_test_driver_ids[] = {
index c55c1d60b777f5c67880398327fc759f831bb55f..88938a985df531cec09292084c912649236789e3 100644 (file)
@@ -132,7 +132,7 @@ static int avs_max98357a_probe(struct platform_device *pdev)
        if (ret)
                return ret;
 
-       return devm_snd_soc_register_card(dev, card);
+       return devm_snd_soc_register_deferrable_card(dev, card);
 }
 
 static const struct platform_device_id avs_max98357a_driver_ids[] = {
index 970f82bf4ce8920b1965a0b81e8623ab5bf91ef1..468815a846b38d2742379d0be1e8c674491c12de 100644 (file)
@@ -187,7 +187,7 @@ static int avs_max98373_probe(struct platform_device *pdev)
        if (ret)
                return ret;
 
-       return devm_snd_soc_register_card(dev, card);
+       return devm_snd_soc_register_deferrable_card(dev, card);
 }
 
 static const struct platform_device_id avs_max98373_driver_ids[] = {
index e4ce553bf1d6432b4c11ce44857d969ca6b54c83..8ed1f3d7ff06f784feb08d55177918dbcba735a9 100644 (file)
@@ -184,7 +184,7 @@ static int avs_max98927_probe(struct platform_device *pdev)
        if (ret)
                return ret;
 
-       return devm_snd_soc_register_card(dev, card);
+       return devm_snd_soc_register_deferrable_card(dev, card);
 }
 
 static const struct platform_device_id avs_max98927_driver_ids[] = {
index e203ceb83b87141d0a7d2c98aed633ef0d4e885d..3b0f1a2f206812eaab690427f545c24ed5669416 100644 (file)
@@ -290,7 +290,7 @@ static int avs_nau8825_probe(struct platform_device *pdev)
        if (ret)
                return ret;
 
-       return devm_snd_soc_register_card(dev, card);
+       return devm_snd_soc_register_deferrable_card(dev, card);
 }
 
 static const struct platform_device_id avs_nau8825_driver_ids[] = {
index 5d0e7a5bdc7494eab0ae347cf6ec0ba8c68ed014..04c980662adff34fa8ffb0a0c09bc91f6de4118a 100644 (file)
@@ -116,7 +116,7 @@ static int avs_pcm3168a_probe(struct platform_device *pdev)
        card->num_dapm_routes = ARRAY_SIZE(card_routes);
        card->fully_routed = true;
 
-       return devm_snd_soc_register_card(dev, card);
+       return devm_snd_soc_register_deferrable_card(dev, card);
 }
 
 static const struct platform_device_id avs_pcm3168a_driver_ids[] = {
index 1cdc285ab8101bd1ccedb94b574f4ec969011e55..f2924b150c93fa690b2613faf3ea38dc6273d983 100644 (file)
@@ -47,7 +47,7 @@ static int avs_probe_mb_probe(struct platform_device *pdev)
        if (ret)
                return ret;
 
-       return devm_snd_soc_register_card(dev, card);
+       return devm_snd_soc_register_deferrable_card(dev, card);
 }
 
 static const struct platform_device_id avs_probe_mb_driver_ids[] = {
index 29977aee2153bb9a7c1207ecd960bcf9db4aef31..696d052e1248f8225733807e0658cddbc47000da 100644 (file)
@@ -254,7 +254,7 @@ static int avs_rt274_probe(struct platform_device *pdev)
        if (ret)
                return ret;
 
-       return devm_snd_soc_register_card(dev, card);
+       return devm_snd_soc_register_deferrable_card(dev, card);
 }
 
 static const struct platform_device_id avs_rt274_driver_ids[] = {
index 6a27c6a9f39411b1f71ae467c67b86ffef7ae31c..de579b8053a4eea2ab637c96d502de1c034c674f 100644 (file)
@@ -224,7 +224,7 @@ static int avs_rt286_probe(struct platform_device *pdev)
        if (ret)
                return ret;
 
-       return devm_snd_soc_register_card(dev, card);
+       return devm_snd_soc_register_deferrable_card(dev, card);
 }
 
 static const struct platform_device_id avs_rt286_driver_ids[] = {
index a7a463d6f852123c12968242512687a5fe12f286..de4be63b3c103fd7bd607c1dd8a6ad295103fc77 100644 (file)
@@ -243,7 +243,7 @@ static int avs_rt298_probe(struct platform_device *pdev)
        if (ret)
                return ret;
 
-       return devm_snd_soc_register_card(dev, card);
+       return devm_snd_soc_register_deferrable_card(dev, card);
 }
 
 static const struct platform_device_id avs_rt298_driver_ids[] = {
index d1c3e29a28ff6e8129acaf6cf2c9b0666980bc14..2bca30f6387fb0ff10a8bdb1786fd40b815a9de7 100644 (file)
@@ -170,7 +170,7 @@ static int avs_rt5514_probe(struct platform_device *pdev)
        if (ret)
                return ret;
 
-       return devm_snd_soc_register_card(dev, card);
+       return devm_snd_soc_register_deferrable_card(dev, card);
 }
 
 static const struct platform_device_id avs_rt5514_driver_ids[] = {
index e3310b3268baafdf5a02fa182370941142f5933a..d230c598debd45e893b37c07a0d999791baf2eee 100644 (file)
@@ -242,7 +242,7 @@ static int avs_rt5663_probe(struct platform_device *pdev)
        if (ret)
                return ret;
 
-       return devm_snd_soc_register_card(dev, card);
+       return devm_snd_soc_register_deferrable_card(dev, card);
 }
 
 static const struct platform_device_id avs_rt5663_driver_ids[] = {
index 339df0b944c1745567c65904c8dc2fc06397397f..63e4b6c0d76e9edb1ae279e461faaeb36aeed4a6 100644 (file)
@@ -318,7 +318,7 @@ static int avs_rt5682_probe(struct platform_device *pdev)
        if (ret)
                return ret;
 
-       return devm_snd_soc_register_card(dev, card);
+       return devm_snd_soc_register_deferrable_card(dev, card);
 }
 
 static const struct platform_device_id avs_rt5682_driver_ids[] = {
index 7667790d52739b98b97d2bc9fc9496da82affef1..c6e62bdda2a87a48b0d5807a16cadd0a114f264b 100644 (file)
@@ -173,7 +173,7 @@ static int avs_ssm4567_probe(struct platform_device *pdev)
        if (ret)
                return ret;
 
-       return devm_snd_soc_register_card(dev, card);
+       return devm_snd_soc_register_deferrable_card(dev, card);
 }
 
 static const struct platform_device_id avs_ssm4567_driver_ids[] = {