Re: [PATCH] platform/x86: barco-p50-gpio: normalize return value of gpio_get
From: Ilpo Järvinen
Date: Tue Mar 17 2026 - 09:25:19 EST
On Mon, 9 Mar 2026, Dmitry Torokhov wrote:
> On Mon, Feb 23, 2026 at 04:11:10PM +0200, Ilpo Järvinen wrote:
> > 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;
>
> Yes, but I wanted to minimize the amount of change. Maybe I should send
> a followup patch converting to guard()?
Please do. I don't want to be adding into complexity when we've a nice
solution to simplify it using guard().
--
i.