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 >