Hi, On Tue, Mar 24, 2015 at 01:21:30PM +0800, Zhang Rui wrote: > When a new cooling device is registered, we need to update the > thermal zone to set the new registered cooling device to a proper > state. > > This fixes a problem that the system is cool, while the fan devices are left > running on full speed after boot, if fan device is registered after > thermal zone device. > > CC: <stable@xxxxxxxxxxxxxxx> #3.18+ > Reference:https://bugzilla.kernel.org/show_bug.cgi?id=92431 > Tested-by: Manuel Krause <manuelkrause@xxxxxxxxxxxx> > Tested-by: szegad <szegadlo@xxxxxxxxxxxxxx> > Tested-by: prash <prash.n.rao@xxxxxxxxx> > Tested-by: amish <ammdispose-arch@xxxxxxxxx> > Signed-off-by: Zhang Rui <rui.zhang@xxxxxxxxx> > --- > drivers/thermal/thermal_core.c | 10 ++++++++++ > 1 file changed, 10 insertions(+) > > diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c > index 9c03561..7cef579 100644 > --- a/drivers/thermal/thermal_core.c > +++ b/drivers/thermal/thermal_core.c > @@ -1141,6 +1141,7 @@ __thermal_cooling_device_register(struct device_node *np, > const struct thermal_cooling_device_ops *ops) > { > struct thermal_cooling_device *cdev; > + struct thermal_instance *pos, *next; > int result; > > if (type && strlen(type) >= THERMAL_NAME_LENGTH) > @@ -1185,6 +1186,15 @@ __thermal_cooling_device_register(struct device_node *np, > /* Update binding information for 'this' new cdev */ > bind_cdev(cdev); > > + list_for_each_entry_safe(pos, next, &cdev->thermal_instances, cdev_node) { > + if (next->cdev_node.next == &cdev->thermal_instances) { > + thermal_zone_device_update(next->tz); > + break; > + } > + if (pos->tz != next->tz) > + thermal_zone_device_update(pos->tz); Shouldn't we simply trigger a thermal_zone_device_update(pos->tz) ? I mean, we are adding a new cooling device to the zone, so, it might make sense to update it anyway. > + } > + > return cdev; > } > > -- > 1.9.1 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-pm" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html
Attachment:
signature.asc
Description: Digital signature