linux-pm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Krzysztof Kozlowski <krzk@kernel.org>
To: Matheus Castello <matheus@castello.eng.br>
Cc: sre@kernel.org, robh+dt@kernel.org, mark.rutland@arm.com,
	"Chanwoo Choi" <cw00.choi@samsung.com>,
	"Bartłomiej Żołnierkiewicz" <b.zolnierkie@samsung.com>,
	lee.jones@linaro.org, linux-pm@vger.kernel.org,
	devicetree@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 4/5] power: supply: max17040: Clear ALRT bit when the SOC are above threshold
Date: Wed, 29 May 2019 16:54:47 +0200	[thread overview]
Message-ID: <CAJKOXPcFPwBJ26V2rOS7t5H221B0H-MsDmC4Xb7gGHRX_ETxtQ@mail.gmail.com> (raw)
In-Reply-To: <20190527022258.32748-5-matheus@castello.eng.br>

On Mon, 27 May 2019 at 04:45, Matheus Castello <matheus@castello.eng.br> wrote:
>
> In order to not generate duplicate interrupts we clear the ALRT bit when
> the SOC is in a state that shows that the battery is charged above the set
> threshold for the SOC low level alert.

I think interrupt/alert bit should be cleared while handling
interrupt, not later because:
1. It is logical to clear it when servicing it,
2. It is simpler - no need for "chip->alert_bit",
3. The alert threshold is understood as alert/warning so every
interrupt should generate uevent. I understand you wanted to remove
"duplicate interrupts" but in fact there are no duplicates. Every next
interrupt comes from change of SoC while being below the critical
level. Therefore on each such change user-space should be woken up and
notified (e.g. to show the message to the user).

I also think this should be squashed with previous patch as it does
not make sense as standalone commit.

