Re: [PATCH 2/4] iio: pressure: mpl3115: clean up interrupt handling and locking

Andy Shevchenko <[email protected]>
Newsgroups dev.linux.lists.linux-kernel-mentees,org.kernel.vger.linux-iio
Message-ID <CAHp75VeeAOnUj018z_JdSKZagXP7yYaw7okm0jdT8BBp_DM6iQ@mail.gmail.com>
On Sat, May 30, 2026 at 1:40 PM SeungJu Cheon <[email protected]> wrote:
>
> Return IRQ_NONE instead of IRQ_HANDLED when reading
> INT_SOURCE fails.
>
> On shared interrupt lines, returning IRQ_HANDLED after a
> failed register read may prevent other handlers from being
> invoked.

> Switch the trigger handler from explicit mutex_lock/unlock
> to scoped_guard() for consistency with the locking style
> used elsewhere in the driver.

Split these two. Moving to scoped_guard() is a separate refactoring.

> Move mpl3115_config_interrupt() above the interrupt handler
> in preparation for the FIFO support added in a subsequent
> patch.

> No functional change intended.

But this is a lie. The change is a (big enough) functional change and
actually it feels and sounds like it deserves a Fixes tag.

...

> +reg1_cleanup:
> +       i2c_smbus_write_byte_data(data->client, MPL3115_CTRL_REG1,
> +                                 data->ctrl_reg1);

And if this fails?.. (Okay, this is not this patch issue, it's an
original code.)

> +       return ret;
> +}

...

> -static int mpl3115_config_interrupt(struct mpl3115_data *data,
> -                                   u8 ctrl_reg1, u8 ctrl_reg4)
> -{
> -       int ret;
> -
> -       ret = i2c_smbus_write_byte_data(data->client, MPL3115_CTRL_REG1,
> -                                       ctrl_reg1);
> -       if (ret < 0)
> -               return ret;
> -
> -       ret = i2c_smbus_write_byte_data(data->client, MPL3115_CTRL_REG4,
> -                                       ctrl_reg4);
> -       if (ret < 0)
> -               goto reg1_cleanup;
> -
> -       data->ctrl_reg1 = ctrl_reg1;
> -       data->ctrl_reg4 = ctrl_reg4;
> -
> -       return 0;
> -
> -reg1_cleanup:
> -       i2c_smbus_write_byte_data(data->client, MPL3115_CTRL_REG1,
> -                                 data->ctrl_reg1);
> -       return ret;
> -}

If you need to move it up, split this move to a separate patch.

-- 
With Best Regards,
Andy Shevchenko
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.