tree:
https://chromium.googlesource.com/chromiumos/third_party/kernel chromeos-4.4
head: 7254c60ea46ececa5041496f7907d0fcc582c1ae
commit: 7c7d3263ef8b22d714decdbbaf463c66ce09c731 [13/14] BACKPORT: FROMGIT: media: cec:
i2c: ch7322: Add ch7322 CEC controller driver
config: nios2-randconfig-r024-20200707 (attached as .config)
compiler: nios2-linux-gcc (GCC) 7.5.0
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
git checkout 7c7d3263ef8b22d714decdbbaf463c66ce09c731
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-7.5.0 make.cross ARCH=nios2
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp(a)intel.com>
All errors (new ones prefixed by >>):
In file included from include/uapi/linux/stddef.h:1:0,
from include/linux/stddef.h:4,
from include/uapi/linux/posix_types.h:4,
from include/uapi/linux/types.h:13,
from include/linux/types.h:5,
from include/uapi/linux/cec.h:39,
from drivers/media/cec/i2c/ch7322.c:16:
include/linux/scatterlist.h: In function 'sg_set_buf':
arch/nios2/include/asm/page.h:90:33: warning: comparison of unsigned expression >= 0
is always true [-Wtype-limits]
# define pfn_valid(pfn) ((pfn) >= ARCH_PFN_OFFSET && \
^
include/linux/compiler.h:182:42: note: in definition of macro 'unlikely'
# define unlikely(x) __builtin_expect(!!(x), 0)
^
include/linux/scatterlist.h:140:2: note: in expansion of macro 'BUG_ON'
BUG_ON(!virt_addr_valid(buf));
^~~~~~
arch/nios2/include/asm/page.h:94:33: note: in expansion of macro 'pfn_valid'
# define virt_addr_valid(vaddr) pfn_valid(PFN_DOWN(virt_to_phys(vaddr)))
^~~~~~~~~
include/linux/scatterlist.h:140:10: note: in expansion of macro
'virt_addr_valid'
BUG_ON(!virt_addr_valid(buf));
^~~~~~~~~~~~~~~
drivers/media/cec/i2c/ch7322.c: In function 'ch7322_send_message':
drivers/media/cec/i2c/ch7322.c:197:16: warning: comparison between signed and unsigned
integer expressions [-Wsign-compare]
for (i = 0; i < len; i++) {
^
drivers/media/cec/i2c/ch7322.c: In function 'ch7322_probe':
> drivers/media/cec/i2c/ch7322.c:513:14: error: 'struct
cec_adapter' has no member named 'notifier'
ch7322->cec->notifier = notifier;
^~
vim +513 drivers/media/cec/i2c/ch7322.c
450
451 static int ch7322_probe(struct i2c_client *client)
452 {
453 struct device *hdmi_dev;
454 const char *port_name;
455 struct ch7322 *ch7322;
456 struct cec_notifier *notifier = NULL;
457 u32 caps = CEC_CAP_DEFAULTS;
458 int ret;
459 unsigned int val;
460
461 ret = ch7322_get_port(client, &hdmi_dev, &port_name);
462 if (ret)
463 return ret;
464
465 ch7322 = devm_kzalloc(&client->dev, sizeof(*ch7322), GFP_KERNEL);
466 if (!ch7322)
467 return -ENOMEM;
468
469 ch7322->regmap = devm_regmap_init_i2c(client, &ch7322_regmap);
470 if (IS_ERR(ch7322->regmap))
471 return PTR_ERR(ch7322->regmap);
472
473 ret = regmap_read(ch7322->regmap, CH7322_DID, &val);
474 if (ret)
475 return ret;
476
477 if (val != CH7322_DID_CH7322)
478 return -EOPNOTSUPP;
479
480 mutex_init(&ch7322->mutex);
481 ch7322->i2c = client;
482 ch7322->tx_flags = 0;
483
484 i2c_set_clientdata(client, ch7322);
485
486 /* Disable auto mode */
487 ret = regmap_write(ch7322->regmap, CH7322_MODE, CH7322_MODE_SW);
488 if (ret)
489 goto err_mutex;
490
491 /* Enable logical address register */
492 ret = regmap_update_bits(ch7322->regmap, CH7322_CTL,
493 CH7322_CTL_SPADL, CH7322_CTL_SPADL);
494 if (ret)
495 goto err_mutex;
496
497 ch7322->cec = cec_allocate_adapter(&ch7322_cec_adap_ops, ch7322,
498 dev_name(&client->dev),
499 caps, 1);
500
501 if (IS_ERR(ch7322->cec)) {
502 ret = PTR_ERR(ch7322->cec);
503 goto err_mutex;
504 }
505
506 if (hdmi_dev) {
507 notifier = cec_notifier_get_conn(hdmi_dev, port_name);
508 if (!notifier) {
509 ret = -ENOMEM;
510 goto err_cec;
511 }
512
513 ch7322->cec->notifier = notifier;
514 cec_notifier_register(notifier, ch7322->cec, ch7322_cec_notify);
515 }
516
517 /* Configure, mask, and clear interrupt */
518 ret = regmap_write(ch7322->regmap, CH7322_CFG1, 0);
519 if (ret)
520 goto err_notifier;
521 ret = regmap_write(ch7322->regmap, CH7322_INTCTL, CH7322_INTCTL_INTPB);
522 if (ret)
523 goto err_notifier;
524 ret = regmap_write(ch7322->regmap, CH7322_INTDATA, 0xff);
525 if (ret)
526 goto err_notifier;
527
528 /* If HPD is up read physical address */
529 ret = regmap_read(ch7322->regmap, CH7322_ADDLR, &val);
530 if (ret)
531 goto err_notifier;
532 if (val & CH7322_ADDLR_HPD)
533 ch7322_phys_addr(ch7322);
534
535 ret = devm_request_threaded_irq(&client->dev, client->irq, NULL,
536 ch7322_irq,
537 IRQF_ONESHOT | IRQF_TRIGGER_RISING,
538 client->name, ch7322);
539 if (ret)
540 goto err_notifier;
541
542 /* Unmask interrupt */
543 mutex_lock(&ch7322->mutex);
544 ret = regmap_write(ch7322->regmap, CH7322_INTCTL, 0xff);
545 mutex_unlock(&ch7322->mutex);
546
547 if (ret)
548 goto err_notifier;
549
550 ret = cec_register_adapter(ch7322->cec, &client->dev);
551 if (ret)
552 goto err_notifier;
553
554 dev_info(&client->dev, "device registered\n");
555
556 return 0;
557
558 err_notifier:
559 if (notifier)
560 cec_notifier_unregister(notifier);
561 err_cec:
562 cec_delete_adapter(ch7322->cec);
563 err_mutex:
564 mutex_destroy(&ch7322->mutex);
565 return ret;
566 }
567
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org