HDMI codecs which are present and functional from audio perspective lack
i915 support on drm side what results in -ENODEV during the probing
sequence. There is no reason to perform recovery procedure e.g.: reset
the HDAudio controller if this is the case.

Signed-off-by: Cezary Rojewski <[email protected]>
---
 sound/soc/intel/avs/core.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/sound/soc/intel/avs/core.c b/sound/soc/intel/avs/core.c
index b3e5a5012167..a61ce42b426c 100644
--- a/sound/soc/intel/avs/core.c
+++ b/sound/soc/intel/avs/core.c
@@ -150,7 +150,7 @@ static int probe_codec(struct hdac_bus *bus, int addr)
        /* configure effectively creates new ASoC component */
        ret = snd_hda_codec_configure(codec);
        if (ret < 0) {
-               dev_err(bus->dev, "failed to config codec %d\n", ret);
+               dev_warn(bus->dev, "failed to config codec #%d: %d\n", addr, 
ret);
                return ret;
        }
 
@@ -159,15 +159,16 @@ static int probe_codec(struct hdac_bus *bus, int addr)
 
 static void avs_hdac_bus_probe_codecs(struct hdac_bus *bus)
 {
-       int c;
+       int ret, c;
 
        /* First try to probe all given codec slots */
        for (c = 0; c < HDA_MAX_CODECS; c++) {
                if (!(bus->codec_mask & BIT(c)))
                        continue;
 
-               if (!probe_codec(bus, c))
-                       /* success, continue probing */
+               ret = probe_codec(bus, c);
+               /* Ignore codecs with no supporting driver. */
+               if (!ret || ret == -ENODEV)
                        continue;
 
                /*
-- 
2.25.1

Reply via email to