Re: [External] : RE: Re : [PATCH v5 3/5] thermal: renesas: rzg3e: Add thermal driver for the Renesas RZ/G3E SoC

From: ALOK TIWARI
Date: Fri Apr 04 2025 - 09:07:16 EST


Hi John,

On 03-04-2025 00:52, John Madieu wrote:
Hi Alok,

-----Original Message-----
From: ALOK TIWARI <alok.a.tiwari@xxxxxxxxxx>
Sent: Tuesday, April 1, 2025 8:24 PM
To: John Madieu <john.madieu.xa@xxxxxxxxxxxxxx>; geert+renesas@xxxxxxxxx;
conor+dt@xxxxxxxxxx; krzk+dt@xxxxxxxxxx; robh@xxxxxxxxxx;
rafael@xxxxxxxxxx; daniel.lezcano@xxxxxxxxxx
Subject: Re : [PATCH v5 3/5] thermal: renesas: rzg3e: Add thermal driver
for the Renesas RZ/G3E SoC

Hi John,

Thanks for your reply.

On 01-04-2025 17:35, John Madieu wrote:
Hi Alok,

Thanks for your feedback.

-----Original Message-----
From: ALOK TIWARI <alok.a.tiwari@xxxxxxxxxx>
Sent: Monday, March 31, 2025 8:11 PM
To: John Madieu <john.madieu.xa@xxxxxxxxxxxxxx>;
geert+renesas@xxxxxxxxx;
conor+dt@xxxxxxxxxx; krzk+dt@xxxxxxxxxx; robh@xxxxxxxxxx;
rafael@xxxxxxxxxx; daniel.lezcano@xxxxxxxxxx
Subject: Re : [PATCH v5 3/5] thermal: renesas: rzg3e: Add thermal
driver for the Renesas RZ/G3E SoC



On 31-03-2025 03:19, John Madieu wrote:
The RZ/G3E SoC integrates a Temperature Sensor Unit (TSU) block

+static int rzg3e_thermal_change_mode(struct thermal_zone_device *tz,
+ enum thermal_device_mode mode) {
+ struct rzg3e_thermal_priv *priv = thermal_zone_device_priv(tz);
+
+ if (mode == THERMAL_DEVICE_DISABLED)
+ rzg3e_thermal_hw_disable(priv);
+ else
+ rzg3e_thermal_hw_enable(priv);
+
+ priv->mode = mode;
+ return 0;
+}
+
always return 0 here ? what, if (!priv) return -EINVAL; ?

priv cannot be NULL here, guaranteed from probe().
Returning 0 here is expected by the thermal framework to notify ops
success.


I agreed. priv cannot be NULL.
It appears that return 0 is deliberate in this case. can we add Meaningful
comment which help to code readability.


This is a standard tzd ops, which expects 0 to be returned
for disabling/enabling success. This is how it's implemented
in every Thermal driver I've gone through in the -next tree.

not sure if user call ioctl(fd, THERMAL_IOC_SET_MODE, 2) and it returns
0 with thermal enable.
that create possibility to thermal_core call thermal_notify_tz_disable if
any case

Am I missing something ?


That's fine. it is not supporting ioctl.
usually thermal core driver do check if(mode == THERMAL_DEVICE_ENABLED) condition, else part is by-default.
as it is supporting only enable/disable case from /sys/class/thermal/thermal_zone0/mode. it does not create any issue.
LGTM.

+static const struct thermal_zone_device_ops rzg3e_tz_ops = {
+ .get_temp = rzg3e_thermal_get_temp,
+ .set_trips = rzg3e_thermal_set_trips,
+ .change_mode = rzg3e_thermal_change_mode, };
other renesas driver defined as rzg2l_tz_of_ops, can be used similar
one rzg3e_tz_of_ops for consistency!

Thanks for pointing it out. Makes sense. Will double check and update
accordingly.

+
+static int rzg3e_thermal_probe(struct platform_device *pdev) {
+ struct device *dev = &pdev->dev;
+ struct rzg3e_thermal_priv *priv;
+ struct reset_control *rstc;

Regards,
John