Building the Linux kernel with Clang and LLVM
 help / color / mirror / Atom feed
* [wens:mtk-wip 28/60] drivers/input/mouse/elan_i2c_core.c:1258:10: error: call to undeclared function 'regulator_bulk_enable_and_wait'; ISO C99 and later do not support implicit function declarations
@ 2026-07-09  1:19 kernel test robot
  0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2026-07-09  1:19 UTC (permalink / raw)
  To: Chen-Yu Tsai; +Cc: llvm, oe-kbuild-all

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/wens/linux.git mtk-wip
head:   6bb13b3f06e1186263e25a011225629d221dcf65
commit: d6806397b23038f2497ae717bc64bd25c22c1e07 [28/60] Input: elan_i2c: Support vddio regulator supply
config: x86_64-rhel-9.4-rust (https://download.01.org/0day-ci/archive/20260709/202607090837.afHOrVIm-lkp@intel.com/config)
compiler: clang version 22.1.3 (https://github.com/llvm/llvm-project e9846648fd6183ee6d8cbdb4502213fcf902a211)
rustc: rustc 1.96.0 (ac68faa20 2026-05-25)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260709/202607090837.afHOrVIm-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@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202607090837.afHOrVIm-lkp@intel.com/

All errors (new ones prefixed by >>):

>> drivers/input/mouse/elan_i2c_core.c:1258:10: error: call to undeclared function 'regulator_bulk_enable_and_wait'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
    1258 |         error = regulator_bulk_enable_and_wait(ARRAY_SIZE(data->supplies), data->supplies,
         |                 ^
   drivers/input/mouse/elan_i2c_core.c:1258:10: note: did you mean 'regulator_bulk_enable'?
   include/linux/regulator/consumer.h:465:19: note: 'regulator_bulk_enable' declared here
     465 | static inline int regulator_bulk_enable(int num_consumers,
         |                   ^
   drivers/input/mouse/elan_i2c_core.c:1415:11: error: call to undeclared function 'regulator_bulk_enable_and_wait'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
    1415 |                 error = regulator_bulk_enable_and_wait(ARRAY_SIZE(data->supplies),
         |                         ^
   2 errors generated.


vim +/regulator_bulk_enable_and_wait +1258 drivers/input/mouse/elan_i2c_core.c

  1218	
  1219	static int elan_probe(struct i2c_client *client)
  1220	{
  1221		const struct elan_transport_ops *transport_ops;
  1222		struct device *dev = &client->dev;
  1223		struct elan_tp_data *data;
  1224		unsigned long irqflags;
  1225		int error;
  1226	
  1227		if (IS_ENABLED(CONFIG_MOUSE_ELAN_I2C_I2C) &&
  1228		    i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
  1229			transport_ops = &elan_i2c_ops;
  1230		} else if (IS_ENABLED(CONFIG_MOUSE_ELAN_I2C_SMBUS) &&
  1231			   i2c_check_functionality(client->adapter,
  1232						   I2C_FUNC_SMBUS_BYTE_DATA |
  1233							I2C_FUNC_SMBUS_BLOCK_DATA |
  1234							I2C_FUNC_SMBUS_I2C_BLOCK)) {
  1235			transport_ops = &elan_smbus_ops;
  1236		} else {
  1237			dev_err(dev, "not a supported I2C/SMBus adapter\n");
  1238			return -EIO;
  1239		}
  1240	
  1241		data = devm_kzalloc(dev, sizeof(struct elan_tp_data), GFP_KERNEL);
  1242		if (!data)
  1243			return -ENOMEM;
  1244	
  1245		i2c_set_clientdata(client, data);
  1246	
  1247		data->ops = transport_ops;
  1248		data->client = client;
  1249		init_completion(&data->fw_completion);
  1250		mutex_init(&data->sysfs_mutex);
  1251	
  1252		data->supplies[0].supply = "vcc";
  1253		data->supplies[1].supply = "vddio";
  1254		error = devm_regulator_bulk_get(dev, ARRAY_SIZE(data->supplies), data->supplies);
  1255		if (error)
  1256			return dev_err_probe(dev, error, "Failed to get regulators\n");
  1257	
> 1258		error = regulator_bulk_enable_and_wait(ARRAY_SIZE(data->supplies), data->supplies,
  1259						       ETP_POWER_ON_DELAY_US);
  1260		if (error) {
  1261			dev_err(dev, "Failed to enable regulators: %d\n", error);
  1262			return error;
  1263		}
  1264	
  1265		error = devm_add_action_or_reset(dev, elan_disable_regulator, data);
  1266		if (error) {
  1267			dev_err(dev, "Failed to add disable regulator action: %d\n",
  1268				error);
  1269			return error;
  1270		}
  1271	
  1272		/* Make sure there is something at this address */
  1273		error = i2c_smbus_read_byte(client);
  1274		if (error < 0) {
  1275			dev_dbg(&client->dev, "nothing at this address: %d\n", error);
  1276			return -ENXIO;
  1277		}
  1278	
  1279		/* Initialize the touchpad. */
  1280		error = elan_initialize(data, false);
  1281		if (error)
  1282			return error;
  1283	
  1284		error = elan_query_device_info(data);
  1285		if (error)
  1286			return error;
  1287	
  1288		error = elan_query_device_parameters(data);
  1289		if (error)
  1290			return error;
  1291	
  1292		dev_info(dev,
  1293			 "Elan Touchpad: Module ID: 0x%04x, Firmware: 0x%04x, Sample: 0x%04x, IAP: 0x%04x\n",
  1294			 data->product_id,
  1295			 data->fw_version,
  1296			 data->sm_version,
  1297			 data->iap_version);
  1298	
  1299		dev_dbg(dev,
  1300			"Elan Touchpad Extra Information:\n"
  1301			"    Max ABS X,Y:   %d,%d\n"
  1302			"    Width X,Y:   %d,%d\n"
  1303			"    Resolution X,Y:   %d,%d (dots/mm)\n"
  1304			"    ic type: 0x%x\n"
  1305			"    info pattern: 0x%x\n",
  1306			data->max_x, data->max_y,
  1307			data->width_x, data->width_y,
  1308			data->x_res, data->y_res,
  1309			data->ic_type, data->pattern);
  1310	
  1311		/* Set up input device properties based on queried parameters. */
  1312		error = elan_setup_input_device(data);
  1313		if (error)
  1314			return error;
  1315	
  1316		if (device_property_read_bool(&client->dev, "elan,trackpoint")) {
  1317			error = elan_setup_trackpoint_input_device(data);
  1318			if (error)
  1319				return error;
  1320		}
  1321	
  1322		/*
  1323		 * Platform code (ACPI, DTS) should normally set up interrupt
  1324		 * for us, but in case it did not let's fall back to using falling
  1325		 * edge to be compatible with older Chromebooks.
  1326		 */
  1327		irqflags = irq_get_trigger_type(client->irq);
  1328		if (!irqflags)
  1329			irqflags = IRQF_TRIGGER_FALLING;
  1330	
  1331		error = devm_request_threaded_irq(dev, client->irq, NULL, elan_isr,
  1332						  irqflags | IRQF_ONESHOT,
  1333						  client->name, data);
  1334		if (error) {
  1335			dev_err(dev, "cannot register irq=%d\n", client->irq);
  1336			return error;
  1337		}
  1338	
  1339		error = input_register_device(data->input);
  1340		if (error) {
  1341			dev_err(dev, "failed to register input device: %d\n", error);
  1342			return error;
  1343		}
  1344	
  1345		if (data->tp_input) {
  1346			error = input_register_device(data->tp_input);
  1347			if (error) {
  1348				dev_err(&client->dev,
  1349					"failed to register TrackPoint input device: %d\n",
  1350					error);
  1351				return error;
  1352			}
  1353		}
  1354	
  1355		return 0;
  1356	}
  1357	

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

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2026-07-09  1:20 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-09  1:19 [wens:mtk-wip 28/60] drivers/input/mouse/elan_i2c_core.c:1258:10: error: call to undeclared function 'regulator_bulk_enable_and_wait'; ISO C99 and later do not support implicit function declarations kernel test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox