Re: [PATCH v2 11/11] thermal/acpi: Use the thermal framework ACPI API

[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/linux-next]
[also build test ERROR on linus/master v6.2-rc6 next-20230203]
[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-acpi-Remove-the-intermediate-acpi_thermal_trip-structure/20230204-015126
base:   https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git linux-next
patch link:    https://lore.kernel.org/r/20230203174429.3375691-12-daniel.lezcano%40linaro.org
patch subject: [PATCH v2 11/11] thermal/acpi: Use the thermal framework ACPI API
config: i386-randconfig-a003 (https://download.01.org/0day-ci/archive/20230204/202302041301.JFOakwDi-lkp@xxxxxxxxx/config)
compiler: gcc-11 (Debian 11.3.0-8) 11.3.0
reproduce (this is a W=1 build):
        # https://github.com/intel-lab-lkp/linux/commit/2c921da06a8ac8f9e047f1a683146e1c5561534a
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Daniel-Lezcano/thermal-acpi-Remove-the-intermediate-acpi_thermal_trip-structure/20230204-015126
        git checkout 2c921da06a8ac8f9e047f1a683146e1c5561534a
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        make W=1 O=build_dir ARCH=i386 olddefconfig
        make W=1 O=build_dir ARCH=i386 SHELL=/bin/bash drivers/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@xxxxxxxxx>

All errors (new ones prefixed by >>):

   drivers/acpi/thermal.c: In function 'acpi_thermal_trips_alloc_critical':
>> drivers/acpi/thermal.c:274:15: error: implicit declaration of function 'thermal_acpi_critical_trip_temp' [-Werror=implicit-function-declaration]
     274 |         ret = thermal_acpi_critical_trip_temp(tz->device->handle, &trip.temperature);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/acpi/thermal.c: In function 'acpi_thermal_trips_alloc_hot':
>> drivers/acpi/thermal.c:307:15: error: implicit declaration of function 'thermal_acpi_hot_trip_temp'; did you mean 'thermal_zone_get_crit_temp'? [-Werror=implicit-function-declaration]
     307 |         ret = thermal_acpi_hot_trip_temp(tz->device->handle, &trip.temperature);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~
         |               thermal_zone_get_crit_temp
   drivers/acpi/thermal.c: In function 'acpi_thermal_trips_alloc_passive':
>> drivers/acpi/thermal.c:339:15: error: implicit declaration of function 'thermal_acpi_passive_trip_temp' [-Werror=implicit-function-declaration]
     339 |         ret = thermal_acpi_passive_trip_temp(tz->device->handle, &trip.temperature);
         |               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/acpi/thermal.c: In function 'acpi_thermal_trips_alloc_active':
>> drivers/acpi/thermal.c:380:23: error: implicit declaration of function 'thermal_acpi_active_trip_temp' [-Werror=implicit-function-declaration]
     380 |                 ret = thermal_acpi_active_trip_temp(tz->device->handle, i , &trip.temperature);
         |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   cc1: some warnings being treated as errors


vim +/thermal_acpi_critical_trip_temp +274 drivers/acpi/thermal.c

   257	
   258	static struct thermal_trip *acpi_thermal_trips_alloc_critical(struct acpi_thermal *tz,
   259								      struct thermal_trip *trips,
   260								      int *num_trips)
   261	{
   262		struct thermal_trip trip = {
   263			.type = THERMAL_TRIP_CRITICAL,
   264		};
   265	
   266		int ret;
   267	
   268		/*
   269		 * Module parameters disable the critical trip point
   270		 */
   271		if (crt < 0)
   272			goto out;
   273	
 > 274		ret = thermal_acpi_critical_trip_temp(tz->device->handle, &trip.temperature);
   275		if (ret)
   276			goto out;
   277		
   278		if (trip.temperature <= 0) {
   279			pr_info(FW_BUG "Invalid critical threshold (%d)\n", trip.temperature);
   280			goto out;
   281		}
   282	
   283		trips = krealloc(trips, sizeof(*trips) * (*num_trips + 1), GFP_KERNEL);
   284		if (!trips)
   285			goto out;
   286	
   287		trips[*num_trips] = trip; /* structure copy */
   288	
   289		if (crt > 0)
   290			acpi_thermal_trips_override(&trips[*num_trips], crt * MILLI);
   291		
   292		(*num_trips)++;
   293	out:
   294		return trips;
   295	}
   296	
   297	static struct thermal_trip *acpi_thermal_trips_alloc_hot(struct acpi_thermal *tz,
   298								 struct thermal_trip *trips,
   299								 int *num_trips)
   300	{
   301		struct thermal_trip trip = {
   302			.type = THERMAL_TRIP_HOT,
   303		};
   304	
   305		int ret;
   306	
 > 307		ret = thermal_acpi_hot_trip_temp(tz->device->handle, &trip.temperature);
   308		if (ret)
   309			goto out;
   310	
   311		trips = krealloc(trips, sizeof(*trips) * (*num_trips + 1), GFP_KERNEL);
   312		if (!trips)
   313			goto out;
   314	
   315		trips[*num_trips] = trip; /* structure copy */
   316		
   317		(*num_trips)++;
   318	out:
   319		return trips;
   320	}
   321	
   322	static struct thermal_trip *acpi_thermal_trips_alloc_passive(struct acpi_thermal *tz,
   323								     struct thermal_trip *trips,
   324								     int *num_trips)
   325	{
   326		acpi_status status;
   327		struct acpi_handle_list devices;
   328		struct thermal_trip trip = {
   329			.type = THERMAL_TRIP_PASSIVE
   330		};
   331		int ret;
   332	
   333		/*
   334		 * Module parameters disable all passive trip points
   335		 */
   336		if (psv < 0)
   337			goto out;
   338		
 > 339		ret = thermal_acpi_passive_trip_temp(tz->device->handle, &trip.temperature);
   340		if (ret)
   341			goto out;
   342		
   343		status = acpi_evaluate_reference(tz->device->handle, "_PSL", NULL, &devices);
   344		if (ACPI_FAILURE(status)) {
   345			acpi_handle_debug(tz->device->handle, "No passive device associated\n");
   346			goto out;
   347		}
   348	
   349		trips = krealloc(trips, sizeof(*trips) * (*num_trips + 1), GFP_KERNEL);
   350		if (!trips)
   351			goto out;
   352	
   353		trips[*num_trips] = trip; /* structure copy */	
   354		
   355		(*num_trips)++;
   356	out:
   357		return trips;
   358	}
   359	
   360	static struct thermal_trip *acpi_thermal_trips_alloc_active(struct acpi_thermal *tz,
   361								    struct thermal_trip *trips,
   362								    int *num_trips)
   363	{
   364		acpi_status status;
   365		struct acpi_handle_list devices;
   366		int i, ret;
   367	
   368		/*
   369		 * Module parameters disable all active trip points
   370		 */
   371		if (act < 0)
   372			return trips;
   373	
   374		for (i = 0; i < ACPI_THERMAL_MAX_ACTIVE; i++) {
   375			struct thermal_trip trip = {
   376				.type = THERMAL_TRIP_ACTIVE,
   377			};
   378			char name[5];
   379	
 > 380			ret = thermal_acpi_active_trip_temp(tz->device->handle, i , &trip.temperature);
   381			if (ret)
   382				break;
   383	
   384			sprintf(name, "_AL%d", i);
   385	
   386			status = acpi_evaluate_reference(tz->device->handle, name, NULL, &devices);
   387			if (ACPI_FAILURE(status)) {
   388				acpi_handle_info(tz->device->handle, "No _AL%d defined for _AC%d\n", i, i);
   389				break;
   390			}
   391			
   392			trips = krealloc(trips, sizeof(*trips) * (*num_trips + 1), GFP_KERNEL);
   393			if (!trips)
   394				break;
   395	
   396			trips[*num_trips] = trip; /* structure copy */	
   397	
   398			(*num_trips)++;
   399		}
   400	
   401		/*
   402		 * We found at least one trip point and we have an override option
   403		 */
   404		if (i && act) {
   405			/*
   406			 * Regarding the ACPI specification AC0 is the highest active
   407			 * temperature trip point. We will override this one.
   408			 */
   409			acpi_thermal_trips_override(&trips[*num_trips], act * MILLI);		
   410		}
   411	
   412		return trips;
   413	}
   414	

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



[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]
  Powered by Linux