ASoC: cs35l56: probe() should fail if the device ID is not recognized
authorRichard Fitzgerald <rf@opensource.cirrus.com>
Thu, 3 Jul 2025 10:25:21 +0000 (11:25 +0100)
committerMark Brown <broonie@kernel.org>
Thu, 3 Jul 2025 11:22:27 +0000 (12:22 +0100)
Return an error from driver probe if the DEVID read from the chip is not
one supported by this driver.

In cs35l56_hw_init() there is a check for valid DEVID, but the invalid
case was returning the value of ret. At this point in the code ret == 0
so the caller would think that cs35l56_hw_init() was successful.

Signed-off-by: Richard Fitzgerald <rf@opensource.cirrus.com>
Fixes: 84851aa055c8 ("ASoC: cs35l56: Move part of cs35l56_init() to shared library")
Link: https://patch.msgid.link/20250703102521.54204-1-rf@opensource.cirrus.com
Signed-off-by: Mark Brown <broonie@kernel.org>
sound/soc/codecs/cs35l56-shared.c

index d0831d609584863993e9c9aed3b3635fc35c0f69..ba653f6ccfaefe7401db95c2999e71f7672ddd2a 100644 (file)
@@ -980,7 +980,7 @@ int cs35l56_hw_init(struct cs35l56_base *cs35l56_base)
                break;
        default:
                dev_err(cs35l56_base->dev, "Unknown device %x\n", devid);
-               return ret;
+               return -ENODEV;
        }
 
        cs35l56_base->type = devid & 0xFF;