Message ID | 20230219143657.241542-10-daniel.lezcano@linaro.org |
---|---|
State | New |
Headers |
Return-Path: <linux-kernel-owner@vger.kernel.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:eb09:0:0:0:0:0 with SMTP id s9csp880259wrn; Sun, 19 Feb 2023 06:57:08 -0800 (PST) X-Google-Smtp-Source: AK7set+3KQpiLgEzBjJeP3GrDZ/VPpNJ/tU/m4iBsAG5PcV32eJnL/wdRU3gQbERwmyekprztxQ0 X-Received: by 2002:aa7:c54d:0:b0:4ab:cb8c:932b with SMTP id s13-20020aa7c54d000000b004abcb8c932bmr1622586edr.40.1676818628791; Sun, 19 Feb 2023 06:57:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1676818628; cv=none; d=google.com; s=arc-20160816; b=VVlS16Hhp9oNSNnK/tnHZRpl3jhq+igQBPk1nw3t3qdZBfTiHj0xx85MZYdj0b5PDx OK/R7+Bg8KZ5Dfw6S8nuWl0lJbVK7/p4/IGfDz5KfMisZ3FUKb3lNtldW6NkFNprGtPb Ji50Kk38E2Oi//ipMlE37+rxCe74xbyCKqe3+uYFuu4/sOxwfObb59YrdpLKH9/sdCpf EPxOSkMwa1ldyL9JO1A2zOGpO5C8kylRGIHn/9pF8bbq1hXoQzGXiFMIQ0RNKat36w9c hUlJA9SdnjeOISoMgqfUEQl8/x+N8OOE/deE+355Jv0ms/8wQ6uiSErKIvp8hvW9XnK0 C2jg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=QUidYE45QqwOhchUylILIXryDttVbD/LiMI/qWiuEu8=; b=m2IpMvRB9lEv3ZNBLKB1Wex2RyiOvFfU0zLbaBPWHcvlghl9hkg7UTNFWCW//V3Sbk 4AUWFpv8jA/pC3FfNJrpNSoJfNpuNHEdQW/R0WKuOfJ8a0+yHLUMdwCgm7wO9twUeYxj wbdpbIijKRSz8qVb901iA46nFmBWoAJouIwz05WRHwXqlJgKK+utnjBEOCt3+G9chBKl /rzpPy7Mu5eXhOBHdACpp0NwGbbcAE02Wh1faQAvmsyB/yj0DdEFeE/M0Rtu0F/LRuM6 2EdgrkHeZZeVo7TMT3/n6bfIXcRepiL4M5Io1AJU31fZwGuYxRxe9UAQr4SfzV2ELrEO wWJA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=KMWO2e3r; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id u11-20020aa7d98b000000b004ab4bb74439si12204203eds.411.2023.02.19.06.56.45; Sun, 19 Feb 2023 06:57:08 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=KMWO2e3r; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229925AbjBSOjI (ORCPT <rfc822;assdfgzxcv4@gmail.com> + 99 others); Sun, 19 Feb 2023 09:39:08 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38310 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230212AbjBSOic (ORCPT <rfc822;linux-kernel@vger.kernel.org>); Sun, 19 Feb 2023 09:38:32 -0500 Received: from mail-wr1-x434.google.com (mail-wr1-x434.google.com [IPv6:2a00:1450:4864:20::434]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6760DE07A for <linux-kernel@vger.kernel.org>; Sun, 19 Feb 2023 06:38:05 -0800 (PST) Received: by mail-wr1-x434.google.com with SMTP id f12so575917wrr.4 for <linux-kernel@vger.kernel.org>; Sun, 19 Feb 2023 06:38:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=QUidYE45QqwOhchUylILIXryDttVbD/LiMI/qWiuEu8=; b=KMWO2e3ra8asZTCibq/TH0eh7yyXfQ/YpoTRU80N0n+d0l1k2YieFdRnLov2a1lD+f pYGa1g8dRdYqeuE8QIphlV062WcX+/v7eVls9O6lwGYxNEGCfV4WV/NkBU6riCjti6Wn FvNQoVwUD/SaACi6sCZlaPerYy/dkGEaHqahaO9f7T4t8ABwoMNC3f1b4A1vvgcIdmXT 8qypKIkD250DbpW9hMnzb3QfgGNls2A9pR3Y7O2Ee9tFkQJ7iiC2zRlKDYNpp5RMF1bj t2Pnf8ABI8ongOk0YJb9VInvHZRUJA99Fe6Jml6lFyaOqupVdoVbPCxVSZPUb3U8XjGZ 2LtA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=QUidYE45QqwOhchUylILIXryDttVbD/LiMI/qWiuEu8=; b=3XpPkqVw6CFt/bB0BWY7d0Q3SNo1JeeGTWD3MDNSXphp2MlL7KYzTGeGyz5NwAMskY vAmCmWINImvwgdwVkpBaD4aOJoeARUj3BPdoof+Cg/2ESR2mDli8Wmj/DCM2ZHTDAPli fHQIjGBLMJrCrft3vZXsoH0bPMW8ZCOBiALPOnmq3VzvxJtM42+FUITiKDbLepr14cm9 1hvNJxQcNMPz4yYUFPnTWv4wQK/CqcWune6ejLXrGXggfmRa4b3gaOtqFXBEFx6CBU51 i2KrTYJk2AS8UI0cyw7LBwKEQW1ZhWXDEqSEllXcENO/8BaPDslzLWsoP82rjUYaFpuK Lvnw== X-Gm-Message-State: AO0yUKXSuvzENcs/ctv2hCVM5LqO/16atWawnmnOaCok55L/4pHeBXFf ZTJSAIoJfvry7qOvK2OiulxeZw== X-Received: by 2002:a5d:6b8e:0:b0:2bf:d333:219d with SMTP id n14-20020a5d6b8e000000b002bfd333219dmr1937123wrx.17.1676817484948; Sun, 19 Feb 2023 06:38:04 -0800 (PST) Received: from mai.box.freepro.com ([2a05:6e02:1041:c10:6f43:b92:7670:463]) by smtp.gmail.com with ESMTPSA id a18-20020adfe5d2000000b002be505ab59asm86176wrn.97.2023.02.19.06.38.04 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 19 Feb 2023 06:38:04 -0800 (PST) From: Daniel Lezcano <daniel.lezcano@linaro.org> To: rafael@kernel.org, daniel.lezcano@linaro.org Cc: linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, Jean Delvare <jdelvare@suse.com>, Guenter Roeck <linux@roeck-us.net>, Amit Kucheria <amitk@kernel.org>, Zhang Rui <rui.zhang@intel.com>, linux-hwmon@vger.kernel.org (open list:HARDWARE MONITORING) Subject: [PATCH v1 09/17] thermal: Add a thermal zone id accessor Date: Sun, 19 Feb 2023 15:36:49 +0100 Message-Id: <20230219143657.241542-10-daniel.lezcano@linaro.org> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230219143657.241542-1-daniel.lezcano@linaro.org> References: <20230219143657.241542-1-daniel.lezcano@linaro.org> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: <linux-kernel.vger.kernel.org> X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1758271770362468262?= X-GMAIL-MSGID: =?utf-8?q?1758271770362468262?= |
Series |
Self-encapsulate the thermal zone device structure
|
|
Commit Message
Daniel Lezcano
Feb. 19, 2023, 2:36 p.m. UTC
In order to get the thermal zone id but without directly accessing the
thermal zone device structure, add an accessor.
Use the accessor from the hwmon_scmi
No functional change intented.
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
---
drivers/hwmon/scmi-hwmon.c | 2 +-
drivers/thermal/thermal_core.c | 6 ++++++
include/linux/thermal.h | 2 ++
3 files changed, 9 insertions(+), 1 deletion(-)
Comments
On Sun, Feb 19, 2023 at 03:36:49PM +0100, Daniel Lezcano wrote: > In order to get the thermal zone id but without directly accessing the > thermal zone device structure, add an accessor. > > Use the accessor from the hwmon_scmi > > No functional change intented. > > Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org> Acked-by: Guenter Roeck <linux@roeck-us.net> > --- > drivers/hwmon/scmi-hwmon.c | 2 +- > drivers/thermal/thermal_core.c | 6 ++++++ > include/linux/thermal.h | 2 ++ > 3 files changed, 9 insertions(+), 1 deletion(-) > > diff --git a/drivers/hwmon/scmi-hwmon.c b/drivers/hwmon/scmi-hwmon.c > index 7951b6026f48..036b56a535c1 100644 > --- a/drivers/hwmon/scmi-hwmon.c > +++ b/drivers/hwmon/scmi-hwmon.c > @@ -220,7 +220,7 @@ static int scmi_thermal_sensor_register(struct device *dev, > sensor->name); > } else { > dev_dbg(dev, "Sensor '%s' attached to thermal zone ID:%d\n", > - sensor->name, tzd->id); > + sensor->name, thermal_zone_device_get_id(tzd)); > } > > return 0; > diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c > index 05e5a6bda695..e06c76b38c04 100644 > --- a/drivers/thermal/thermal_core.c > +++ b/drivers/thermal/thermal_core.c > @@ -1384,6 +1384,12 @@ void *thermal_zone_device_get_data(struct thermal_zone_device *tzd) > } > EXPORT_SYMBOL_GPL(thermal_zone_device_get_data); > > +int thermal_zone_device_get_id(struct thermal_zone_device *tzd) > +{ > + return tzd->id; > +} > +EXPORT_SYMBOL_GPL(thermal_zone_device_get_id); > + > /** > * thermal_zone_device_unregister - removes the registered thermal zone device > * @tz: the thermal zone device to remove > diff --git a/include/linux/thermal.h b/include/linux/thermal.h > index 724b95662da9..9e5c7f2f7b05 100644 > --- a/include/linux/thermal.h > +++ b/include/linux/thermal.h > @@ -367,6 +367,8 @@ thermal_zone_device_register_with_trips(const char *, struct thermal_trip *, int > > void *thermal_zone_device_get_data(struct thermal_zone_device *tzd); > > +int thermal_zone_device_get_id(struct thermal_zone_device *tzd); > + > int thermal_zone_bind_cooling_device(struct thermal_zone_device *, int, > struct thermal_cooling_device *, > unsigned long, unsigned long, > -- > 2.34.1 >
Hi Daniel, I love your patch! Yet something to improve: [auto build test ERROR on rafael-pm/thermal] [also build test ERROR on next-20230217] [cannot apply to groeck-staging/hwmon-next tegra/for-next linus/master v6.2-rc8] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Daniel-Lezcano/thermal-core-Add-a-thermal-zone-devdata-accessor/20230219-224155 base: https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git thermal patch link: https://lore.kernel.org/r/20230219143657.241542-10-daniel.lezcano%40linaro.org patch subject: [PATCH v1 09/17] thermal: Add a thermal zone id accessor config: csky-randconfig-r005-20230219 (https://download.01.org/0day-ci/archive/20230220/202302200137.srsrI6dW-lkp@intel.com/config) compiler: csky-linux-gcc (GCC) 12.1.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/intel-lab-lkp/linux/commit/37b2cf4cee949fd910b54e281577cb71b2df8842 git remote add linux-review https://github.com/intel-lab-lkp/linux git fetch --no-tags linux-review Daniel-Lezcano/thermal-core-Add-a-thermal-zone-devdata-accessor/20230219-224155 git checkout 37b2cf4cee949fd910b54e281577cb71b2df8842 # save the config file mkdir build_dir && cp config build_dir/.config COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=csky olddefconfig COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=csky SHELL=/bin/bash drivers/hwmon/ If you fix the issue, kindly add following tag where applicable | Reported-by: kernel test robot <lkp@intel.com> | Link: https://lore.kernel.org/oe-kbuild-all/202302200137.srsrI6dW-lkp@intel.com/ All errors (new ones prefixed by >>): drivers/hwmon/scmi-hwmon.c: In function 'scmi_hwmon_thermal_get_temp': drivers/hwmon/scmi-hwmon.c:144:49: error: implicit declaration of function 'thermal_zone_device_get_data'; did you mean 'thermal_zone_device_enable'? [-Werror=implicit-function-declaration] 144 | struct scmi_thermal_sensor *th_sensor = thermal_zone_device_get_data(tz); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ | thermal_zone_device_enable drivers/hwmon/scmi-hwmon.c:144:49: warning: initialization of 'struct scmi_thermal_sensor *' from 'int' makes pointer from integer without a cast [-Wint-conversion] In file included from include/linux/device.h:15, from include/linux/scmi_protocol.h:12, from drivers/hwmon/scmi-hwmon.c:11: drivers/hwmon/scmi-hwmon.c: In function 'scmi_thermal_sensor_register': >> drivers/hwmon/scmi-hwmon.c:223:39: error: implicit declaration of function 'thermal_zone_device_get_id'; did you mean 'thermal_zone_device_enable'? [-Werror=implicit-function-declaration] 223 | sensor->name, thermal_zone_device_get_id(tzd)); | ^~~~~~~~~~~~~~~~~~~~~~~~~~ include/linux/dev_printk.h:129:48: note: in definition of macro 'dev_printk' 129 | _dev_printk(level, dev, fmt, ##__VA_ARGS__); \ | ^~~~~~~~~~~ drivers/hwmon/scmi-hwmon.c:222:17: note: in expansion of macro 'dev_dbg' 222 | dev_dbg(dev, "Sensor '%s' attached to thermal zone ID:%d\n", | ^~~~~~~ cc1: some warnings being treated as errors vim +223 drivers/hwmon/scmi-hwmon.c 138 139 static int scmi_hwmon_thermal_get_temp(struct thermal_zone_device *tz, 140 int *temp) 141 { 142 int ret; 143 long value; > 144 struct scmi_thermal_sensor *th_sensor = thermal_zone_device_get_data(tz); 145 146 ret = scmi_hwmon_read_scaled_value(th_sensor->ph, th_sensor->info, 147 &value); 148 if (!ret) 149 *temp = value; 150 151 return ret; 152 } 153 154 static const struct thermal_zone_device_ops scmi_hwmon_thermal_ops = { 155 .get_temp = scmi_hwmon_thermal_get_temp, 156 }; 157 158 static int scmi_hwmon_add_chan_info(struct hwmon_channel_info *scmi_hwmon_chan, 159 struct device *dev, int num, 160 enum hwmon_sensor_types type, u32 config) 161 { 162 int i; 163 u32 *cfg = devm_kcalloc(dev, num + 1, sizeof(*cfg), GFP_KERNEL); 164 165 if (!cfg) 166 return -ENOMEM; 167 168 scmi_hwmon_chan->type = type; 169 scmi_hwmon_chan->config = cfg; 170 for (i = 0; i < num; i++, cfg++) 171 *cfg = config; 172 173 return 0; 174 } 175 176 static enum hwmon_sensor_types scmi_types[] = { 177 [TEMPERATURE_C] = hwmon_temp, 178 [VOLTAGE] = hwmon_in, 179 [CURRENT] = hwmon_curr, 180 [POWER] = hwmon_power, 181 [ENERGY] = hwmon_energy, 182 }; 183 184 static u32 hwmon_attributes[hwmon_max] = { 185 [hwmon_temp] = HWMON_T_INPUT | HWMON_T_LABEL, 186 [hwmon_in] = HWMON_I_INPUT | HWMON_I_LABEL, 187 [hwmon_curr] = HWMON_C_INPUT | HWMON_C_LABEL, 188 [hwmon_power] = HWMON_P_INPUT | HWMON_P_LABEL, 189 [hwmon_energy] = HWMON_E_INPUT | HWMON_E_LABEL, 190 }; 191 192 static int scmi_thermal_sensor_register(struct device *dev, 193 const struct scmi_protocol_handle *ph, 194 const struct scmi_sensor_info *sensor) 195 { 196 struct scmi_thermal_sensor *th_sensor; 197 struct thermal_zone_device *tzd; 198 199 th_sensor = devm_kzalloc(dev, sizeof(*th_sensor), GFP_KERNEL); 200 if (!th_sensor) 201 return -ENOMEM; 202 203 th_sensor->ph = ph; 204 th_sensor->info = sensor; 205 206 /* 207 * Try to register a temperature sensor with the Thermal Framework: 208 * skip sensors not defined as part of any thermal zone (-ENODEV) but 209 * report any other errors related to misconfigured zones/sensors. 210 */ 211 tzd = devm_thermal_of_zone_register(dev, th_sensor->info->id, th_sensor, 212 &scmi_hwmon_thermal_ops); 213 if (IS_ERR(tzd)) { 214 devm_kfree(dev, th_sensor); 215 216 if (PTR_ERR(tzd) != -ENODEV) 217 return PTR_ERR(tzd); 218 219 dev_dbg(dev, "Sensor '%s' not attached to any thermal zone.\n", 220 sensor->name); 221 } else { 222 dev_dbg(dev, "Sensor '%s' attached to thermal zone ID:%d\n", > 223 sensor->name, thermal_zone_device_get_id(tzd)); 224 } 225 226 return 0; 227 } 228
diff --git a/drivers/hwmon/scmi-hwmon.c b/drivers/hwmon/scmi-hwmon.c index 7951b6026f48..036b56a535c1 100644 --- a/drivers/hwmon/scmi-hwmon.c +++ b/drivers/hwmon/scmi-hwmon.c @@ -220,7 +220,7 @@ static int scmi_thermal_sensor_register(struct device *dev, sensor->name); } else { dev_dbg(dev, "Sensor '%s' attached to thermal zone ID:%d\n", - sensor->name, tzd->id); + sensor->name, thermal_zone_device_get_id(tzd)); } return 0; diff --git a/drivers/thermal/thermal_core.c b/drivers/thermal/thermal_core.c index 05e5a6bda695..e06c76b38c04 100644 --- a/drivers/thermal/thermal_core.c +++ b/drivers/thermal/thermal_core.c @@ -1384,6 +1384,12 @@ void *thermal_zone_device_get_data(struct thermal_zone_device *tzd) } EXPORT_SYMBOL_GPL(thermal_zone_device_get_data); +int thermal_zone_device_get_id(struct thermal_zone_device *tzd) +{ + return tzd->id; +} +EXPORT_SYMBOL_GPL(thermal_zone_device_get_id); + /** * thermal_zone_device_unregister - removes the registered thermal zone device * @tz: the thermal zone device to remove diff --git a/include/linux/thermal.h b/include/linux/thermal.h index 724b95662da9..9e5c7f2f7b05 100644 --- a/include/linux/thermal.h +++ b/include/linux/thermal.h @@ -367,6 +367,8 @@ thermal_zone_device_register_with_trips(const char *, struct thermal_trip *, int void *thermal_zone_device_get_data(struct thermal_zone_device *tzd); +int thermal_zone_device_get_id(struct thermal_zone_device *tzd); + int thermal_zone_bind_cooling_device(struct thermal_zone_device *, int, struct thermal_cooling_device *, unsigned long, unsigned long,