Re: [PATCH 5.4 1/2] hwmon: Introduce hwmon_device_register_for_thermal

From: Guenter Roeck
Date: Wed Jun 22 2022 - 11:02:41 EST


On Wed, Jun 22, 2022 at 04:49:01PM +0200, Julian Haller wrote:
> From: Guenter Roeck <linux@xxxxxxxxxxxx>
>
> [ upstream commit e5d21072054fbadf41cd56062a3a14e447e8c22b ]
>
> The thermal subsystem registers a hwmon driver without providing
> chip or sysfs group information. This is for legacy reasons and
> would be difficult to change. At the same time, we want to enforce
> that chip information is provided when registering a hwmon device
> using hwmon_device_register_with_info(). To enable this, introduce
> a special API for use only by the thermal subsystem.
>
> Acked-by: Rafael J . Wysocki <rafael@xxxxxxxxxx>
> Signed-off-by: Guenter Roeck <linux@xxxxxxxxxxxx>

What is the point of applying those patches to the 5.4 kernel ?
This was intended for use with new code, not for stable releases.

Guenter

> ---
> drivers/hwmon/hwmon.c | 25 +++++++++++++++++++++++++
> include/linux/hwmon.h | 3 +++
> 2 files changed, 28 insertions(+)
>
> diff --git a/drivers/hwmon/hwmon.c b/drivers/hwmon/hwmon.c
> index c73b93b9bb87..e8a9955e3683 100644
> --- a/drivers/hwmon/hwmon.c
> +++ b/drivers/hwmon/hwmon.c
> @@ -743,6 +743,31 @@ hwmon_device_register_with_info(struct device *dev, const char *name,
> }
> EXPORT_SYMBOL_GPL(hwmon_device_register_with_info);
>
> +/**
> + * hwmon_device_register_for_thermal - register hwmon device for thermal subsystem
> + * @dev: the parent device
> + * @name: hwmon name attribute
> + * @drvdata: driver data to attach to created device
> + *
> + * The use of this function is restricted. It is provided for legacy reasons
> + * and must only be called from the thermal subsystem.
> + *
> + * hwmon_device_unregister() must be called when the device is no
> + * longer needed.
> + *
> + * Returns the pointer to the new device.
> + */
> +struct device *
> +hwmon_device_register_for_thermal(struct device *dev, const char *name,
> + void *drvdata)
> +{
> + if (!name || !dev)
> + return ERR_PTR(-EINVAL);
> +
> + return __hwmon_device_register(dev, name, drvdata, NULL, NULL);
> +}
> +EXPORT_SYMBOL_GPL(hwmon_device_register_for_thermal);
> +
> /**
> * hwmon_device_register - register w/ hwmon
> * @dev: the device to register
> diff --git a/include/linux/hwmon.h b/include/linux/hwmon.h
> index 72579168189d..104c492959b9 100644
> --- a/include/linux/hwmon.h
> +++ b/include/linux/hwmon.h
> @@ -408,6 +408,9 @@ hwmon_device_register_with_info(struct device *dev,
> const struct hwmon_chip_info *info,
> const struct attribute_group **extra_groups);
> struct device *
> +hwmon_device_register_for_thermal(struct device *dev, const char *name,
> + void *drvdata);
> +struct device *
> devm_hwmon_device_register_with_info(struct device *dev,
> const char *name, void *drvdata,
> const struct hwmon_chip_info *info,
> --
> 2.25.1
>