Re: [PATCH 2/5] mfd: rk8xx: Add RK816 support

From: kernel test robot
Date: Fri Mar 22 2024 - 17:45:57 EST


Hi Alex,

kernel test robot noticed the following build errors:

[auto build test ERROR on lee-mfd/for-mfd-next]
[also build test ERROR on lee-mfd/for-mfd-fixes broonie-regulator/for-next robh/for-next linus/master v6.8 next-20240322]
[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/Alex-Bee/dt-bindings-mfd-Add-rk816-binding/20240321-224318
base: https://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git for-mfd-next
patch link: https://lore.kernel.org/r/20240321143911.90210-5-knaerzche%40gmail.com
patch subject: [PATCH 2/5] mfd: rk8xx: Add RK816 support
config: arm-randconfig-002-20240322 (https://download.01.org/0day-ci/archive/20240323/202403230551.Vc1eaxTr-lkp@xxxxxxxxx/config)
compiler: clang version 19.0.0git (https://github.com/llvm/llvm-project 23de3862dce582ce91c1aa914467d982cb1a73b4)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20240323/202403230551.Vc1eaxTr-lkp@xxxxxxxxx/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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202403230551.Vc1eaxTr-lkp@xxxxxxxxx/

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

In file included from drivers/mfd/rk8xx-core.c:14:
In file included from include/linux/mfd/rk808.h:18:
In file included from include/linux/regulator/machine.h:15:
In file included from include/linux/regulator/consumer.h:35:
In file included from include/linux/suspend.h:5:
In file included from include/linux/swap.h:9:
In file included from include/linux/memcontrol.h:20:
In file included from include/linux/mm.h:2188:
include/linux/vmstat.h:522:36: warning: arithmetic between different enumeration types ('enum node_stat_item' and 'enum lru_list') [-Wenum-enum-conversion]
522 | return node_stat_name(NR_LRU_BASE + lru) + 3; // skip "nr_"
| ~~~~~~~~~~~ ^ ~~~
>> drivers/mfd/rk8xx-core.c:395:8: warning: 'const' type qualifier on return type has no effect [-Wignored-qualifiers]
395 | static const unsigned int rk816_get_irq_reg(struct regmap_irq_chip_data *data,
| ^~~~~
>> drivers/mfd/rk8xx-core.c:573:17: error: incompatible function pointer types initializing 'unsigned int (*)(struct regmap_irq_chip_data *, unsigned int, int)' with an expression of type 'const unsigned int (struct regmap_irq_chip_data *, unsigned int, int)' [-Wincompatible-function-pointer-types]
573 | .get_irq_reg = rk816_get_irq_reg,
| ^~~~~~~~~~~~~~~~~
2 warnings and 1 error generated.


vim +573 drivers/mfd/rk8xx-core.c

394
> 395 static const unsigned int rk816_get_irq_reg(struct regmap_irq_chip_data *data,
396 unsigned int base, int index)
397 {
398 unsigned int irq_reg = base;
399
400 switch (base) {
401 case RK816_INT_STS_REG1:
402 irq_reg += rk816_irq_status_offsets[index];
403 break;
404 case RK816_INT_STS_MSK_REG1:
405 irq_reg += rk816_irq_mask_offsets[index];
406 break;
407 }
408
409 return irq_reg;
410 };
411
412 static const struct regmap_irq rk816_irqs[] = {
413 /* INT_STS_REG1 IRQs */
414 REGMAP_IRQ_REG(RK816_IRQ_PWRON_FALL, 0, RK816_INT_STS_PWRON_FALL),
415 REGMAP_IRQ_REG(RK816_IRQ_PWRON_RISE, 0, RK816_INT_STS_PWRON_RISE),
416
417 /* INT_STS_REG2 IRQs */
418 REGMAP_IRQ_REG(RK816_IRQ_VB_LOW, 1, RK816_INT_STS_VB_LOW),
419 REGMAP_IRQ_REG(RK816_IRQ_PWRON, 1, RK816_INT_STS_PWRON),
420 REGMAP_IRQ_REG(RK816_IRQ_PWRON_LP, 1, RK816_INT_STS_PWRON_LP),
421 REGMAP_IRQ_REG(RK816_IRQ_HOTDIE, 1, RK816_INT_STS_HOTDIE),
422 REGMAP_IRQ_REG(RK816_IRQ_RTC_ALARM, 1, RK816_INT_STS_RTC_ALARM),
423 REGMAP_IRQ_REG(RK816_IRQ_RTC_PERIOD, 1, RK816_INT_STS_RTC_PERIOD),
424 REGMAP_IRQ_REG(RK816_IRQ_USB_OV, 1, RK816_INT_STS_USB_OV),
425
426 /* INT_STS3 IRQs */
427 REGMAP_IRQ_REG(RK816_IRQ_PLUG_IN, 2, RK816_INT_STS_PLUG_IN),
428 REGMAP_IRQ_REG(RK816_IRQ_PLUG_OUT, 2, RK816_INT_STS_PLUG_OUT),
429 REGMAP_IRQ_REG(RK816_IRQ_CHG_OK, 2, RK816_INT_STS_CHG_OK),
430 REGMAP_IRQ_REG(RK816_IRQ_CHG_TE, 2, RK816_INT_STS_CHG_TE),
431 REGMAP_IRQ_REG(RK816_IRQ_CHG_TS, 2, RK816_INT_STS_CHG_TS),
432 REGMAP_IRQ_REG(RK816_IRQ_CHG_CVTLIM, 2, RK816_INT_STS_CHG_CVTLIM),
433 REGMAP_IRQ_REG(RK816_IRQ_DISCHG_ILIM, 2, RK816_INT_STS_DISCHG_ILIM),
434 };
435
436 static const struct regmap_irq rk818_irqs[] = {
437 /* INT_STS */
438 [RK818_IRQ_VOUT_LO] = {
439 .mask = RK818_IRQ_VOUT_LO_MSK,
440 .reg_offset = 0,
441 },
442 [RK818_IRQ_VB_LO] = {
443 .mask = RK818_IRQ_VB_LO_MSK,
444 .reg_offset = 0,
445 },
446 [RK818_IRQ_PWRON] = {
447 .mask = RK818_IRQ_PWRON_MSK,
448 .reg_offset = 0,
449 },
450 [RK818_IRQ_PWRON_LP] = {
451 .mask = RK818_IRQ_PWRON_LP_MSK,
452 .reg_offset = 0,
453 },
454 [RK818_IRQ_HOTDIE] = {
455 .mask = RK818_IRQ_HOTDIE_MSK,
456 .reg_offset = 0,
457 },
458 [RK818_IRQ_RTC_ALARM] = {
459 .mask = RK818_IRQ_RTC_ALARM_MSK,
460 .reg_offset = 0,
461 },
462 [RK818_IRQ_RTC_PERIOD] = {
463 .mask = RK818_IRQ_RTC_PERIOD_MSK,
464 .reg_offset = 0,
465 },
466 [RK818_IRQ_USB_OV] = {
467 .mask = RK818_IRQ_USB_OV_MSK,
468 .reg_offset = 0,
469 },
470
471 /* INT_STS2 */
472 [RK818_IRQ_PLUG_IN] = {
473 .mask = RK818_IRQ_PLUG_IN_MSK,
474 .reg_offset = 1,
475 },
476 [RK818_IRQ_PLUG_OUT] = {
477 .mask = RK818_IRQ_PLUG_OUT_MSK,
478 .reg_offset = 1,
479 },
480 [RK818_IRQ_CHG_OK] = {
481 .mask = RK818_IRQ_CHG_OK_MSK,
482 .reg_offset = 1,
483 },
484 [RK818_IRQ_CHG_TE] = {
485 .mask = RK818_IRQ_CHG_TE_MSK,
486 .reg_offset = 1,
487 },
488 [RK818_IRQ_CHG_TS1] = {
489 .mask = RK818_IRQ_CHG_TS1_MSK,
490 .reg_offset = 1,
491 },
492 [RK818_IRQ_TS2] = {
493 .mask = RK818_IRQ_TS2_MSK,
494 .reg_offset = 1,
495 },
496 [RK818_IRQ_CHG_CVTLIM] = {
497 .mask = RK818_IRQ_CHG_CVTLIM_MSK,
498 .reg_offset = 1,
499 },
500 [RK818_IRQ_DISCHG_ILIM] = {
501 .mask = RK818_IRQ_DISCHG_ILIM_MSK,
502 .reg_offset = 1,
503 },
504 };
505
506 static const struct regmap_irq rk817_irqs[RK817_IRQ_END] = {
507 REGMAP_IRQ_REG_LINE(0, 8),
508 REGMAP_IRQ_REG_LINE(1, 8),
509 REGMAP_IRQ_REG_LINE(2, 8),
510 REGMAP_IRQ_REG_LINE(3, 8),
511 REGMAP_IRQ_REG_LINE(4, 8),
512 REGMAP_IRQ_REG_LINE(5, 8),
513 REGMAP_IRQ_REG_LINE(6, 8),
514 REGMAP_IRQ_REG_LINE(7, 8),
515 REGMAP_IRQ_REG_LINE(8, 8),
516 REGMAP_IRQ_REG_LINE(9, 8),
517 REGMAP_IRQ_REG_LINE(10, 8),
518 REGMAP_IRQ_REG_LINE(11, 8),
519 REGMAP_IRQ_REG_LINE(12, 8),
520 REGMAP_IRQ_REG_LINE(13, 8),
521 REGMAP_IRQ_REG_LINE(14, 8),
522 REGMAP_IRQ_REG_LINE(15, 8),
523 REGMAP_IRQ_REG_LINE(16, 8),
524 REGMAP_IRQ_REG_LINE(17, 8),
525 REGMAP_IRQ_REG_LINE(18, 8),
526 REGMAP_IRQ_REG_LINE(19, 8),
527 REGMAP_IRQ_REG_LINE(20, 8),
528 REGMAP_IRQ_REG_LINE(21, 8),
529 REGMAP_IRQ_REG_LINE(22, 8),
530 REGMAP_IRQ_REG_LINE(23, 8)
531 };
532
533 static struct regmap_irq_chip rk805_irq_chip = {
534 .name = "rk805",
535 .irqs = rk805_irqs,
536 .num_irqs = ARRAY_SIZE(rk805_irqs),
537 .num_regs = 1,
538 .status_base = RK805_INT_STS_REG,
539 .mask_base = RK805_INT_STS_MSK_REG,
540 .ack_base = RK805_INT_STS_REG,
541 .init_ack_masked = true,
542 };
543
544 static struct regmap_irq_chip rk806_irq_chip = {
545 .name = "rk806",
546 .irqs = rk806_irqs,
547 .num_irqs = ARRAY_SIZE(rk806_irqs),
548 .num_regs = 2,
549 .irq_reg_stride = 2,
550 .mask_base = RK806_INT_MSK0,
551 .status_base = RK806_INT_STS0,
552 .ack_base = RK806_INT_STS0,
553 .init_ack_masked = true,
554 };
555
556 static const struct regmap_irq_chip rk808_irq_chip = {
557 .name = "rk808",
558 .irqs = rk808_irqs,
559 .num_irqs = ARRAY_SIZE(rk808_irqs),
560 .num_regs = 2,
561 .irq_reg_stride = 2,
562 .status_base = RK808_INT_STS_REG1,
563 .mask_base = RK808_INT_STS_MSK_REG1,
564 .ack_base = RK808_INT_STS_REG1,
565 .init_ack_masked = true,
566 };
567
568 static const struct regmap_irq_chip rk816_irq_chip = {
569 .name = "rk816",
570 .irqs = rk816_irqs,
571 .num_irqs = ARRAY_SIZE(rk816_irqs),
572 .num_regs = 3,
> 573 .get_irq_reg = rk816_get_irq_reg,
574 .status_base = RK816_INT_STS_REG1,
575 .mask_base = RK816_INT_STS_MSK_REG1,
576 .ack_base = RK816_INT_STS_REG1,
577 .init_ack_masked = true,
578 };
579

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