Re: [PATCH] thermal: rcar_gen3_thermal: Add supports the hwmon thermal sysfs
Dear Geert-san, Wolfram-san I'm sorry for the delay at the comments of this patch. And I think it's not hurry! + /* Enable hwmon thermal sysfs */ + tsc->zone->tzp->no_hwmon = false; + ret = thermal_add_hwmon_sysfs(tsc->zone); + if (ret) + dev_err(dev, "Can't register hwmon sysfs\n"); + dev_info(dev, "TSC%d: Loaded %d trip points\n", i, ret); } You forgot to call thermal_remove_hwmon_sysfs() in the .remove() callback? I got it, Thanks! On 2018/11/13 20:57, Wolfram Sang wrote: Hi Hoan, + /* Enable hwmon thermal sysfs */ + tsc->zone->tzp->no_hwmon = false; A driver diving so deep into core structures always looks suspicious. Questions I have: 1) We have that code also in rcar_thermal.c, but the commit introducing it[1] has a reason which does not apply for this driver, or? This is not the reason to apply this patch. I would say here are the general Linux systems, or as if the systems that thermal was registered by "thermal_zone_device_register()". The Linux community has developed tools that use this, such as "lm-sensors", my Ubuntu and rcar-Gen2 are still compatible with lm-sensors but Gen3 does not. Although I do not want to say paradoxical that the kernel drivers must be compatible with the user-space applications. 2) of_parse_thermal_zones() intentionally sets this flag with this comment: /* No hwmon because there might be hwmon drivers registering */ Why does it not apply for us? I think so it should be registered separately. 3) If it turns out, we really need it, there should be some thermal core helper or flag for it, I'd think... Yes, It up to you! Regards, Wolfram [1] 64a411e8042e ("thermal: rcar-thermal: enable hwmon when thermal_zone_of_sensor_register is used") Thank you very much for your comments :-)! Hoan.
Re: [PATCH] thermal: rcar_gen3_thermal: Add supports the hwmon thermal sysfs
> Please run scripts/get_maintainer.pl on your patches, to get the list of > maintainers. > > CC thermal Thanks, Geert! Hi Hoan, > + /* Enable hwmon thermal sysfs */ > + tsc->zone->tzp->no_hwmon = false; A driver diving so deep into core structures always looks suspicious. Questions I have: 1) We have that code also in rcar_thermal.c, but the commit introducing it[1] has a reason which does not apply for this driver, or? 2) of_parse_thermal_zones() intentionally sets this flag with this comment: /* No hwmon because there might be hwmon drivers registering */ Why does it not apply for us? 3) If it turns out, we really need it, there should be some thermal core helper or flag for it, I'd think... Regards, Wolfram [1] 64a411e8042e ("thermal: rcar-thermal: enable hwmon when thermal_zone_of_sensor_register is used") signature.asc Description: PGP signature
Re: [PATCH] thermal: rcar_gen3_thermal: Add supports the hwmon thermal sysfs
Hi Hoan, Thanks for your patch! Please run scripts/get_maintainer.pl on your patches, to get the list of maintainers. CC thermal On Tue, Nov 13, 2018 at 7:46 AM Nguyen An Hoan wrote: > > From: Hoan Nguyen An > > Gen3 thermal registered by devm_thermal_zone_of_sensor_register() > and this function does not enable hwmon sysfs extensions. > This patch enables it to keep compatibility to common systems > > Signed-off-by: Hoan Nguyen An > --- > drivers/thermal/rcar_gen3_thermal.c | 7 +++ > 1 file changed, 7 insertions(+) > > diff --git a/drivers/thermal/rcar_gen3_thermal.c > b/drivers/thermal/rcar_gen3_thermal.c > index 75786cc..ae172db 100644 > --- a/drivers/thermal/rcar_gen3_thermal.c > +++ b/drivers/thermal/rcar_gen3_thermal.c > @@ -19,6 +19,7 @@ > #include > > #include "thermal_core.h" > +#include "thermal_hwmon.h" > > /* Register offsets */ > #define REG_GEN3_IRQSTR0x04 > @@ -429,6 +430,12 @@ static int rcar_gen3_thermal_probe(struct > platform_device *pdev) > if (ret < 0) > goto error_unregister; > > + /* Enable hwmon thermal sysfs */ > + tsc->zone->tzp->no_hwmon = false; > + ret = thermal_add_hwmon_sysfs(tsc->zone); > + if (ret) > + dev_err(dev, "Can't register hwmon sysfs\n"); > + > dev_info(dev, "TSC%d: Loaded %d trip points\n", i, ret); > } > You forgot to call thermal_remove_hwmon_sysfs() in the .remove() callback? Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- ge...@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds
[PATCH] thermal: rcar_gen3_thermal: Add supports the hwmon thermal sysfs
From: Hoan Nguyen An Gen3 thermal registered by devm_thermal_zone_of_sensor_register() and this function does not enable hwmon sysfs extensions. This patch enables it to keep compatibility to common systems Signed-off-by: Hoan Nguyen An --- drivers/thermal/rcar_gen3_thermal.c | 7 +++ 1 file changed, 7 insertions(+) diff --git a/drivers/thermal/rcar_gen3_thermal.c b/drivers/thermal/rcar_gen3_thermal.c index 75786cc..ae172db 100644 --- a/drivers/thermal/rcar_gen3_thermal.c +++ b/drivers/thermal/rcar_gen3_thermal.c @@ -19,6 +19,7 @@ #include #include "thermal_core.h" +#include "thermal_hwmon.h" /* Register offsets */ #define REG_GEN3_IRQSTR0x04 @@ -429,6 +430,12 @@ static int rcar_gen3_thermal_probe(struct platform_device *pdev) if (ret < 0) goto error_unregister; + /* Enable hwmon thermal sysfs */ + tsc->zone->tzp->no_hwmon = false; + ret = thermal_add_hwmon_sysfs(tsc->zone); + if (ret) + dev_err(dev, "Can't register hwmon sysfs\n"); + dev_info(dev, "TSC%d: Loaded %d trip points\n", i, ret); } -- 2.7.4