Message ID | 3322893.aeNJFYEL58@rjwysocki.net |
---|---|
State | New |
Headers | show |
Series | thermal: Use trip pointers in thermal driver interface | expand |
On 7/29/24 16:53, Rafael J. Wysocki wrote: > From: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > > Modify the bcm2835 thermal driver to use thermal_zone_get_crit_temp() in > bcm2835_thermal_probe() instead of relying on the assumption that the > critical trip index will always be 0. > > Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com> > --- > drivers/thermal/broadcom/bcm2835_thermal.c | 7 +++---- > 1 file changed, 3 insertions(+), 4 deletions(-) > > Index: linux-pm/drivers/thermal/broadcom/bcm2835_thermal.c > =================================================================== > --- linux-pm.orig/drivers/thermal/broadcom/bcm2835_thermal.c > +++ linux-pm/drivers/thermal/broadcom/bcm2835_thermal.c > @@ -208,8 +208,7 @@ static int bcm2835_thermal_probe(struct > */ > val = readl(data->regs + BCM2835_TS_TSENSCTL); > if (!(val & BCM2835_TS_TSENSCTL_RSTB)) { > - struct thermal_trip trip; > - int offset, slope; > + int offset, slope, crit_temp; > > slope = thermal_zone_get_slope(tz); > offset = thermal_zone_get_offset(tz); > @@ -217,7 +216,7 @@ static int bcm2835_thermal_probe(struct > * For now we deal only with critical, otherwise > * would need to iterate > */ > - err = thermal_zone_get_trip(tz, 0, &trip); > + err = thermal_zone_get_crit_temp(tz, &crit_temp); > if (err < 0) { > dev_err(dev, "Not able to read trip_temp: %d\n", err); > return err; > @@ -232,7 +231,7 @@ static int bcm2835_thermal_probe(struct > val |= (0xFE << BCM2835_TS_TSENSCTL_RSTDELAY_SHIFT); > > /* trip_adc value from info */ > - val |= bcm2835_thermal_temp2adc(trip.temperature, > + val |= bcm2835_thermal_temp2adc(crit_temp, > offset, > slope) > << BCM2835_TS_TSENSCTL_THOLD_SHIFT; > > > Reviewed-by: Lukasz Luba <lukasz.luba@arm.com>
Index: linux-pm/drivers/thermal/broadcom/bcm2835_thermal.c =================================================================== --- linux-pm.orig/drivers/thermal/broadcom/bcm2835_thermal.c +++ linux-pm/drivers/thermal/broadcom/bcm2835_thermal.c @@ -208,8 +208,7 @@ static int bcm2835_thermal_probe(struct */ val = readl(data->regs + BCM2835_TS_TSENSCTL); if (!(val & BCM2835_TS_TSENSCTL_RSTB)) { - struct thermal_trip trip; - int offset, slope; + int offset, slope, crit_temp; slope = thermal_zone_get_slope(tz); offset = thermal_zone_get_offset(tz); @@ -217,7 +216,7 @@ static int bcm2835_thermal_probe(struct * For now we deal only with critical, otherwise * would need to iterate */ - err = thermal_zone_get_trip(tz, 0, &trip); + err = thermal_zone_get_crit_temp(tz, &crit_temp); if (err < 0) { dev_err(dev, "Not able to read trip_temp: %d\n", err); return err; @@ -232,7 +231,7 @@ static int bcm2835_thermal_probe(struct val |= (0xFE << BCM2835_TS_TSENSCTL_RSTDELAY_SHIFT); /* trip_adc value from info */ - val |= bcm2835_thermal_temp2adc(trip.temperature, + val |= bcm2835_thermal_temp2adc(crit_temp, offset, slope) << BCM2835_TS_TSENSCTL_THOLD_SHIFT;