drivers/iio/adc/da9150-gpadc.c:281:2: error: use of undeclared identifier 'DA9150_GPADC_CHAN_0x08'

From: kernel test robot
Date: Tue Feb 15 2022 - 02:47:52 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: d567f5db412ed52de0b3b3efca4a451263de6108
commit: c434b9f80b0923e6460031b0fd964f8b0bf3c6a6 MIPS: Kconfig: add MIPS_GENERIC_KERNEL symbol
date: 1 year, 5 months ago
config: mips-buildonly-randconfig-r005-20220215 (https://download.01.org/0day-ci/archive/20220215/202202151553.WMyhY9PJ-lkp@xxxxxxxxx/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 37f422f4ac31c8b8041c6b62065263314282dab6)
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 mips cross compiling tool for clang build
# apt-get install binutils-mips-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c434b9f80b0923e6460031b0fd964f8b0bf3c6a6
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout c434b9f80b0923e6460031b0fd964f8b0bf3c6a6
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=mips SHELL=/bin/bash drivers/iio/adc/

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

All errors (new ones prefixed by >>):

>> drivers/iio/adc/da9150-gpadc.c:281:2: error: use of undeclared identifier 'DA9150_GPADC_CHAN_0x08'
DA9150_GPADC_CHANNEL_PROCESSED(GPIOD, GPIOD_6V, IIO_VOLTAGE, NULL),
^
drivers/iio/adc/da9150-gpadc.c:273:2: note: expanded from macro 'DA9150_GPADC_CHANNEL_PROCESSED'
DA9150_GPADC_CHANNEL(_id, _hw_id, _type, \
^
drivers/iio/adc/da9150-gpadc.c:254:13: note: expanded from macro 'DA9150_GPADC_CHANNEL'
.channel = DA9150_GPADC_CHAN_##_id, \
^
<scratch space>:144:1: note: expanded from here
DA9150_GPADC_CHAN_0x08
^
>> drivers/iio/adc/da9150-gpadc.c:360:28: error: invalid application of 'sizeof' to an incomplete type 'const struct iio_chan_spec[]'
indio_dev->num_channels = ARRAY_SIZE(da9150_gpadc_channels);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/kernel.h:47:32: note: expanded from macro 'ARRAY_SIZE'
#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof((arr)[0]) + __must_be_array(arr))
^~~~~
2 errors generated.


vim +/DA9150_GPADC_CHAN_0x08 +281 drivers/iio/adc/da9150-gpadc.c

ed5f07b3d3d434 Adam Thomson 2015-02-18 260
ed5f07b3d3d434 Adam Thomson 2015-02-18 261 #define DA9150_GPADC_CHANNEL_RAW(_id, _hw_id, _type, _ext_name) \
ed5f07b3d3d434 Adam Thomson 2015-02-18 262 DA9150_GPADC_CHANNEL(_id, _hw_id, _type, \
ed5f07b3d3d434 Adam Thomson 2015-02-18 263 BIT(IIO_CHAN_INFO_RAW), _ext_name)
ed5f07b3d3d434 Adam Thomson 2015-02-18 264
ed5f07b3d3d434 Adam Thomson 2015-02-18 265 #define DA9150_GPADC_CHANNEL_SCALED(_id, _hw_id, _type, _ext_name) \
ed5f07b3d3d434 Adam Thomson 2015-02-18 266 DA9150_GPADC_CHANNEL(_id, _hw_id, _type, \
ed5f07b3d3d434 Adam Thomson 2015-02-18 267 BIT(IIO_CHAN_INFO_RAW) | \
ed5f07b3d3d434 Adam Thomson 2015-02-18 268 BIT(IIO_CHAN_INFO_SCALE) | \
ed5f07b3d3d434 Adam Thomson 2015-02-18 269 BIT(IIO_CHAN_INFO_OFFSET), \
ed5f07b3d3d434 Adam Thomson 2015-02-18 270 _ext_name)
ed5f07b3d3d434 Adam Thomson 2015-02-18 271
ed5f07b3d3d434 Adam Thomson 2015-02-18 272 #define DA9150_GPADC_CHANNEL_PROCESSED(_id, _hw_id, _type, _ext_name) \
ed5f07b3d3d434 Adam Thomson 2015-02-18 @273 DA9150_GPADC_CHANNEL(_id, _hw_id, _type, \
ed5f07b3d3d434 Adam Thomson 2015-02-18 274 BIT(IIO_CHAN_INFO_PROCESSED), _ext_name)
ed5f07b3d3d434 Adam Thomson 2015-02-18 275
ed5f07b3d3d434 Adam Thomson 2015-02-18 276 /* Supported channels */
ed5f07b3d3d434 Adam Thomson 2015-02-18 277 static const struct iio_chan_spec da9150_gpadc_channels[] = {
ed5f07b3d3d434 Adam Thomson 2015-02-18 278 DA9150_GPADC_CHANNEL_PROCESSED(GPIOA, GPIOA_6V, IIO_VOLTAGE, NULL),
ed5f07b3d3d434 Adam Thomson 2015-02-18 279 DA9150_GPADC_CHANNEL_PROCESSED(GPIOB, GPIOB_6V, IIO_VOLTAGE, NULL),
ed5f07b3d3d434 Adam Thomson 2015-02-18 280 DA9150_GPADC_CHANNEL_PROCESSED(GPIOC, GPIOC_6V, IIO_VOLTAGE, NULL),
ed5f07b3d3d434 Adam Thomson 2015-02-18 @281 DA9150_GPADC_CHANNEL_PROCESSED(GPIOD, GPIOD_6V, IIO_VOLTAGE, NULL),
ed5f07b3d3d434 Adam Thomson 2015-02-18 282 DA9150_GPADC_CHANNEL_PROCESSED(IBUS, IBUS_SENSE, IIO_CURRENT, "ibus"),
ed5f07b3d3d434 Adam Thomson 2015-02-18 283 DA9150_GPADC_CHANNEL_PROCESSED(VBUS, VBUS_DIV_, IIO_VOLTAGE, "vbus"),
ed5f07b3d3d434 Adam Thomson 2015-02-18 284 DA9150_GPADC_CHANNEL_PROCESSED(VSYS, VSYS, IIO_VOLTAGE, "vsys"),
ed5f07b3d3d434 Adam Thomson 2015-02-18 285 DA9150_GPADC_CHANNEL_SCALED(VBAT, VBAT, IIO_VOLTAGE, "vbat"),
ed5f07b3d3d434 Adam Thomson 2015-02-18 286 DA9150_GPADC_CHANNEL_RAW(TBAT, TBAT, IIO_VOLTAGE, "tbat"),
ed5f07b3d3d434 Adam Thomson 2015-02-18 287 DA9150_GPADC_CHANNEL_SCALED(TJUNC_CORE, TJUNC_CORE, IIO_TEMP,
ed5f07b3d3d434 Adam Thomson 2015-02-18 288 "tjunc_core"),
ed5f07b3d3d434 Adam Thomson 2015-02-18 289 DA9150_GPADC_CHANNEL_SCALED(TJUNC_OVP, TJUNC_OVP, IIO_TEMP,
ed5f07b3d3d434 Adam Thomson 2015-02-18 290 "tjunc_ovp"),
ed5f07b3d3d434 Adam Thomson 2015-02-18 291 };
ed5f07b3d3d434 Adam Thomson 2015-02-18 292
ed5f07b3d3d434 Adam Thomson 2015-02-18 293 /* Default maps used by da9150-charger */
ed5f07b3d3d434 Adam Thomson 2015-02-18 294 static struct iio_map da9150_gpadc_default_maps[] = {
ed5f07b3d3d434 Adam Thomson 2015-02-18 295 {
ed5f07b3d3d434 Adam Thomson 2015-02-18 296 .consumer_dev_name = "da9150-charger",
ed5f07b3d3d434 Adam Thomson 2015-02-18 297 .consumer_channel = "CHAN_IBUS",
ed5f07b3d3d434 Adam Thomson 2015-02-18 298 .adc_channel_label = "IBUS",
ed5f07b3d3d434 Adam Thomson 2015-02-18 299 },
ed5f07b3d3d434 Adam Thomson 2015-02-18 300 {
ed5f07b3d3d434 Adam Thomson 2015-02-18 301 .consumer_dev_name = "da9150-charger",
ed5f07b3d3d434 Adam Thomson 2015-02-18 302 .consumer_channel = "CHAN_VBUS",
ed5f07b3d3d434 Adam Thomson 2015-02-18 303 .adc_channel_label = "VBUS",
ed5f07b3d3d434 Adam Thomson 2015-02-18 304 },
ed5f07b3d3d434 Adam Thomson 2015-02-18 305 {
ed5f07b3d3d434 Adam Thomson 2015-02-18 306 .consumer_dev_name = "da9150-charger",
ed5f07b3d3d434 Adam Thomson 2015-02-18 307 .consumer_channel = "CHAN_TJUNC",
ed5f07b3d3d434 Adam Thomson 2015-02-18 308 .adc_channel_label = "TJUNC_CORE",
ed5f07b3d3d434 Adam Thomson 2015-02-18 309 },
ed5f07b3d3d434 Adam Thomson 2015-02-18 310 {
ed5f07b3d3d434 Adam Thomson 2015-02-18 311 .consumer_dev_name = "da9150-charger",
ed5f07b3d3d434 Adam Thomson 2015-02-18 312 .consumer_channel = "CHAN_VBAT",
ed5f07b3d3d434 Adam Thomson 2015-02-18 313 .adc_channel_label = "VBAT",
ed5f07b3d3d434 Adam Thomson 2015-02-18 314 },
ed5f07b3d3d434 Adam Thomson 2015-02-18 315 {},
ed5f07b3d3d434 Adam Thomson 2015-02-18 316 };
ed5f07b3d3d434 Adam Thomson 2015-02-18 317
ed5f07b3d3d434 Adam Thomson 2015-02-18 318 static int da9150_gpadc_probe(struct platform_device *pdev)
ed5f07b3d3d434 Adam Thomson 2015-02-18 319 {
ed5f07b3d3d434 Adam Thomson 2015-02-18 320 struct device *dev = &pdev->dev;
ed5f07b3d3d434 Adam Thomson 2015-02-18 321 struct da9150 *da9150 = dev_get_drvdata(dev->parent);
ed5f07b3d3d434 Adam Thomson 2015-02-18 322 struct da9150_gpadc *gpadc;
ed5f07b3d3d434 Adam Thomson 2015-02-18 323 struct iio_dev *indio_dev;
ed5f07b3d3d434 Adam Thomson 2015-02-18 324 int irq, ret;
ed5f07b3d3d434 Adam Thomson 2015-02-18 325
ed5f07b3d3d434 Adam Thomson 2015-02-18 326 indio_dev = devm_iio_device_alloc(dev, sizeof(*gpadc));
ed5f07b3d3d434 Adam Thomson 2015-02-18 327 if (!indio_dev) {
ed5f07b3d3d434 Adam Thomson 2015-02-18 328 dev_err(&pdev->dev, "Failed to allocate IIO device\n");
ed5f07b3d3d434 Adam Thomson 2015-02-18 329 return -ENOMEM;
ed5f07b3d3d434 Adam Thomson 2015-02-18 330 }
ed5f07b3d3d434 Adam Thomson 2015-02-18 331 gpadc = iio_priv(indio_dev);
ed5f07b3d3d434 Adam Thomson 2015-02-18 332
ed5f07b3d3d434 Adam Thomson 2015-02-18 333 platform_set_drvdata(pdev, indio_dev);
ed5f07b3d3d434 Adam Thomson 2015-02-18 334 gpadc->da9150 = da9150;
ed5f07b3d3d434 Adam Thomson 2015-02-18 335 gpadc->dev = dev;
ed5f07b3d3d434 Adam Thomson 2015-02-18 336 mutex_init(&gpadc->lock);
ed5f07b3d3d434 Adam Thomson 2015-02-18 337 init_completion(&gpadc->complete);
ed5f07b3d3d434 Adam Thomson 2015-02-18 338
ed5f07b3d3d434 Adam Thomson 2015-02-18 339 irq = platform_get_irq_byname(pdev, "GPADC");
7c279229f980e5 Stephen Boyd 2019-07-30 340 if (irq < 0)
ed5f07b3d3d434 Adam Thomson 2015-02-18 341 return irq;
ed5f07b3d3d434 Adam Thomson 2015-02-18 342
ed5f07b3d3d434 Adam Thomson 2015-02-18 343 ret = devm_request_threaded_irq(dev, irq, NULL, da9150_gpadc_irq,
ed5f07b3d3d434 Adam Thomson 2015-02-18 344 IRQF_ONESHOT, "GPADC", gpadc);
ed5f07b3d3d434 Adam Thomson 2015-02-18 345 if (ret) {
ed5f07b3d3d434 Adam Thomson 2015-02-18 346 dev_err(dev, "Failed to request IRQ %d: %d\n", irq, ret);
ed5f07b3d3d434 Adam Thomson 2015-02-18 347 return ret;
ed5f07b3d3d434 Adam Thomson 2015-02-18 348 }
ed5f07b3d3d434 Adam Thomson 2015-02-18 349
ed5f07b3d3d434 Adam Thomson 2015-02-18 350 ret = iio_map_array_register(indio_dev, da9150_gpadc_default_maps);
ed5f07b3d3d434 Adam Thomson 2015-02-18 351 if (ret) {
ed5f07b3d3d434 Adam Thomson 2015-02-18 352 dev_err(dev, "Failed to register IIO maps: %d\n", ret);
ed5f07b3d3d434 Adam Thomson 2015-02-18 353 return ret;
ed5f07b3d3d434 Adam Thomson 2015-02-18 354 }
ed5f07b3d3d434 Adam Thomson 2015-02-18 355
ed5f07b3d3d434 Adam Thomson 2015-02-18 356 indio_dev->name = dev_name(dev);
ed5f07b3d3d434 Adam Thomson 2015-02-18 357 indio_dev->info = &da9150_gpadc_info;
ed5f07b3d3d434 Adam Thomson 2015-02-18 358 indio_dev->modes = INDIO_DIRECT_MODE;
ed5f07b3d3d434 Adam Thomson 2015-02-18 359 indio_dev->channels = da9150_gpadc_channels;
ed5f07b3d3d434 Adam Thomson 2015-02-18 @360 indio_dev->num_channels = ARRAY_SIZE(da9150_gpadc_channels);
ed5f07b3d3d434 Adam Thomson 2015-02-18 361
ed5f07b3d3d434 Adam Thomson 2015-02-18 362 ret = iio_device_register(indio_dev);
ed5f07b3d3d434 Adam Thomson 2015-02-18 363 if (ret) {
ed5f07b3d3d434 Adam Thomson 2015-02-18 364 dev_err(dev, "Failed to register IIO device: %d\n", ret);
ed5f07b3d3d434 Adam Thomson 2015-02-18 365 goto iio_map_unreg;
ed5f07b3d3d434 Adam Thomson 2015-02-18 366 }
ed5f07b3d3d434 Adam Thomson 2015-02-18 367
ed5f07b3d3d434 Adam Thomson 2015-02-18 368 return 0;
ed5f07b3d3d434 Adam Thomson 2015-02-18 369
ed5f07b3d3d434 Adam Thomson 2015-02-18 370 iio_map_unreg:
ed5f07b3d3d434 Adam Thomson 2015-02-18 371 iio_map_array_unregister(indio_dev);
ed5f07b3d3d434 Adam Thomson 2015-02-18 372
ed5f07b3d3d434 Adam Thomson 2015-02-18 373 return ret;
ed5f07b3d3d434 Adam Thomson 2015-02-18 374 }
ed5f07b3d3d434 Adam Thomson 2015-02-18 375

:::::: The code at line 281 was first introduced by commit
:::::: ed5f07b3d3d4344f917658a7f62cf62ccb19cb07 iio: Add support for DA9150 GPADC

:::::: TO: Adam Thomson <Adam.Thomson.Opensource@xxxxxxxxxxx>
:::::: CC: Sebastian Reichel <sre@xxxxxxxxxx>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx