]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
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)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 17 Jul 2025 16:35:08 +0000 (18:35 +0200)
[ Upstream commit 3b3312f28ee2d9c386602f8521e419cfc69f4823 ]

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>
Signed-off-by: Sasha Levin <sashal@kernel.org>
sound/soc/codecs/cs35l56-shared.c

index d3db89c93b331d7ce4bc8f995f140f32818e1a0a..25ee7477709e76a2311cdc091627a9e0c201472a 100644 (file)
@@ -661,7 +661,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;
        }
 
        ret = regmap_read(cs35l56_base->regmap, CS35L56_DSP_RESTRICT_STS1, &secured);