Message ID | 1343182273-32096-9-git-send-email-rui.zhang@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
First, it would be good to write something about the motivation here. Second, I suppose that there are no users of the code in question who rely on the current behavior except for ACPI. If that is the case, it should be state in the changelog too, because that's an important piece of information for whoever wants to understand what's going on. If that is not the case, however, you should describe how your changes will affect the users in question, so that it's clear enough that no regressions will result from this change. Thanks, Rafael On Wednesday, July 25, 2012, Zhang Rui wrote: > Signed-off-by: Zhang Rui <rui.zhang@intel.com> > --- > drivers/acpi/thermal.c | 5 +---- > drivers/platform/x86/acerhdf.c | 2 +- > drivers/platform/x86/intel_mid_thermal.c | 2 +- > drivers/thermal/spear_thermal.c | 2 +- > drivers/thermal/thermal_sys.c | 23 ++++++----------------- > include/linux/thermal.h | 5 +---- > 6 files changed, 11 insertions(+), 28 deletions(-) > > diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c > index 01c92fd..5417362 100644 > --- a/drivers/acpi/thermal.c > +++ b/drivers/acpi/thermal.c > @@ -895,15 +895,12 @@ static int acpi_thermal_register_thermal_zone(struct acpi_thermal *tz) > tz->thermal_zone = > thermal_zone_device_register("acpitz", trips, 0, tz, > &acpi_thermal_zone_ops, > - tz->trips.passive.tc1, > - tz->trips.passive.tc2, > tz->trips.passive.tsp*100, > tz->polling_frequency*100); > else > tz->thermal_zone = > thermal_zone_device_register("acpitz", trips, 0, tz, > - &acpi_thermal_zone_ops, > - 0, 0, 0, > + &acpi_thermal_zone_ops, 0, > tz->polling_frequency*100); > if (IS_ERR(tz->thermal_zone)) > return -ENODEV; > diff --git a/drivers/platform/x86/acerhdf.c b/drivers/platform/x86/acerhdf.c > index a207466..84c5688 100644 > --- a/drivers/platform/x86/acerhdf.c > +++ b/drivers/platform/x86/acerhdf.c > @@ -662,7 +662,7 @@ static int acerhdf_register_thermal(void) > return -EINVAL; > > thz_dev = thermal_zone_device_register("acerhdf", 1, 0, NULL, > - &acerhdf_dev_ops, 0, 0, 0, > + &acerhdf_dev_ops, 0, > (kernelmode) ? interval*1000 : 0); > if (IS_ERR(thz_dev)) > return -EINVAL; > diff --git a/drivers/platform/x86/intel_mid_thermal.c b/drivers/platform/x86/intel_mid_thermal.c > index 2b2c212..6e309dd 100644 > --- a/drivers/platform/x86/intel_mid_thermal.c > +++ b/drivers/platform/x86/intel_mid_thermal.c > @@ -499,7 +499,7 @@ static int mid_thermal_probe(struct platform_device *pdev) > goto err; > } > pinfo->tzd[i] = thermal_zone_device_register(name[i], > - 0, 0, td_info, &tzd_ops, 0, 0, 0, 0); > + 0, 0, td_info, &tzd_ops, 0, 0); > if (IS_ERR(pinfo->tzd[i])) { > kfree(td_info); > ret = PTR_ERR(pinfo->tzd[i]); > diff --git a/drivers/thermal/spear_thermal.c b/drivers/thermal/spear_thermal.c > index 69a55d4..b55840a 100644 > --- a/drivers/thermal/spear_thermal.c > +++ b/drivers/thermal/spear_thermal.c > @@ -148,7 +148,7 @@ static int spear_thermal_probe(struct platform_device *pdev) > writel_relaxed(stdev->flags, stdev->thermal_base); > > spear_thermal = thermal_zone_device_register("spear_thermal", 0, 0, > - stdev, &ops, 0, 0, 0, 0); > + stdev, &ops, 0, 0); > if (IS_ERR(spear_thermal)) { > dev_err(&pdev->dev, "thermal zone device is NULL\n"); > ret = PTR_ERR(spear_thermal); > diff --git a/drivers/thermal/thermal_sys.c b/drivers/thermal/thermal_sys.c > index d406524..727aa74 100644 > --- a/drivers/thermal/thermal_sys.c > +++ b/drivers/thermal/thermal_sys.c > @@ -335,9 +335,6 @@ passive_store(struct device *dev, struct device_attribute *attr, > tz->passive_delay = 0; > } > > - tz->tc1 = 1; > - tz->tc2 = 1; > - > tz->forced_passive = state; > > thermal_zone_device_update(tz); > @@ -733,7 +730,7 @@ static void thermal_zone_device_set_polling(struct thermal_zone_device *tz, > static void thermal_zone_device_passive(struct thermal_zone_device *tz, > int temp, int trip_temp, int trip) > { > - int trend = 0; > + enum thermal_trend trend; > struct thermal_cooling_device_instance *instance; > struct thermal_cooling_device *cdev; > long state, max_state; > @@ -748,13 +745,10 @@ static void thermal_zone_device_passive(struct thermal_zone_device *tz, > if (temp >= trip_temp) { > tz->passive = true; > > - thermal_get_trend(tz, trip, (enum thermal_trend *)&trend); > - > - trend = (tz->tc1 * (temp - tz->last_temperature)) + > - (tz->tc2 * (temp - trip_temp)); > + thermal_get_trend(tz, trip, &trend); > > /* Heating up? */ > - if (trend > 0) { > + if (trend == THERMAL_TREND_RAISING) { > list_for_each_entry(instance, &tz->cooling_devices, > node) { > if (instance->trip != trip) > @@ -765,7 +759,7 @@ static void thermal_zone_device_passive(struct thermal_zone_device *tz, > if (state++ < max_state) > cdev->ops->set_cur_state(cdev, state); > } > - } else if (trend < 0) { /* Cooling off? */ > + } else if (trend == THERMAL_TREND_DROPPING) { /* Cooling off? */ > list_for_each_entry(instance, &tz->cooling_devices, > node) { > if (instance->trip != trip) > @@ -1291,8 +1285,6 @@ static void remove_trip_attrs(struct thermal_zone_device *tz) > * @mask: a bit string indicating the writeablility of trip points > * @devdata: private device data > * @ops: standard thermal zone device callbacks > - * @tc1: thermal coefficient 1 for passive calculations > - * @tc2: thermal coefficient 2 for passive calculations > * @passive_delay: number of milliseconds to wait between polls when > * performing passive cooling > * @polling_delay: number of milliseconds to wait between polls when checking > @@ -1300,13 +1292,12 @@ static void remove_trip_attrs(struct thermal_zone_device *tz) > * driven systems) > * > * thermal_zone_device_unregister() must be called when the device is no > - * longer needed. The passive cooling formula uses tc1 and tc2 as described in > - * section 11.1.5.1 of the ACPI specification 3.0. > + * longer needed. The passive cooling depends on the .get_trend() return value. > */ > struct thermal_zone_device *thermal_zone_device_register(char *type, > int trips, int mask, void *devdata, > const struct thermal_zone_device_ops *ops, > - int tc1, int tc2, int passive_delay, int polling_delay) > + int passive_delay, int polling_delay) > { > struct thermal_zone_device *tz; > struct thermal_cooling_device *pos; > @@ -1342,8 +1333,6 @@ struct thermal_zone_device *thermal_zone_device_register(char *type, > tz->device.class = &thermal_class; > tz->devdata = devdata; > tz->trips = trips; > - tz->tc1 = tc1; > - tz->tc2 = tc2; > tz->passive_delay = passive_delay; > tz->polling_delay = polling_delay; > > diff --git a/include/linux/thermal.h b/include/linux/thermal.h > index a01e3e6..d18dcf6 100644 > --- a/include/linux/thermal.h > +++ b/include/linux/thermal.h > @@ -115,8 +115,6 @@ struct thermal_zone_device { > struct thermal_attr *trip_hyst_attrs; > void *devdata; > int trips; > - int tc1; > - int tc2; > int passive_delay; > int polling_delay; > int temperature; > @@ -163,8 +161,7 @@ enum { > #define THERMAL_GENL_CMD_MAX (__THERMAL_GENL_CMD_MAX - 1) > > struct thermal_zone_device *thermal_zone_device_register(char *, int, int, > - void *, const struct thermal_zone_device_ops *, int tc1, > - int tc2, int passive_freq, int polling_freq); > + void *, const struct thermal_zone_device_ops *, int, int); > void thermal_zone_device_unregister(struct thermal_zone_device *); > > int thermal_zone_bind_cooling_device(struct thermal_zone_device *, int, > -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On ?, 2012-07-25 at 22:24 +0200, Rafael J. Wysocki wrote: > First, it would be good to write something about the motivation here. > > Second, I suppose that there are no users of the code in question who > rely on the current behavior except for ACPI. If that is the case, it > should be state in the changelog too, because that's an important piece > of information for whoever wants to understand what's going on. If > that is not the case, however, you should describe how your changes will > affect the users in question, so that it's clear enough that no regressions > will result from this change. > yep, but I think I should state this in the previous patch, when introducing .get_trend() callback. This patch just does some cleanups. thanks, rui -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c index 01c92fd..5417362 100644 --- a/drivers/acpi/thermal.c +++ b/drivers/acpi/thermal.c @@ -895,15 +895,12 @@ static int acpi_thermal_register_thermal_zone(struct acpi_thermal *tz) tz->thermal_zone = thermal_zone_device_register("acpitz", trips, 0, tz, &acpi_thermal_zone_ops, - tz->trips.passive.tc1, - tz->trips.passive.tc2, tz->trips.passive.tsp*100, tz->polling_frequency*100); else tz->thermal_zone = thermal_zone_device_register("acpitz", trips, 0, tz, - &acpi_thermal_zone_ops, - 0, 0, 0, + &acpi_thermal_zone_ops, 0, tz->polling_frequency*100); if (IS_ERR(tz->thermal_zone)) return -ENODEV; diff --git a/drivers/platform/x86/acerhdf.c b/drivers/platform/x86/acerhdf.c index a207466..84c5688 100644 --- a/drivers/platform/x86/acerhdf.c +++ b/drivers/platform/x86/acerhdf.c @@ -662,7 +662,7 @@ static int acerhdf_register_thermal(void) return -EINVAL; thz_dev = thermal_zone_device_register("acerhdf", 1, 0, NULL, - &acerhdf_dev_ops, 0, 0, 0, + &acerhdf_dev_ops, 0, (kernelmode) ? interval*1000 : 0); if (IS_ERR(thz_dev)) return -EINVAL; diff --git a/drivers/platform/x86/intel_mid_thermal.c b/drivers/platform/x86/intel_mid_thermal.c index 2b2c212..6e309dd 100644 --- a/drivers/platform/x86/intel_mid_thermal.c +++ b/drivers/platform/x86/intel_mid_thermal.c @@ -499,7 +499,7 @@ static int mid_thermal_probe(struct platform_device *pdev) goto err; } pinfo->tzd[i] = thermal_zone_device_register(name[i], - 0, 0, td_info, &tzd_ops, 0, 0, 0, 0); + 0, 0, td_info, &tzd_ops, 0, 0); if (IS_ERR(pinfo->tzd[i])) { kfree(td_info); ret = PTR_ERR(pinfo->tzd[i]); diff --git a/drivers/thermal/spear_thermal.c b/drivers/thermal/spear_thermal.c index 69a55d4..b55840a 100644 --- a/drivers/thermal/spear_thermal.c +++ b/drivers/thermal/spear_thermal.c @@ -148,7 +148,7 @@ static int spear_thermal_probe(struct platform_device *pdev) writel_relaxed(stdev->flags, stdev->thermal_base); spear_thermal = thermal_zone_device_register("spear_thermal", 0, 0, - stdev, &ops, 0, 0, 0, 0); + stdev, &ops, 0, 0); if (IS_ERR(spear_thermal)) { dev_err(&pdev->dev, "thermal zone device is NULL\n"); ret = PTR_ERR(spear_thermal); diff --git a/drivers/thermal/thermal_sys.c b/drivers/thermal/thermal_sys.c index d406524..727aa74 100644 --- a/drivers/thermal/thermal_sys.c +++ b/drivers/thermal/thermal_sys.c @@ -335,9 +335,6 @@ passive_store(struct device *dev, struct device_attribute *attr, tz->passive_delay = 0; } - tz->tc1 = 1; - tz->tc2 = 1; - tz->forced_passive = state; thermal_zone_device_update(tz); @@ -733,7 +730,7 @@ static void thermal_zone_device_set_polling(struct thermal_zone_device *tz, static void thermal_zone_device_passive(struct thermal_zone_device *tz, int temp, int trip_temp, int trip) { - int trend = 0; + enum thermal_trend trend; struct thermal_cooling_device_instance *instance; struct thermal_cooling_device *cdev; long state, max_state; @@ -748,13 +745,10 @@ static void thermal_zone_device_passive(struct thermal_zone_device *tz, if (temp >= trip_temp) { tz->passive = true; - thermal_get_trend(tz, trip, (enum thermal_trend *)&trend); - - trend = (tz->tc1 * (temp - tz->last_temperature)) + - (tz->tc2 * (temp - trip_temp)); + thermal_get_trend(tz, trip, &trend); /* Heating up? */ - if (trend > 0) { + if (trend == THERMAL_TREND_RAISING) { list_for_each_entry(instance, &tz->cooling_devices, node) { if (instance->trip != trip) @@ -765,7 +759,7 @@ static void thermal_zone_device_passive(struct thermal_zone_device *tz, if (state++ < max_state) cdev->ops->set_cur_state(cdev, state); } - } else if (trend < 0) { /* Cooling off? */ + } else if (trend == THERMAL_TREND_DROPPING) { /* Cooling off? */ list_for_each_entry(instance, &tz->cooling_devices, node) { if (instance->trip != trip) @@ -1291,8 +1285,6 @@ static void remove_trip_attrs(struct thermal_zone_device *tz) * @mask: a bit string indicating the writeablility of trip points * @devdata: private device data * @ops: standard thermal zone device callbacks - * @tc1: thermal coefficient 1 for passive calculations - * @tc2: thermal coefficient 2 for passive calculations * @passive_delay: number of milliseconds to wait between polls when * performing passive cooling * @polling_delay: number of milliseconds to wait between polls when checking @@ -1300,13 +1292,12 @@ static void remove_trip_attrs(struct thermal_zone_device *tz) * driven systems) * * thermal_zone_device_unregister() must be called when the device is no - * longer needed. The passive cooling formula uses tc1 and tc2 as described in - * section 11.1.5.1 of the ACPI specification 3.0. + * longer needed. The passive cooling depends on the .get_trend() return value. */ struct thermal_zone_device *thermal_zone_device_register(char *type, int trips, int mask, void *devdata, const struct thermal_zone_device_ops *ops, - int tc1, int tc2, int passive_delay, int polling_delay) + int passive_delay, int polling_delay) { struct thermal_zone_device *tz; struct thermal_cooling_device *pos; @@ -1342,8 +1333,6 @@ struct thermal_zone_device *thermal_zone_device_register(char *type, tz->device.class = &thermal_class; tz->devdata = devdata; tz->trips = trips; - tz->tc1 = tc1; - tz->tc2 = tc2; tz->passive_delay = passive_delay; tz->polling_delay = polling_delay; diff --git a/include/linux/thermal.h b/include/linux/thermal.h index a01e3e6..d18dcf6 100644 --- a/include/linux/thermal.h +++ b/include/linux/thermal.h @@ -115,8 +115,6 @@ struct thermal_zone_device { struct thermal_attr *trip_hyst_attrs; void *devdata; int trips; - int tc1; - int tc2; int passive_delay; int polling_delay; int temperature; @@ -163,8 +161,7 @@ enum { #define THERMAL_GENL_CMD_MAX (__THERMAL_GENL_CMD_MAX - 1) struct thermal_zone_device *thermal_zone_device_register(char *, int, int, - void *, const struct thermal_zone_device_ops *, int tc1, - int tc2, int passive_freq, int polling_freq); + void *, const struct thermal_zone_device_ops *, int, int); void thermal_zone_device_unregister(struct thermal_zone_device *); int thermal_zone_bind_cooling_device(struct thermal_zone_device *, int,
Signed-off-by: Zhang Rui <rui.zhang@intel.com> --- drivers/acpi/thermal.c | 5 +---- drivers/platform/x86/acerhdf.c | 2 +- drivers/platform/x86/intel_mid_thermal.c | 2 +- drivers/thermal/spear_thermal.c | 2 +- drivers/thermal/thermal_sys.c | 23 ++++++----------------- include/linux/thermal.h | 5 +---- 6 files changed, 11 insertions(+), 28 deletions(-)