All of lore.kernel.org
 help / color / mirror / Atom feed
From: <Victor.Duicu@microchip.com>
To: <linux@roeck-us.net>, <pocj8ur4in@gmail.com>
Cc: <linux-hwmon@vger.kernel.org>, <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] hwmon: (mcp9982) Update the interval cache only after successful writes
Date: Mon, 19 Oct 2026 11:46:59 +0000	[thread overview]
Message-ID: <a248dba6bdf09f94e220d0dc47b66caeb0ee8d4b.camel@microchip.com> (raw)
In-Reply-To: <20261018055750.1318723-1-pocj8ur4in@gmail.com>

On Sun, 2026-10-18 at 14:57 +0900, Baek Kyu, Kim wrote:
> mcp9982_write() updates interval_idx before writing the
> conversion-rate
> register. If the write fails without changing the register,
> subsequent
> update_interval reads report the requested interval instead of the
> previous setting.
> 
> Update interval_idx only after regmap_write() succeeds, leaving the
> previous cached interval in place on error.
> 
> Fixes: e2fe950f34e5 ("hwmon: add support for MCP998X")
> Signed-off-by: Baek Kyu, Kim <pocj8ur4in@gmail.com>
> ---
> Tested under ARM64 QEMU with an emulated SMBus adapter through the
> hwmon
> sysfs interface. Rejected writes reproduce the incorrect interval;
> the fix retains the previous value. Successful writes, retries and
> MCP9982D's interval limit were also checked. No physical sensor was
> tested.
> 
>  drivers/hwmon/mcp9982.c | 7 ++++++-
>  1 file changed, 6 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/hwmon/mcp9982.c b/drivers/hwmon/mcp9982.c
> index 3918dc36c946..2cd41dcbd9af 100644
> --- a/drivers/hwmon/mcp9982.c
> +++ b/drivers/hwmon/mcp9982.c
> @@ -624,6 +624,7 @@ static int mcp9982_write(struct device *dev, enum
> hwmon_sensor_types type, u32 a
>  {
>         struct mcp9982_priv *priv = dev_get_drvdata(dev);
>         unsigned int idx;
> +       int ret;
>         u8 addr;
> 
>         switch (type) {
> @@ -640,9 +641,13 @@ static int mcp9982_write(struct device *dev,
> enum hwmon_sensor_types type, u32 a
> 
>                         idx = find_closest_descending(val,
> mcp9982_update_interval,
>                                                      
> ARRAY_SIZE(mcp9982_update_interval));
> +                       ret = regmap_write(priv->regmap,
> MCP9982_CONV_ADDR, idx);
> +                       if (ret)
> +                               return ret;
> +
>                         priv->interval_idx = idx;
> 
> -                       return regmap_write(priv->regmap,
> MCP9982_CONV_ADDR, idx);
> +                       return 0;
>                 default:
>                         return -EINVAL;
>                 }
> 
> base-commit: 58161ead29e50d70a317ea26b472e0c7508e69da
> --
> 2.55.0

Acked-by: Duicu Victor <victor.duicu@microchip.com>

Best regards,
Victor

  parent reply	other threads:[~2026-10-19 11:47 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-18  5:57 [PATCH] hwmon: (mcp9982) Update the interval cache only after successful writes Baek Kyu, Kim
2026-10-18  5:59 ` sashiko-bot
2026-10-19 11:46 ` Victor.Duicu [this message]
2026-10-19 20:14 ` Guenter Roeck

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=a248dba6bdf09f94e220d0dc47b66caeb0ee8d4b.camel@microchip.com \
    --to=victor.duicu@microchip.com \
    --cc=linux-hwmon@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@roeck-us.net \
    --cc=pocj8ur4in@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.