Re: [PATCH] platform/x86: barco-p50-gpio: normalize return value of gpio_get
From: Ilpo Järvinen
Date: Mon Feb 23 2026 - 09:13:00 EST
On Wed, 18 Feb 2026, Dmitry Torokhov wrote:
> The GPIO get callback is expected to return 0 or 1 (or a negative error
> code). Ensure that the value returned by p50_gpio_get() is normalized
> to the [0, 1] range.
>
> Signed-off-by: Dmitry Torokhov <dmitry.torokhov@xxxxxxxxx>
> ---
> drivers/platform/x86/barco-p50-gpio.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/platform/x86/barco-p50-gpio.c b/drivers/platform/x86/barco-p50-gpio.c
> index 6f13e81f98fb..360ffd8505d6 100644
> --- a/drivers/platform/x86/barco-p50-gpio.c
> +++ b/drivers/platform/x86/barco-p50-gpio.c
> @@ -275,8 +275,11 @@ static int p50_gpio_get(struct gpio_chip *gc, unsigned int offset)
> mutex_lock(&p50->lock);
>
> ret = p50_send_mbox_cmd(p50, P50_MBOX_CMD_READ_GPIO, gpio_params[offset], 0);
> - if (ret == 0)
> + if (ret == 0) {
> ret = p50_read_mbox_reg(p50, P50_MBOX_REG_DATA);
> + if (ret >= 0)
> + ret = !!ret;
> + }
>
> mutex_unlock(&p50->lock);
A simpler flow would be preferrable over all that nesting. Is this
logically correct:
guard(mutex)(p50->lock);
ret = p50_send_mbox_cmd(p50, P50_MBOX_CMD_READ_GPIO, gpio_params[offset], 0);
if (ret < 0)
return ret;
ret = p50_read_mbox_reg(p50, P50_MBOX_REG_DATA);
if (ret < 0)
return ret;
return !!ret;
?
--
i.