ASoC: Intel: bytcr_rt5651: Not being able to find the codec ACPI-dev is an error
authorHans de Goede <hdegoede@redhat.com>
Sun, 4 Mar 2018 14:35:58 +0000 (15:35 +0100)
committerMark Brown <broonie@kernel.org>
Wed, 7 Mar 2018 12:55:40 +0000 (12:55 +0000)
If we cannot find the codec ACPI-dev, then the snd-soc-core will not be
able to find the codec either and snd_soc_register_card() will just keep
exiting with -EPROBE_DEFER, filling the log with errors each time the
probe gets retried.

Instead simply log an error from the machine driver and exit with -ENODEV.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/intel/boards/bytcr_rt5651.c

index 456526a..105339c 100644 (file)
@@ -540,12 +540,13 @@ static int snd_byt_rt5651_mc_probe(struct platform_device *pdev)
 
        /* fixup codec name based on HID */
        i2c_name = acpi_dev_get_first_match_name(mach->id, NULL, -1);
-       if (i2c_name) {
-               snprintf(byt_rt5651_codec_name, sizeof(byt_rt5651_codec_name),
-                       "%s%s", "i2c-", i2c_name);
-
-               byt_rt5651_dais[dai_index].codec_name = byt_rt5651_codec_name;
+       if (!i2c_name) {
+               dev_err(&pdev->dev, "Error cannot find '%s' dev\n", mach->id);
+               return -ENODEV;
        }
+       snprintf(byt_rt5651_codec_name, sizeof(byt_rt5651_codec_name),
+               "%s%s", "i2c-", i2c_name);
+       byt_rt5651_dais[dai_index].codec_name = byt_rt5651_codec_name;
 
        /* check quirks before creating card */
        dmi_check_system(byt_rt5651_quirk_table);