Hi Tony, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on ljones-mfd/for-mfd-next] [also build test WARNING on v4.18-rc6 next-20180723] [if your patch is applied to the wrong git tree, please drop us a note to help improve the system] url: https://github.com/0day-ci/linux/commits/Tony-Xie/mfd-rk808-Add-RK817-and-RK809-support/20180724-040547 base: https://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git for-mfd-next config: xtensa-allyesconfig (attached as .config) compiler: xtensa-linux-gcc (GCC) 8.1.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree GCC_VERSION=8.1.0 make.cross ARCH=xtensa Note: it may well be a FALSE warning. FWIW you are at least aware of it now. http://gcc.gnu.org/wiki/Better_Uninitialized_Warnings All warnings (new ones prefixed by >>): drivers//mfd/rk808.c: In function 'rk808_probe': >> drivers//mfd/rk808.c:715:16: warning: 'pm_pwroff_fn' may be used uninitialized in this function [-Wmaybe-uninitialized] pm_power_off = pm_pwroff_fn; ~~~~~~~~~~~~~^~~~~~~~~~~~~~ vim +/pm_pwroff_fn +715 drivers//mfd/rk808.c 2eedcbfc0 Wadim Egorov 2016-08-29 581 f69a7cf74 Chris Zhong 2014-09-03 582 static int rk808_probe(struct i2c_client *client, f69a7cf74 Chris Zhong 2014-09-03 583 const struct i2c_device_id *id) f69a7cf74 Chris Zhong 2014-09-03 584 { f69a7cf74 Chris Zhong 2014-09-03 585 struct device_node *np = client->dev.of_node; f69a7cf74 Chris Zhong 2014-09-03 586 struct rk808 *rk808; 2eedcbfc0 Wadim Egorov 2016-08-29 587 const struct rk808_reg_data *pre_init_reg; 2eedcbfc0 Wadim Egorov 2016-08-29 588 const struct mfd_cell *cells; b2e2c8509 Jianhong Chen 2016-10-17 589 void (*pm_pwroff_fn)(void); 2eedcbfc0 Wadim Egorov 2016-08-29 590 int nr_pre_init_regs; 2eedcbfc0 Wadim Egorov 2016-08-29 591 int nr_cells; 9d6105e19 Elaine Zhang 2017-08-21 592 int pm_off = 0, msb, lsb; 1e99c2e53 Tony Xie 2018-07-23 593 unsigned char pmic_id_msb = RK808_ID_MSB, pmic_id_lsb = RK808_ID_LSB; f69a7cf74 Chris Zhong 2014-09-03 594 int ret; f69a7cf74 Chris Zhong 2014-09-03 595 int i; f69a7cf74 Chris Zhong 2014-09-03 596 f69a7cf74 Chris Zhong 2014-09-03 597 rk808 = devm_kzalloc(&client->dev, sizeof(*rk808), GFP_KERNEL); f69a7cf74 Chris Zhong 2014-09-03 598 if (!rk808) f69a7cf74 Chris Zhong 2014-09-03 599 return -ENOMEM; f69a7cf74 Chris Zhong 2014-09-03 600 1e99c2e53 Tony Xie 2018-07-23 601 if (of_device_is_compatible(np, "rockchip,rk817") || 1e99c2e53 Tony Xie 2018-07-23 602 of_device_is_compatible(np, "rockchip,rk809")) { 1e99c2e53 Tony Xie 2018-07-23 603 pmic_id_msb = RK817_ID_MSB; 1e99c2e53 Tony Xie 2018-07-23 604 pmic_id_lsb = RK817_ID_LSB; 1e99c2e53 Tony Xie 2018-07-23 605 } 9d6105e19 Elaine Zhang 2017-08-21 606 /* Read chip variant */ 1e99c2e53 Tony Xie 2018-07-23 607 msb = i2c_smbus_read_byte_data(client, pmic_id_msb); 9d6105e19 Elaine Zhang 2017-08-21 608 if (msb < 0) { 9d6105e19 Elaine Zhang 2017-08-21 609 dev_err(&client->dev, "failed to read the chip id at 0x%x\n", 2eedcbfc0 Wadim Egorov 2016-08-29 610 RK808_ID_MSB); 9d6105e19 Elaine Zhang 2017-08-21 611 return msb; 2eedcbfc0 Wadim Egorov 2016-08-29 612 } 2eedcbfc0 Wadim Egorov 2016-08-29 613 1e99c2e53 Tony Xie 2018-07-23 614 lsb = i2c_smbus_read_byte_data(client, pmic_id_lsb); 9d6105e19 Elaine Zhang 2017-08-21 615 if (lsb < 0) { 9d6105e19 Elaine Zhang 2017-08-21 616 dev_err(&client->dev, "failed to read the chip id at 0x%x\n", 9d6105e19 Elaine Zhang 2017-08-21 617 RK808_ID_LSB); 9d6105e19 Elaine Zhang 2017-08-21 618 return lsb; 9d6105e19 Elaine Zhang 2017-08-21 619 } 9d6105e19 Elaine Zhang 2017-08-21 620 9d6105e19 Elaine Zhang 2017-08-21 621 rk808->variant = ((msb << 8) | lsb) & RK8XX_ID_MSK; 9d6105e19 Elaine Zhang 2017-08-21 622 dev_info(&client->dev, "chip id: 0x%x\n", (unsigned int)rk808->variant); 2eedcbfc0 Wadim Egorov 2016-08-29 623 2eedcbfc0 Wadim Egorov 2016-08-29 624 switch (rk808->variant) { 990f05f6a Elaine Zhang 2017-08-21 625 case RK805_ID: 990f05f6a Elaine Zhang 2017-08-21 626 rk808->regmap_cfg = &rk805_regmap_config; 990f05f6a Elaine Zhang 2017-08-21 627 rk808->regmap_irq_chip = &rk805_irq_chip; 990f05f6a Elaine Zhang 2017-08-21 628 pre_init_reg = rk805_pre_init_reg; 990f05f6a Elaine Zhang 2017-08-21 629 nr_pre_init_regs = ARRAY_SIZE(rk805_pre_init_reg); 990f05f6a Elaine Zhang 2017-08-21 630 cells = rk805s; 990f05f6a Elaine Zhang 2017-08-21 631 nr_cells = ARRAY_SIZE(rk805s); 990f05f6a Elaine Zhang 2017-08-21 632 pm_pwroff_fn = rk805_device_shutdown; 990f05f6a Elaine Zhang 2017-08-21 633 break; 2eedcbfc0 Wadim Egorov 2016-08-29 634 case RK808_ID: 2eedcbfc0 Wadim Egorov 2016-08-29 635 rk808->regmap_cfg = &rk808_regmap_config; 2eedcbfc0 Wadim Egorov 2016-08-29 636 rk808->regmap_irq_chip = &rk808_irq_chip; 2eedcbfc0 Wadim Egorov 2016-08-29 637 pre_init_reg = rk808_pre_init_reg; 2eedcbfc0 Wadim Egorov 2016-08-29 638 nr_pre_init_regs = ARRAY_SIZE(rk808_pre_init_reg); 2eedcbfc0 Wadim Egorov 2016-08-29 639 cells = rk808s; 2eedcbfc0 Wadim Egorov 2016-08-29 640 nr_cells = ARRAY_SIZE(rk808s); b2e2c8509 Jianhong Chen 2016-10-17 641 pm_pwroff_fn = rk808_device_shutdown; 2eedcbfc0 Wadim Egorov 2016-08-29 642 break; 2eedcbfc0 Wadim Egorov 2016-08-29 643 case RK818_ID: 2eedcbfc0 Wadim Egorov 2016-08-29 644 rk808->regmap_cfg = &rk818_regmap_config; 2eedcbfc0 Wadim Egorov 2016-08-29 645 rk808->regmap_irq_chip = &rk818_irq_chip; 2eedcbfc0 Wadim Egorov 2016-08-29 646 pre_init_reg = rk818_pre_init_reg; 2eedcbfc0 Wadim Egorov 2016-08-29 647 nr_pre_init_regs = ARRAY_SIZE(rk818_pre_init_reg); 2eedcbfc0 Wadim Egorov 2016-08-29 648 cells = rk818s; 2eedcbfc0 Wadim Egorov 2016-08-29 649 nr_cells = ARRAY_SIZE(rk818s); b2e2c8509 Jianhong Chen 2016-10-17 650 pm_pwroff_fn = rk818_device_shutdown; 2eedcbfc0 Wadim Egorov 2016-08-29 651 break; 1e99c2e53 Tony Xie 2018-07-23 652 case RK809_ID: 1e99c2e53 Tony Xie 2018-07-23 653 case RK817_ID: 1e99c2e53 Tony Xie 2018-07-23 654 rk808->regmap_cfg = &rk817_regmap_config; 1e99c2e53 Tony Xie 2018-07-23 655 rk808->regmap_irq_chip = &rk817_irq_chip; 1e99c2e53 Tony Xie 2018-07-23 656 pre_init_reg = rk817_pre_init_reg; 1e99c2e53 Tony Xie 2018-07-23 657 nr_pre_init_regs = ARRAY_SIZE(rk817_pre_init_reg); 1e99c2e53 Tony Xie 2018-07-23 658 cells = rk817s; 1e99c2e53 Tony Xie 2018-07-23 659 nr_cells = ARRAY_SIZE(rk817s); 1e99c2e53 Tony Xie 2018-07-23 660 pm_power_off_prepare = rk8xx_device_shutdown_prepare; 1e99c2e53 Tony Xie 2018-07-23 661 break; 2eedcbfc0 Wadim Egorov 2016-08-29 662 default: 2eedcbfc0 Wadim Egorov 2016-08-29 663 dev_err(&client->dev, "Unsupported RK8XX ID %lu\n", 2eedcbfc0 Wadim Egorov 2016-08-29 664 rk808->variant); 2eedcbfc0 Wadim Egorov 2016-08-29 665 return -EINVAL; 2eedcbfc0 Wadim Egorov 2016-08-29 666 } 2eedcbfc0 Wadim Egorov 2016-08-29 667 2eedcbfc0 Wadim Egorov 2016-08-29 668 rk808->i2c = client; 2eedcbfc0 Wadim Egorov 2016-08-29 669 i2c_set_clientdata(client, rk808); 2eedcbfc0 Wadim Egorov 2016-08-29 670 2eedcbfc0 Wadim Egorov 2016-08-29 671 rk808->regmap = devm_regmap_init_i2c(client, rk808->regmap_cfg); f69a7cf74 Chris Zhong 2014-09-03 672 if (IS_ERR(rk808->regmap)) { f69a7cf74 Chris Zhong 2014-09-03 673 dev_err(&client->dev, "regmap initialization failed\n"); f69a7cf74 Chris Zhong 2014-09-03 674 return PTR_ERR(rk808->regmap); f69a7cf74 Chris Zhong 2014-09-03 675 } f69a7cf74 Chris Zhong 2014-09-03 676 2eedcbfc0 Wadim Egorov 2016-08-29 677 if (!client->irq) { 2eedcbfc0 Wadim Egorov 2016-08-29 678 dev_err(&client->dev, "No interrupt support, no core IRQ\n"); 2eedcbfc0 Wadim Egorov 2016-08-29 679 return -EINVAL; f69a7cf74 Chris Zhong 2014-09-03 680 } f69a7cf74 Chris Zhong 2014-09-03 681 f69a7cf74 Chris Zhong 2014-09-03 682 ret = regmap_add_irq_chip(rk808->regmap, client->irq, f69a7cf74 Chris Zhong 2014-09-03 683 IRQF_ONESHOT, -1, 2eedcbfc0 Wadim Egorov 2016-08-29 684 rk808->regmap_irq_chip, &rk808->irq_data); f69a7cf74 Chris Zhong 2014-09-03 685 if (ret) { f69a7cf74 Chris Zhong 2014-09-03 686 dev_err(&client->dev, "Failed to add irq_chip %d\n", ret); f69a7cf74 Chris Zhong 2014-09-03 687 return ret; f69a7cf74 Chris Zhong 2014-09-03 688 } f69a7cf74 Chris Zhong 2014-09-03 689 2eedcbfc0 Wadim Egorov 2016-08-29 690 for (i = 0; i < nr_pre_init_regs; i++) { 2eedcbfc0 Wadim Egorov 2016-08-29 691 ret = regmap_update_bits(rk808->regmap, 2eedcbfc0 Wadim Egorov 2016-08-29 692 pre_init_reg[i].addr, 2eedcbfc0 Wadim Egorov 2016-08-29 693 pre_init_reg[i].mask, 2eedcbfc0 Wadim Egorov 2016-08-29 694 pre_init_reg[i].value); 2eedcbfc0 Wadim Egorov 2016-08-29 695 if (ret) { 2eedcbfc0 Wadim Egorov 2016-08-29 696 dev_err(&client->dev, 2eedcbfc0 Wadim Egorov 2016-08-29 697 "0x%x write err\n", 2eedcbfc0 Wadim Egorov 2016-08-29 698 pre_init_reg[i].addr); 2eedcbfc0 Wadim Egorov 2016-08-29 699 return ret; 2eedcbfc0 Wadim Egorov 2016-08-29 700 } 2eedcbfc0 Wadim Egorov 2016-08-29 701 } f69a7cf74 Chris Zhong 2014-09-03 702 2eedcbfc0 Wadim Egorov 2016-08-29 703 ret = devm_mfd_add_devices(&client->dev, PLATFORM_DEVID_NONE, 2eedcbfc0 Wadim Egorov 2016-08-29 704 cells, nr_cells, NULL, 0, d5623161a Laxman Dewangan 2016-04-08 705 regmap_irq_get_domain(rk808->irq_data)); f69a7cf74 Chris Zhong 2014-09-03 706 if (ret) { f69a7cf74 Chris Zhong 2014-09-03 707 dev_err(&client->dev, "failed to add MFD devices %d\n", ret); f69a7cf74 Chris Zhong 2014-09-03 708 goto err_irq; f69a7cf74 Chris Zhong 2014-09-03 709 } f69a7cf74 Chris Zhong 2014-09-03 710 f69a7cf74 Chris Zhong 2014-09-03 711 pm_off = of_property_read_bool(np, f69a7cf74 Chris Zhong 2014-09-03 712 "rockchip,system-power-controller"); f69a7cf74 Chris Zhong 2014-09-03 713 if (pm_off && !pm_power_off) { f69a7cf74 Chris Zhong 2014-09-03 714 rk808_i2c_client = client; b2e2c8509 Jianhong Chen 2016-10-17 @715 pm_power_off = pm_pwroff_fn; f69a7cf74 Chris Zhong 2014-09-03 716 } f69a7cf74 Chris Zhong 2014-09-03 717 f69a7cf74 Chris Zhong 2014-09-03 718 return 0; f69a7cf74 Chris Zhong 2014-09-03 719 f69a7cf74 Chris Zhong 2014-09-03 720 err_irq: f69a7cf74 Chris Zhong 2014-09-03 721 regmap_del_irq_chip(client->irq, rk808->irq_data); f69a7cf74 Chris Zhong 2014-09-03 722 return ret; f69a7cf74 Chris Zhong 2014-09-03 723 } f69a7cf74 Chris Zhong 2014-09-03 724 :::::: The code at line 715 was first introduced by commit :::::: b2e2c85091710159b305735d557f4ef4695f5dff mfd: rk808: RK818 uses DEV_OFF to power off supplies :::::: TO: Jianhong Chen <chenjh@xxxxxxxxxxxxxx> :::::: CC: Lee Jones <lee.jones@xxxxxxxxxx> --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/pipermail/kbuild-all Intel Corporation
Attachment:
.config.gz
Description: application/gzip