From patchwork Tue Nov 13 15:43:20 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eduardo Valentin X-Patchwork-Id: 1734661 Return-Path: X-Original-To: patchwork-linux-omap@patchwork.kernel.org Delivered-To: patchwork-process-083081@patchwork1.kernel.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by patchwork1.kernel.org (Postfix) with ESMTP id E67A03FC64 for ; Tue, 13 Nov 2012 15:45:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754780Ab2KMPo4 (ORCPT ); Tue, 13 Nov 2012 10:44:56 -0500 Received: from arroyo.ext.ti.com ([192.94.94.40]:49424 "EHLO arroyo.ext.ti.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754213Ab2KMPoz (ORCPT ); Tue, 13 Nov 2012 10:44:55 -0500 Received: from dlelxv30.itg.ti.com ([172.17.2.17]) by arroyo.ext.ti.com (8.13.7/8.13.7) with ESMTP id qADFiroM012960; Tue, 13 Nov 2012 09:44:53 -0600 Received: from DLEE74.ent.ti.com (dlee74.ent.ti.com [157.170.170.8]) by dlelxv30.itg.ti.com (8.13.8/8.13.8) with ESMTP id qADFirln017298; Tue, 13 Nov 2012 09:44:53 -0600 Received: from dlelxv24.itg.ti.com (172.17.1.199) by DLEE74.ent.ti.com (157.170.170.8) with Microsoft SMTP Server id 14.1.323.3; Tue, 13 Nov 2012 09:44:53 -0600 Received: from legion.dal.design.ti.com (legion.dal.design.ti.com [128.247.22.53]) by dlelxv24.itg.ti.com (8.13.8/8.13.8) with ESMTP id qADFirUk025480; Tue, 13 Nov 2012 09:44:53 -0600 Received: from localhost (h64-10.vpn.ti.com [172.24.64.10]) by legion.dal.design.ti.com (8.11.7p1+Sun/8.11.7) with ESMTP id qADFiow00114; Tue, 13 Nov 2012 09:44:50 -0600 (CST) From: Eduardo Valentin To: CC: , , , , Eduardo Valentin Subject: [PATCH 3/5] staging: omap-thermal: remove freq_clip table Date: Tue, 13 Nov 2012 11:43:20 -0400 Message-ID: <1352821402-13458-4-git-send-email-eduardo.valentin@ti.com> X-Mailer: git-send-email 1.7.7.1.488.ge8e1c In-Reply-To: <1352821402-13458-1-git-send-email-eduardo.valentin@ti.com> References: <1352821402-13458-1-git-send-email-eduardo.valentin@ti.com> MIME-Version: 1.0 Sender: linux-omap-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-omap@vger.kernel.org The API exposed by cpu cooling does not need any freq clip table anymore. Now the cpu cooling device is smart enough to build its own table. For this reason, this patch removes all the code that is generating a freq clip table and also removes all references in data structures regarding freq clip table. Signed-off-by: Eduardo Valentin --- drivers/staging/omap-thermal/omap-bandgap.h | 9 --- drivers/staging/omap-thermal/omap-thermal-common.c | 63 +------------------- 2 files changed, 3 insertions(+), 69 deletions(-) diff --git a/drivers/staging/omap-thermal/omap-bandgap.h b/drivers/staging/omap-thermal/omap-bandgap.h index 78aed75..2bb14bd 100644 --- a/drivers/staging/omap-thermal/omap-bandgap.h +++ b/drivers/staging/omap-thermal/omap-bandgap.h @@ -336,14 +336,6 @@ struct temp_sensor_regval { }; /** - * struct thermal_cooling_conf - description on how to cool a thermal zone - * @freq_clip_count: size of freq_data - */ -struct thermal_cooling_conf { - int freq_clip_count; -}; - -/** * struct omap_temp_sensor - bandgap temperature sensor platform data * @ts_data: pointer to struct with thresholds, limits of temperature sensor * @registers: pointer to the list of register offsets and bitfields @@ -365,7 +357,6 @@ struct omap_temp_sensor { struct temp_sensor_registers *registers; struct temp_sensor_regval regval; char *domain; - struct thermal_cooling_conf cooling_data; /* for hotspot extrapolation */ const int slope; const int constant; diff --git a/drivers/staging/omap-thermal/omap-thermal-common.c b/drivers/staging/omap-thermal/omap-thermal-common.c index 5be66d7..15e9723 100644 --- a/drivers/staging/omap-thermal/omap-thermal-common.c +++ b/drivers/staging/omap-thermal/omap-thermal-common.c @@ -29,6 +29,7 @@ #include #include #include +#include #include #include "omap-thermal.h" @@ -112,7 +113,7 @@ static int omap_thermal_bind(struct thermal_zone_device *thermal, struct thermal_cooling_device *cdev) { struct omap_thermal_data *data = thermal->devdata; - int max, id; + int id; if (IS_ERR_OR_NULL(data)) return -ENODEV; @@ -122,7 +123,6 @@ static int omap_thermal_bind(struct thermal_zone_device *thermal, return 0; id = data->sensor_id; - max = data->bg_ptr->conf->sensors[id].cooling_data.freq_clip_count; /* TODO: bind with min and max states */ /* Simple thing, two trips, one passive another critical */ @@ -304,58 +304,9 @@ int omap_thermal_report_sensor_temperature(struct omap_bandgap *bg_ptr, int id) return 0; } -static int omap_thermal_build_cpufreq_clip(struct omap_bandgap *bg_ptr, - struct freq_clip_table **tab_ptr, - int *tab_size) -{ - struct cpufreq_frequency_table *freq_table; - struct freq_clip_table *tab; - int i, count = 0; - - freq_table = cpufreq_frequency_get_table(0); - if (IS_ERR_OR_NULL(freq_table)) { - dev_err(bg_ptr->dev, - "%s: failed to get cpufreq table (%p)\n", - __func__, freq_table); - return -EINVAL; - } - - for (i = 0; freq_table[i].frequency != CPUFREQ_TABLE_END; i++) { - unsigned int freq = freq_table[i].frequency; - if (freq == CPUFREQ_ENTRY_INVALID) - continue; - count++; - } - - tab = devm_kzalloc(bg_ptr->dev, sizeof(*tab) * count, GFP_KERNEL); - if (!tab) { - dev_err(bg_ptr->dev, - "%s: no memory available\n", __func__); - return -ENOMEM; - } - - for (i = 0; freq_table[i].frequency != CPUFREQ_TABLE_END; i++) { - unsigned int freq = freq_table[i].frequency; - - if (freq == CPUFREQ_ENTRY_INVALID) - continue; - - tab[count - i - 1].freq_clip_max = freq; - tab[count - i - 1].temp_level = OMAP_TRIP_HOT; - tab[count - i - 1].mask_val = cpumask_of(0); - } - - *tab_ptr = tab; - *tab_size = count; - - return 0; -} - int omap_thermal_register_cpu_cooling(struct omap_bandgap *bg_ptr, int id) { struct omap_thermal_data *data; - struct freq_clip_table *tab_ptr; - int tab_size, ret; data = omap_bandgap_get_sensor_data(bg_ptr, id); if (!data) @@ -364,21 +315,13 @@ int omap_thermal_register_cpu_cooling(struct omap_bandgap *bg_ptr, int id) if (!data) return -EINVAL; - ret = omap_thermal_build_cpufreq_clip(bg_ptr, &tab_ptr, &tab_size); - if (ret < 0) { - dev_err(bg_ptr->dev, - "%s: failed to build cpufreq clip table\n", __func__); - return ret; - } - /* Register cooling device */ - data->cool_dev = cpufreq_cooling_register(tab_ptr, tab_size); + data->cool_dev = cpufreq_cooling_register(cpu_present_mask); if (IS_ERR_OR_NULL(data->cool_dev)) { dev_err(bg_ptr->dev, "Failed to register cpufreq cooling device\n"); return PTR_ERR(data->cool_dev); } - bg_ptr->conf->sensors[id].cooling_data.freq_clip_count = tab_size; omap_bandgap_set_sensor_data(bg_ptr, id, data); return 0;