Re: [PATCH v1 00/21] hwmon: Fix the type of 'config' in struct hwmon_channel_info to u64

Armin Wolf
2025-01-21T14:14:04Z

Am 21.01.25 um 07:44 schrieb Huisong Li:

> The hwmon_device_register() is deprecated. When I try to repace it with
> hwmon_device_register_with_info() for acpi_power_meter driver, I found that
> the power channel attribute in linux/hwmon.h have to extend and is more
> than 32 after this replacement.
>
> However, the maximum number of hwmon channel attributes is 32 which is
> limited by current hwmon codes. This is not good to add new channel
> attribute for some hwmon sensor type and support more channel attribute.
>
> This series are aimed to do this. And also make sure that acpi_power_meter
> driver can successfully replace the deprecated hwmon_device_register()
> later.

Hi,

what kind of new power attributes do you want to add to the hwmon API?

AFAIK the acpi-power-meter driver supports the following attributes:

power1_accuracy -> HWMON_P_ACCURACY
power1_cap_min -> HWMON_P_CAP_MIN
power1_cap_max -> HWMON_P_CAP_MAX
power1_cap_hyst -> HWMON_P_CAP_HYST
power1_cap -> HWMON_P_CAP
power1_average -> HWMON_P_AVERAGE
power1_average_min -> HWMON_P_AVERAGE_MIN
power1_average_max -> HWMON_P_AVERAGE_MAX
power1_average_interval -> HWMON_P_AVERAGE_INTERVAL
power1_average_interval_min -> HWMON_P_AVERAGE_INTERVAL_MIN
power1_average_interval_max -> HWMON_P_AVERAGE_INTERVAL_MAX
power1_alarm -> HWMON_P_ALARM
power1_model_number
power1_oem_info
power1_serial_number
power1_is_battery
name -> handled by hwmon core

The remaining attributes are in my opinion not generic enough to add them to the generic
hwmon power attributes. I think you should implement them as a attribute_group which can
be passed to hwmon_device_register_with_info() using the "extra_groups" parameter.

Thanks,
Armin Wolf

>
> Huisong Li (21):
> hwmon: Fix the type of 'config' in struct hwmon_channel_info to u64
> media: video-i2c: Use HWMON_CHANNEL_INFO macro to simplify code
> net: aquantia: Use HWMON_CHANNEL_INFO macro to simplify code
> net: nfp: Use HWMON_CHANNEL_INFO macro to simplify code
> net: phy: marvell: Use HWMON_CHANNEL_INFO macro to simplify code
> net: phy: marvell10g: Use HWMON_CHANNEL_INFO macro to simplify code
> rtc: ab-eoz9: Use HWMON_CHANNEL_INFO macro to simplify code
> rtc: ds3232: Use HWMON_CHANNEL_INFO macro to simplify code
> w1: w1_therm: w1: Use HWMON_CHANNEL_INFO macro to simplify code
> net: phy: aquantia: Use HWMON_CHANNEL_INFO macro to simplify code
> hwmon: (asus_wmi_sensors) Fix type of 'config' in struct
> hwmon_channel_info to u64
> hwmon: (hp-wmi-sensors) Fix type of 'config' in struct
> hwmon_channel_info to u64
> hwmon: (mr75203) Fix the type of 'config' in struct hwmon_channel_info
> to u64
> hwmon: (pwm-fan) Fix the type of 'config' in struct hwmon_channel_info
> to u64
> hwmon: (scmi-hwmon) Fix the type of 'config' in struct
> hwmon_channel_info to u64
> hwmon: (tmp401) Fix the type of 'config' in struct hwmon_channel_info
> to u64
> hwmon: (tmp421) Fix the type of 'config' in struct hwmon_channel_info
> to u64
> net/mlx5: Fix the type of 'config' in struct hwmon_channel_info to u64
> platform/x86: dell-ddv: Fix the type of 'config' in struct
> hwmon_channel_info to u64
> hwmon: (asus-ec-sensors) Fix the type of 'config' in struct
> hwmon_channel_info to u64
> hwmon: (lm90) Fix the type of 'config' in struct hwmon_channel_info to
> u64
>
> drivers/hwmon/asus-ec-sensors.c | 6 +-
> drivers/hwmon/asus_wmi_sensors.c | 8 +-
> drivers/hwmon/hp-wmi-sensors.c | 6 +-
> drivers/hwmon/hwmon.c | 4 +-
> drivers/hwmon/lm90.c | 4 +-
> drivers/hwmon/mr75203.c | 6 +-
> drivers/hwmon/pwm-fan.c | 4 +-
> drivers/hwmon/scmi-hwmon.c | 6 +-
> drivers/hwmon/tmp401.c | 4 +-
> drivers/hwmon/tmp421.c | 2 +-
> drivers/media/i2c/video-i2c.c | 12 +-
> .../ethernet/aquantia/atlantic/aq_drvinfo.c | 14 +-
> .../net/ethernet/mellanox/mlx5/core/hwmon.c | 8 +-
> .../net/ethernet/netronome/nfp/nfp_hwmon.c | 40 +--
> drivers/net/phy/aquantia/aquantia_hwmon.c | 32 +-
> drivers/net/phy/marvell.c | 24 +-
> drivers/net/phy/marvell10g.c | 24 +-
> drivers/platform/x86/dell/dell-wmi-ddv.c | 6 +-
> drivers/rtc/rtc-ab-eoz9.c | 24 +-
> drivers/rtc/rtc-ds3232.c | 24 +-
> drivers/w1/slaves/w1_therm.c | 12 +-
> include/linux/hwmon.h | 300 +++++++++---------
> 22 files changed, 205 insertions(+), 365 deletions(-)
>