lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <202601252202.qioPfCgA-lkp@intel.com>
Date: Sun, 25 Jan 2026 22:56:35 +0800
From: kernel test robot <lkp@...el.com>
To: Mingyou Chen <qby140326@...il.com>, hansg@...nel.org,
	ilpo.jarvinen@...ux.intel.com
Cc: oe-kbuild-all@...ts.linux.dev, platform-driver-x86@...r.kernel.org,
	linux-kernel@...r.kernel.org, cryolitia.pukngae@...ux.dev,
	Mingyou Chen <qby140326@...il.com>
Subject: Re: [PATCH v4] platform/x86: tongfang-mifs-wmi: Add new Tongfang
 MIFS WMI driver

Hi Mingyou,

kernel test robot noticed the following build errors:

[auto build test ERROR on linus/master]
[also build test ERROR on v6.19-rc6 next-20260123]
[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/Mingyou-Chen/platform-x86-tongfang-mifs-wmi-Add-new-Tongfang-MIFS-WMI-driver/20260125-174727
base:   linus/master
patch link:    https://lore.kernel.org/r/20260125094422.6405-1-qby140326%40gmail.com
patch subject: [PATCH v4] platform/x86: tongfang-mifs-wmi: Add new Tongfang MIFS WMI driver
config: i386-allmodconfig (https://download.01.org/0day-ci/archive/20260125/202601252202.qioPfCgA-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260125/202601252202.qioPfCgA-lkp@intel.com/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202601252202.qioPfCgA-lkp@intel.com/

All error/warnings (new ones prefixed by >>):

   drivers/platform/x86/tongfang-mifs-wmi.c: In function 'tongfang_mifs_wmi_call':
>> drivers/platform/x86/tongfang-mifs-wmi.c:143:27: error: storage size of 'in_buf' isn't known
     143 |         struct wmi_buffer in_buf, out_buf;
         |                           ^~~~~~
>> drivers/platform/x86/tongfang-mifs-wmi.c:143:35: error: storage size of 'out_buf' isn't known
     143 |         struct wmi_buffer in_buf, out_buf;
         |                                   ^~~~~~~
>> drivers/platform/x86/tongfang-mifs-wmi.c:156:15: error: implicit declaration of function 'wmidev_invoke_method'; did you mean 'wmidev_evaluate_method'? [-Wimplicit-function-declaration]
     156 |         ret = wmidev_invoke_method(data->wdev, 0, 1, &in_buf,
         |               ^~~~~~~~~~~~~~~~~~~~
         |               wmidev_evaluate_method
>> drivers/platform/x86/tongfang-mifs-wmi.c:143:35: warning: unused variable 'out_buf' [-Wunused-variable]
     143 |         struct wmi_buffer in_buf, out_buf;
         |                                   ^~~~~~~
>> drivers/platform/x86/tongfang-mifs-wmi.c:143:27: warning: unused variable 'in_buf' [-Wunused-variable]
     143 |         struct wmi_buffer in_buf, out_buf;
         |                           ^~~~~~
   drivers/platform/x86/tongfang-mifs-wmi.c: In function 'laptop_profile_set':
>> drivers/platform/x86/tongfang-mifs-wmi.c:240:21: warning: this statement may fall through [-Wimplicit-fallthrough=]
     240 |                 val = WMI_PP_PERFORMANCE;
         |                 ~~~~^~~~~~~~~~~~~~~~~~~~
   drivers/platform/x86/tongfang-mifs-wmi.c:241:9: note: here
     241 |         case PLATFORM_PROFILE_PERFORMANCE:
         |         ^~~~


vim +143 drivers/platform/x86/tongfang-mifs-wmi.c

   138	
   139	static int tongfang_mifs_wmi_call(struct tongfang_mifs_wmi_data *data,
   140					  const struct tongfang_mifs_input *input,
   141					  struct tongfang_mifs_output *output)
   142	{
 > 143		struct wmi_buffer in_buf, out_buf;
   144		int ret;
   145	
   146		guard(mutex)(&data->lock);
   147	
   148		in_buf.length = sizeof(*input);
   149		in_buf.data = (void *)input;
   150	
   151		if (output) {
   152			out_buf.length = sizeof(*output);
   153			out_buf.data = output;
   154		}
   155	
 > 156		ret = wmidev_invoke_method(data->wdev, 0, 1, &in_buf,
   157					   output ? &out_buf : NULL);
   158	
   159		return ret;
   160	}
   161	
   162	static bool is_ac_online(void)
   163	{
   164		struct power_supply *psy;
   165		union power_supply_propval val;
   166		bool online = false;
   167	
   168		psy = power_supply_get_by_name("ADP1");
   169		if (!psy)
   170			return false;
   171	
   172		if (!power_supply_get_property(psy, POWER_SUPPLY_PROP_ONLINE, &val))
   173			online = (val.intval == 1);
   174	
   175		power_supply_put(psy);
   176		return online;
   177	}
   178	
   179	static int laptop_profile_get(struct device *dev,
   180				      enum platform_profile_option *profile)
   181	{
   182		struct tongfang_mifs_wmi_data *data = dev_get_drvdata(dev);
   183		struct tongfang_mifs_input input = {
   184			.reserved1 = 0,
   185			.operation = WMI_METHOD_GET,
   186			.reserved2 = 0,
   187			.function = WMI_FN_SYSTEM_PER_MODE,
   188		};
   189		struct tongfang_mifs_output result;
   190		int ret;
   191	
   192		ret = tongfang_mifs_wmi_call(data, &input, &result);
   193	
   194		if (ret)
   195			return ret;
   196	
   197		switch (result.data[0]) {
   198		case WMI_PP_BALANCED:
   199			*profile = PLATFORM_PROFILE_BALANCED;
   200			break;
   201		case WMI_PP_PERFORMANCE:
   202			*profile = PLATFORM_PROFILE_BALANCED_PERFORMANCE;
   203			break;
   204		case WMI_PP_QUIET:
   205			*profile = PLATFORM_PROFILE_LOW_POWER;
   206			break;
   207		case WMI_PP_FULL_SPEED:
   208			*profile = PLATFORM_PROFILE_PERFORMANCE;
   209			break; /* Fullspeed */
   210		default:
   211			return -EINVAL;
   212		}
   213		return 0;
   214	}
   215	
   216	
   217	static int laptop_profile_set(struct device *dev,
   218				      enum platform_profile_option profile)
   219	{
   220		struct tongfang_mifs_wmi_data *data = dev_get_drvdata(dev);
   221		struct tongfang_mifs_input input = {
   222			.reserved1 = 0,
   223			.operation = WMI_METHOD_SET,
   224			.reserved2 = 0,
   225			.function = WMI_FN_SYSTEM_PER_MODE,
   226		};
   227		struct tongfang_mifs_output ac_type_res;
   228	
   229		u8 val;
   230		int ret;
   231	
   232		switch (profile) {
   233		case PLATFORM_PROFILE_LOW_POWER:
   234			val = WMI_PP_QUIET;
   235			break;
   236		case PLATFORM_PROFILE_BALANCED:
   237			val = WMI_PP_BALANCED;
   238			break;
   239		case PLATFORM_PROFILE_BALANCED_PERFORMANCE:
 > 240			val = WMI_PP_PERFORMANCE;
   241		case PLATFORM_PROFILE_PERFORMANCE:
   242			/* Check if Typec power is not connected for full-speed/performance mode */
   243			input.operation = WMI_METHOD_GET;
   244			input.function = WMI_FN_SYSTEM_AC_TYPE;
   245			ret = tongfang_mifs_wmi_call(data, &input, &ac_type_res);
   246			if (ret)
   247				return ret;
   248	
   249			/* Full-speed/performance mode requires DC power (not USB-C) */
   250			if (ac_type_res.data[0] == WMI_SYSTEM_AC_TYPEC || !is_ac_online())
   251				return -EOPNOTSUPP;
   252	
   253			if (!val)
   254				val = WMI_PP_FULL_SPEED;
   255	
   256			/* Restore operation and function for the actual SET call */
   257			input.operation = WMI_METHOD_SET;
   258			input.function = WMI_FN_SYSTEM_PER_MODE;
   259			break;
   260		default:
   261			return -EOPNOTSUPP;
   262		}
   263	
   264		input.payload[0] = val;
   265	
   266		ret = tongfang_mifs_wmi_call(data, &input, NULL);
   267		return ret;
   268	}
   269	

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