diff options
author | Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> | 2025-05-01 17:02:00 +0200 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2025-05-05 19:31:28 +0900 |
commit | f4ea37a485e97234af9550b63c52394d029037ee (patch) | |
tree | ee2479078d6a88742ab6bfff0c0759c2a6fdf579 | |
parent | 075812e45e9ef1b882aa66b9d122d8b8739aae59 (diff) |
spi: cs42l43: Make handling missing spk-id GPIOs explicit
gpiod_get_array_optional() for spk-id GPIOs can return NULL, if they are
missing, so do not pass the value to PTR_ERR but instead explicitly
treat NULL as acceptable condition. The old code was correct, but
misleading because PTR_ERR usually is used on errors.
Reported by Smatch:
drivers/spi/spi-cs42l43.c:241 cs42l43_get_speaker_id_gpios() warn: passing zero to 'PTR_ERR'
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://patch.msgid.link/20250501-n-smatch-fixes-v2-2-d2ad9c1f2e67@linaro.org
Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r-- | drivers/spi/spi-cs42l43.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/spi/spi-cs42l43.c b/drivers/spi/spi-cs42l43.c index ceefc253c549..b28a840b3b04 100644 --- a/drivers/spi/spi-cs42l43.c +++ b/drivers/spi/spi-cs42l43.c @@ -237,7 +237,9 @@ static int cs42l43_get_speaker_id_gpios(struct cs42l43_spi *priv, int *result) int i, ret; descs = gpiod_get_array_optional(priv->dev, "spk-id", GPIOD_IN); - if (IS_ERR_OR_NULL(descs)) + if (!descs) + return 0; + else if (IS_ERR(descs)) return PTR_ERR(descs); spkid = 0; |