>
> Signed-off-by: Matheus Castello <matheus@castello.eng.br>
> ---
>  drivers/power/supply/max17040_battery.c | 11 +++++++++++
>  1 file changed, 11 insertions(+)
>
> diff --git a/drivers/power/supply/max17040_battery.c b/drivers/power/supply/max17040_battery.c
> index 2f4851608cfe..61e6fcfea8a1 100644
> --- a/drivers/power/supply/max17040_battery.c
> +++ b/drivers/power/supply/max17040_battery.c
> @@ -48,6 +48,7 @@ struct max17040_chip {
>         int status;
>         /* Low alert threshold from 32% to 1% of the State of Charge */
>         u32 low_soc_alert_threshold;
> +       int alert_bit;
>  };
>
>  static int max17040_get_property(struct power_supply *psy,
> @@ -107,6 +108,7 @@ static void max17040_reset(struct i2c_client *client)
>  static int max17040_set_low_soc_threshold_alert(struct i2c_client *client,
>         u32 level)
>  {
> +       struct max17040_chip *chip = i2c_get_clientdata(client);
>         int ret;
>         u16 data;
>
> @@ -118,6 +120,7 @@ static int max17040_set_low_soc_threshold_alert(struct i2c_client *client,
>                 data &= MAX17040_ATHD_MASK;
>                 data |= level;
>                 max17040_write_reg(client, MAX17040_RCOMP, data);
> +               chip->alert_bit = 0;
>                 ret = 0;
>         } else {
>                 ret = -EINVAL;
> @@ -144,6 +147,11 @@ static void max17040_get_soc(struct i2c_client *client)
>         soc = max17040_read_reg(client, MAX17040_SOC);
>
>         chip->soc = (soc >> 8);
> +
> +       /* check SOC level to clear ALRT bit */
> +       if (chip->soc > chip->low_soc_alert_threshold && chip->alert_bit)
> +               max17040_set_low_soc_threshold_alert(client,
> +                       chip->low_soc_alert_threshold);
>  }
>
>  static void max17040_get_version(struct i2c_client *client)
> @@ -229,6 +237,9 @@ static irqreturn_t max17040_thread_handler(int id, void *dev)
>         /* send uevent */
>         power_supply_changed(chip->battery);
>
> +       /* ALRT bit is seted */

s/seted/set/

Best regards,
Krzysztof

> +       chip->alert_bit = 1;
> +
>         return IRQ_HANDLED;
>  }
>
> --
> 2.20.1
>

  reply	other threads:[~2019-05-29 14:55 UTC|newest]

Thread overview: 82+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-23  4:08 [PATCH 0/4] power: supply: MAX17040: Add IRQ for low level and alert SOC changes Matheus Castello
2018-07-23  4:08 ` [PATCH 1/4] power: supply: max17040: Add IRQ handler for low SOC alert Matheus Castello
2018-07-25 10:27   ` Krzysztof Kozlowski
2018-07-23  4:08 ` [PATCH 2/4] power: supply: max17040: Config alert SOC low level threshold from FDT Matheus Castello
2018-07-25 10:42   ` Krzysztof Kozlowski
2018-07-23  4:08 ` [PATCH 3/4] dt-bindings: power: supply: Max17040: Add low level SOC alert threshold Matheus Castello
2018-07-25 10:45   ` Krzysztof Kozlowski
2018-07-23  4:08 ` [PATCH 4/4] power: supply: max17040: Send uevent in SOC changes Matheus Castello
2018-07-25 10:52   ` Krzysztof Kozlowski
2018-09-16 11:45 ` [PATCH 0/4] power: supply: MAX17040: Add IRQ for low level and alert " Sebastian Reichel
2018-09-17 11:32   ` Krzysztof Kozlowski
2018-09-18  3:45     ` Matheus Castello
2019-04-15  1:26     ` [PATCH v2 " Matheus Castello
2019-04-15  1:26       ` Matheus Castello
2019-04-15  1:26       ` [PATCH v2 1/4] power: supply: max17040: Add IRQ handler for low SOC alert Matheus Castello
2019-04-15  1:26         ` Matheus Castello
2019-04-15  7:10         ` Krzysztof Kozlowski
2019-04-15  7:10           ` Krzysztof Kozlowski
2019-04-19 18:12           ` Matheus Castello
2019-04-19 18:12             ` Matheus Castello
2019-04-15  1:26       ` [PATCH v2 2/4] dt-bindings: power: supply: Max17040: Add low level SOC alert threshold Matheus Castello
2019-04-15  1:26         ` Matheus Castello
2019-04-15  7:13         ` Krzysztof Kozlowski
2019-04-15  7:13           ` Krzysztof Kozlowski
2019-04-29 22:13         ` Rob Herring
2019-04-29 22:13           ` Rob Herring
2019-05-26 23:13           ` Matheus Castello
2019-04-15  1:26       ` [PATCH v2 3/4] power: supply: max17040: Config alert SOC low level threshold from FDT Matheus Castello
2019-04-15  1:26         ` Matheus Castello
2019-04-15  7:27         ` Krzysztof Kozlowski
2019-04-15  7:27           ` Krzysztof Kozlowski
2019-04-15  1:26       ` [PATCH v2 4/4] power: supply: max17040: Send uevent in SOC changes Matheus Castello
2019-04-15  1:26         ` Matheus Castello
2019-04-15  7:30         ` Krzysztof Kozlowski
2019-04-15  7:30           ` Krzysztof Kozlowski
2019-05-27  2:22           ` [PATCH v3 0/5] power: supply: MAX17040: Add IRQ for low level and alert " Matheus Castello
2019-05-27  2:22             ` [PATCH v3 1/5] power: supply: max17040: Add IRQ handler for low SOC alert Matheus Castello
2019-05-29 14:26               ` Krzysztof Kozlowski
2019-05-27  2:22             ` [PATCH v3 2/5] dt-bindings: power: supply: Max17040: Add low level SOC alert threshold Matheus Castello
2019-05-29 14:40               ` Krzysztof Kozlowski
2019-05-29 14:57               ` Krzysztof Kozlowski
2019-06-02 21:38                 ` Matheus Castello
2019-06-05 12:04                   ` Krzysztof Kozlowski
2019-05-27  2:22             ` [PATCH v3 3/5] power: supply: max17040: Config alert SOC low level threshold from FDT Matheus Castello
2019-05-29 14:46               ` Krzysztof Kozlowski
2019-06-02 22:26                 ` Matheus Castello
2019-06-05 12:05                   ` Krzysztof Kozlowski
2019-05-27  2:22             ` [PATCH v3 4/5] power: supply: max17040: Clear ALRT bit when the SOC are above threshold Matheus Castello
2019-05-29 14:54               ` Krzysztof Kozlowski [this message]
2019-05-27  2:22             ` [PATCH v3 5/5] power: supply: max17040: Send uevent in SOC and status change Matheus Castello
2019-05-29 15:00               ` Krzysztof Kozlowski
2019-10-31 18:41                 ` [PATCH v4 0/4] power: supply: MAX17040: Add IRQ for low level and alert SOC changes Matheus Castello
2019-10-31 18:41                   ` [PATCH v4 1/4] power: supply: max17040: Add IRQ handler for low SOC alert Matheus Castello
2019-11-01 15:08                     ` Krzysztof Kozlowski
2019-10-31 18:41                   ` [PATCH v4 2/4] dt-bindings: power: supply: Max17040: Add low level SOC alert threshold Matheus Castello
2019-11-01 15:10                     ` Krzysztof Kozlowski
2019-11-05  1:58                     ` Rob Herring
2019-11-05  5:42                       ` [PATCH v5 0/5] power: supply: MAX17040: Add IRQ for low level and alert SOC changes Matheus Castello
2019-11-05  5:42                         ` [PATCH v5 1/5] power: supply: max17040: Add IRQ handler for low SOC alert Matheus Castello
2019-11-05  5:42                         ` [PATCH v5 2/5] dt-bindings: power: supply: Max17040: Add DT bindings for max17040 fuel gauge Matheus Castello
2019-11-05  5:42                         ` [PATCH v5 3/5] devicetree: mfd: max14577: Add reference to max14040_battery.txt descriptions Matheus Castello
2019-11-05  5:42                         ` [PATCH v5 4/5] power: supply: max17040: Config alert SOC low level threshold from FDT Matheus Castello
2019-11-05  9:59                           ` Krzysztof Kozlowski
2019-11-07  3:17                             ` [PATCH v6 0/5] power: supply: MAX17040: Add IRQ for low level and alert SOC changes Matheus Castello
2019-11-07  3:17                               ` [PATCH v6 1/5] power: supply: max17040: Add IRQ handler for low SOC alert Matheus Castello
2019-11-07  3:17                               ` [PATCH v6 2/5] dt-bindings: power: supply: Max17040: Add DT bindings for max17040 fuel gauge Matheus Castello
2019-11-14  0:53                                 ` Rob Herring
2019-11-07  3:17                               ` [PATCH v6 3/5] devicetree: mfd: max14577: Add reference to max14040_battery.txt descriptions Matheus Castello
2019-11-11 10:09                                 ` Lee Jones
2019-11-14  0:54                                 ` Rob Herring
2019-11-07  3:17                               ` [PATCH v6 4/5] power: supply: max17040: Config alert SOC low level threshold from FDT Matheus Castello
2019-11-07  3:17                               ` [PATCH v6 5/5] power: supply: max17040: Send uevent in SOC and status change Matheus Castello
2019-11-11  9:59                               ` [PATCH v6 0/5] power: supply: MAX17040: Add IRQ for low level and alert SOC changes Lee Jones
2019-11-05  5:42                         ` [PATCH v5 5/5] power: supply: max17040: Send uevent in SOC and status change Matheus Castello
2019-10-31 18:41                   ` [PATCH v4 3/4] power: supply: max17040: Config alert SOC low level threshold from FDT Matheus Castello
2019-11-01 15:27                     ` Krzysztof Kozlowski
2019-11-01 16:52                       ` Matheus Castello
2019-11-02 18:12                         ` Matheus Castello
2019-11-04 11:04                           ` Krzysztof Kozlowski
2019-11-04 10:59                         ` Krzysztof Kozlowski
2019-10-31 18:41                   ` [PATCH v4 4/4] power: supply: max17040: Send uevent in SOC and status change Matheus Castello
2019-11-01 15:30                     ` Krzysztof Kozlowski

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=CAJKOXPcFPwBJ26V2rOS7t5H221B0H-MsDmC4Xb7gGHRX_ETxtQ@mail.gmail.com \
    --to=krzk@kernel.org \
    --cc=b.zolnierkie@samsung.com \
    --cc=cw00.choi@samsung.com \
    --cc=devicetree@vger.kernel.org \
    --cc=lee.jones@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=mark.rutland@arm.com \
    --cc=matheus@castello.eng.br \
    --cc=robh+dt@kernel.org \
    --cc=sre@kernel.org \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).