hwmon: (acpi_power_meter) Fix the fake power alarm reporting

We encountered a problem that a fake power alarm is reported to
user on the platform unsupported notifications at the second step
below:
1> Query 'power1_alarm' attribute when the power capping occurs.
2> Query 'power1_alarm' attribute when the power capping is over
   and the current average power is less then power cap value.

The root cause is that the resource->power_alarm is set to true
at the first step. And power meter use this old value to show
the power alarm state instead of the current the comparison value.

Signed-off-by: Huisong Li <lihuisong@huawei.com>
Link: https://lore.kernel.org/r/20250220030832.2976-1-lihuisong@huawei.com
Signed-off-by: Guenter Roeck <linux@roeck-us.net>
This commit is contained in:
Huisong Li 2025-02-20 11:08:32 +08:00 committed by Guenter Roeck
parent 9fee7d19ba
commit 0ea627381e

View File

@ -437,9 +437,13 @@ static ssize_t show_val(struct device *dev,
ret = update_cap(resource);
if (ret)
return ret;
resource->power_alarm = resource->power > resource->cap;
val = resource->power_alarm;
} else {
val = resource->power_alarm ||
resource->power > resource->cap;
resource->power_alarm = resource->power > resource->cap;
}
val = resource->power_alarm || resource->power > resource->cap;
resource->power_alarm = resource->power > resource->cap;
break;
case 7:
case 8: