Re: [PATCH v1 09/17] thermal: Add a thermal zone id accessor

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxx/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@xxxxxxxxx>
| Link: https://lore.kernel.org/oe-kbuild-all/202302200137.srsrI6dW-lkp@xxxxxxxxx/

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	

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests



[Index of Archives]     [LM Sensors]     [Linux Sound]     [ALSA Users]     [ALSA Devel]     [Linux Audio Users]     [Linux Media]     [Kernel]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux