[PATCH] power: supply: mt6370: Fix missing error code in mt6370_chg_toggle_cfo()

AngeloGioacchino Del Regno angelogioacchino.delregno at collabora.com
Thu Sep 7 03:43:12 PDT 2023


Il 06/09/23 10:48, Harshit Mogalapalli ha scritto:
> When mt6370_chg_field_get() suceeds, ret is set to zero and returning
> zero when flash led is still in strobe mode looks incorrect.
> 
> Fixes: 233cb8a47d65 ("power: supply: mt6370: Add MediaTek MT6370 charger driver")
> Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli at oracle.com>
> ---
> This is based on static analysis with smatch, only compile tested.
> ---
>   drivers/power/supply/mt6370-charger.c | 2 +-
>   1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/drivers/power/supply/mt6370-charger.c b/drivers/power/supply/mt6370-charger.c
> index f27dae5043f5..a9641bd3d8cf 100644
> --- a/drivers/power/supply/mt6370-charger.c
> +++ b/drivers/power/supply/mt6370-charger.c
> @@ -324,7 +324,7 @@ static int mt6370_chg_toggle_cfo(struct mt6370_priv *priv)
>   
>   	if (fl_strobe) {
>   		dev_err(priv->dev, "Flash led is still in strobe mode\n");
> -		return ret;
> +		return -EINVAL;

I think that returning 0 here was intentional, but I agree on a return ret
here being both confusing and wrong.

That's how I get this logic:

The function is enabling strobe mode, but if the flash led is *already* in
strobe mode, the function exits cleanly because there's nothing to do, as
the enablement is already done.

Hence.... I believe that the right fix is not to return -EINVAL, but rather
to change that to `return 0` instead.

ChiaEn, can you please confirm, or deny my statement?

Regards,
Angelo

>   	}
>   
>   	/* cfo off */





More information about the Linux-mediatek mailing list