tree:
https://git.kernel.org/pub/scm/linux/kernel/git/kbingham/rcar.git gmsl/dev
head: 0ee7afa8fd0cf3a613f9d643d42f2c7c9774c204
commit: 6649a879907dbffc1da93cf5c6af372910801b7f [32/37] DNI: max9286 of_ref_read debug
config: powerpc64-randconfig-r025-20200614 (attached as .config)
compiler: clang version 11.0.0 (
https://github.com/llvm/llvm-project
c669a1ed6386d57a75a602b53266466dae1e1d84)
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
# install powerpc64 cross compiling tool for clang build
# apt-get install binutils-powerpc64-linux-gnu
git checkout 6649a879907dbffc1da93cf5c6af372910801b7f
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=powerpc64
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All warnings (new ones prefixed by >>, old ones prefixed by <<):
> drivers/media/i2c/max9286.c:1482:13: warning: data argument not
used by format string [-Wformat-extra-args]
__LINE__,
of_ref_read(client->dev.of_node));
^
include/linux/dev_printk.h:104:32: note: expanded from macro 'dev_err'
_dev_err(dev, dev_fmt(fmt), ##__VA_ARGS__)
~~~ ^
drivers/media/i2c/max9286.c:1489:13: warning: data argument not used by format string
[-Wformat-extra-args]
__LINE__, of_ref_read(client->dev.of_node));
^
include/linux/dev_printk.h:104:32: note: expanded from macro 'dev_err'
_dev_err(dev, dev_fmt(fmt), ##__VA_ARGS__)
~~~ ^
drivers/media/i2c/max9286.c:1520:13: warning: data argument not used by format string
[-Wformat-extra-args]
__LINE__, of_ref_read(client->dev.of_node));
^
include/linux/dev_printk.h:104:32: note: expanded from macro 'dev_err'
_dev_err(dev, dev_fmt(fmt), ##__VA_ARGS__)
~~~ ^
3 warnings generated.
vim +1482 drivers/media/i2c/max9286.c
1413
1414 static int max9286_probe(struct i2c_client *client)
1415 {
1416 struct max9286_priv *priv;
1417 int ret;
1418
1419 priv = devm_kzalloc(&client->dev, sizeof(*priv), GFP_KERNEL);
1420 if (!priv)
1421 return -ENOMEM;
1422
1423 mutex_init(&priv->mutex);
1424
1425 priv->client = client;
1426 i2c_set_clientdata(client, priv);
1427
1428 priv->gpiod_pwdn = devm_gpiod_get_optional(&client->dev,
"enable",
1429 GPIOD_OUT_HIGH);
1430 if (IS_ERR(priv->gpiod_pwdn))
1431 return PTR_ERR(priv->gpiod_pwdn);
1432
1433 gpiod_set_consumer_name(priv->gpiod_pwdn, "max9286-pwdn");
1434 gpiod_set_value_cansleep(priv->gpiod_pwdn, 1);
1435
1436 /* Wait at least 4ms before the I2C lines latch to the address */
1437 if (priv->gpiod_pwdn)
1438 usleep_range(4000, 5000);
1439
1440 /*
1441 * We can have multiple MAX9286 instances on the same physical I2C
1442 * bus, and I2C children behind ports of separate MAX9286 instances
1443 * having the same I2C address. As the MAX9286 starts by default with
1444 * all ports enabled, we need to disable all ports on all MAX9286
1445 * instances before proceeding to further initialize the devices and
1446 * instantiate children.
1447 *
1448 * Start by just disabling all channels on the current device. Then,
1449 * if all other MAX9286 on the parent bus have been probed, proceed
1450 * to initialize them all, including the current one.
1451 */
1452 max9286_i2c_mux_close(priv);
1453
1454 /*
1455 * The MAX9286 initialises with auto-acknowledge enabled by default.
1456 * This means that if multiple MAX9286 devices are connected to an I2C
1457 * bus, another MAX9286 could ack I2C transfers meant for a device on
1458 * the other side of the GMSL links for this MAX9286 (such as a
1459 * MAX9271). To prevent that disable auto-acknowledge early on; it
1460 * will be enabled later as needed.
1461 */
1462 max9286_configure_i2c(priv, false);
1463
1464 ret = max9286_register_gpio(priv);
1465 if (ret)
1466 goto err_powerdown;
1467
1468 priv->regulator = devm_regulator_get(&client->dev, "poc");
1469 if (IS_ERR(priv->regulator)) {
1470 if (PTR_ERR(priv->regulator) != -EPROBE_DEFER)
1471 dev_err(&client->dev,
1472 "Unable to get PoC regulator (%ld)\n",
1473 PTR_ERR(priv->regulator));
1474 else
1475 dev_err(&client->dev, "Regulator not yet available
-EPROBE_DEFER...\n");
1476
1477 ret = PTR_ERR(priv->regulator);
1478 goto err_powerdown;
1479 }
1480
1481 dev_err(&client->dev, "A) of_node pre parse_dt %d.\n",
1482 __LINE__, of_ref_read(client->dev.of_node));
1483
1484 ret = max9286_parse_dt(priv);
1485 if (ret)
1486 goto err_powerdown;
1487
1488 dev_err(&client->dev, "B) of_node post parse_dt %d.\n",
1489 __LINE__, of_ref_read(client->dev.of_node));
1490
1491 /* Add any userspace support before we return early. */
1492 max9286_debugfs_init(priv);
1493
1494 dev_err(&client->dev, "Pre-init");
1495
1496 ret = device_for_each_child(client->dev.parent, &client->dev,
1497 max9286_is_bound);
1498 if (ret)
1499 return 0;
1500
1501 dev_dbg(&client->dev,
1502 "All max9286 probed: start initialization sequence\n");
1503 ret = device_for_each_child(client->dev.parent, NULL,
1504 max9286_init);
1505 if (ret < 0)
1506 goto err_cleanup_dt;
1507
1508 /* Leave the mux channels disabled until they are selected. */
1509 max9286_i2c_mux_close(priv);
1510
1511 return 0;
1512
1513 err_cleanup_dt:
1514 max9286_cleanup_dt(priv);
1515 max9286_debugfs_remove(priv);
1516 err_powerdown:
1517 gpiod_set_value_cansleep(priv->gpiod_pwdn, 0);
1518
1519 dev_err(&client->dev, "C) of_node post parse_dt %d.\n",
1520 __LINE__, of_ref_read(client->dev.of_node));
1521
1522 return ret;
1523 }
1524
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org