On 9/23/25 12:28 PM, Dan Carpenter wrote: > The error handling does not work because common->micb_vout[] is an array > of u32. We need a signed variable to store negative error codes. > > Fixes: 4f16b6351bbf ("ASoC: codecs: wcd: add common helper for wcd codecs") > Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx> > --- Thanks Dan for fixing this, Reviewed-by: Srinivas Kandagatla <srinivas.kandagatla@xxxxxxxxxxxxxxxx> --srini > sound/soc/codecs/wcd-common.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/sound/soc/codecs/wcd-common.c b/sound/soc/codecs/wcd-common.c > index 9bbfda828377..9016e974582f 100644 > --- a/sound/soc/codecs/wcd-common.c > +++ b/sound/soc/codecs/wcd-common.c > @@ -62,12 +62,13 @@ static int wcd_get_micbias_val(struct device *dev, int micb_num, u32 *micb_mv) > > int wcd_dt_parse_micbias_info(struct wcd_common *common) > { > - int i; > + int ret, i; > > for (i = 0; i < common->max_bias; i++) { > - common->micb_vout[i] = wcd_get_micbias_val(common->dev, i + 1, &common->micb_mv[i]); > - if (common->micb_vout[i] < 0) > - return -EINVAL; > + ret = wcd_get_micbias_val(common->dev, i + 1, &common->micb_mv[i]); > + if (ret < 0) > + return ret; > + common->micb_vout[i] = ret; > } > > return 0;