Re: [PATCH v3 3/4] pinctrl: amd: Use pm_pr_dbg to show debugging messages

From: kernel test robot
Date: Thu Jun 01 2023 - 23:20:26 EST


Hi Mario,

kernel test robot noticed the following build warnings:

[auto build test WARNING on 7736c431466abb54a2679dc257f739fddfa84295]

url: https://github.com/intel-lab-lkp/linux/commits/Mario-Limonciello/ACPI-x86-Add-pm_debug_messages-for-LPS0-_DSM-state-tracking/20230602-073044
base: 7736c431466abb54a2679dc257f739fddfa84295
patch link: https://lore.kernel.org/r/20230601232923.1248-3-mario.limonciello%40amd.com
patch subject: [PATCH v3 3/4] pinctrl: amd: Use pm_pr_dbg to show debugging messages
config: mips-allyesconfig (https://download.01.org/0day-ci/archive/20230602/202306021143.5D8Xmq0r-lkp@xxxxxxxxx/config)
compiler: mips-linux-gcc (GCC) 12.3.0
reproduce (this is a W=1 build):
mkdir -p ~/bin
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# https://github.com/intel-lab-lkp/linux/commit/61f4d28eda8f5bf19179080626ec4f1276c1cbae
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Mario-Limonciello/ACPI-x86-Add-pm_debug_messages-for-LPS0-_DSM-state-tracking/20230602-073044
git checkout 61f4d28eda8f5bf19179080626ec4f1276c1cbae
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.3.0 ~/bin/make.cross W=1 O=build_dir ARCH=mips olddefconfig
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.3.0 ~/bin/make.cross W=1 O=build_dir ARCH=mips SHELL=/bin/bash drivers/pinctrl/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202306021143.5D8Xmq0r-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

drivers/pinctrl/pinctrl-amd.c: In function 'do_amd_gpio_irq_handler':
>> drivers/pinctrl/pinctrl-amd.c:639:28: warning: suggest explicit braces to avoid ambiguous 'else' [-Wdangling-else]
639 | if (regval & PIN_IRQ_PENDING)
| ^


vim +/else +639 drivers/pinctrl/pinctrl-amd.c

ba714a9c1dea85 Thomas Gleixner 2017-05-23 608
2d54067fcd23aa Mario Limonciello 2021-10-31 609 static bool do_amd_gpio_irq_handler(int irq, void *dev_id)
dbad75dd1f25e0 Ken Xue 2015-03-10 610 {
ba714a9c1dea85 Thomas Gleixner 2017-05-23 611 struct amd_gpio *gpio_dev = dev_id;
ba714a9c1dea85 Thomas Gleixner 2017-05-23 612 struct gpio_chip *gc = &gpio_dev->gc;
ba714a9c1dea85 Thomas Gleixner 2017-05-23 613 unsigned int i, irqnr;
dbad75dd1f25e0 Ken Xue 2015-03-10 614 unsigned long flags;
10ff58aa3c2e2a Ben Dooks (Codethink 2019-10-22 615) u32 __iomem *regs;
2d54067fcd23aa Mario Limonciello 2021-10-31 616 bool ret = false;
10ff58aa3c2e2a Ben Dooks (Codethink 2019-10-22 617) u32 regval;
ba714a9c1dea85 Thomas Gleixner 2017-05-23 618 u64 status, mask;
dbad75dd1f25e0 Ken Xue 2015-03-10 619
ba714a9c1dea85 Thomas Gleixner 2017-05-23 620 /* Read the wake status */
229710fecdd805 Julia Cartwright 2017-03-09 621 raw_spin_lock_irqsave(&gpio_dev->lock, flags);
ba714a9c1dea85 Thomas Gleixner 2017-05-23 622 status = readl(gpio_dev->base + WAKE_INT_STATUS_REG1);
ba714a9c1dea85 Thomas Gleixner 2017-05-23 623 status <<= 32;
ba714a9c1dea85 Thomas Gleixner 2017-05-23 624 status |= readl(gpio_dev->base + WAKE_INT_STATUS_REG0);
229710fecdd805 Julia Cartwright 2017-03-09 625 raw_spin_unlock_irqrestore(&gpio_dev->lock, flags);
dbad75dd1f25e0 Ken Xue 2015-03-10 626
ba714a9c1dea85 Thomas Gleixner 2017-05-23 627 /* Bit 0-45 contain the relevant status bits */
ba714a9c1dea85 Thomas Gleixner 2017-05-23 628 status &= (1ULL << 46) - 1;
ba714a9c1dea85 Thomas Gleixner 2017-05-23 629 regs = gpio_dev->base;
ba714a9c1dea85 Thomas Gleixner 2017-05-23 630 for (mask = 1, irqnr = 0; status; mask <<= 1, regs += 4, irqnr += 4) {
ba714a9c1dea85 Thomas Gleixner 2017-05-23 631 if (!(status & mask))
ba714a9c1dea85 Thomas Gleixner 2017-05-23 632 continue;
ba714a9c1dea85 Thomas Gleixner 2017-05-23 633 status &= ~mask;
ba714a9c1dea85 Thomas Gleixner 2017-05-23 634
ba714a9c1dea85 Thomas Gleixner 2017-05-23 635 /* Each status bit covers four pins */
dbad75dd1f25e0 Ken Xue 2015-03-10 636 for (i = 0; i < 4; i++) {
ba714a9c1dea85 Thomas Gleixner 2017-05-23 637 regval = readl(regs + i);
1d66e379731f79 Mario Limonciello 2022-10-13 638
1d66e379731f79 Mario Limonciello 2022-10-13 @639 if (regval & PIN_IRQ_PENDING)
61f4d28eda8f5b Mario Limonciello 2023-06-01 640 pm_pr_dbg("GPIO %d is active: 0x%x",
2d54067fcd23aa Mario Limonciello 2021-10-31 641 irqnr + i, regval);
1d66e379731f79 Mario Limonciello 2022-10-13 642
1d66e379731f79 Mario Limonciello 2022-10-13 643 /* caused wake on resume context for shared IRQ */
1d66e379731f79 Mario Limonciello 2022-10-13 644 if (irq < 0 && (regval & BIT(WAKE_STS_OFF)))
2d54067fcd23aa Mario Limonciello 2021-10-31 645 return true;
2d54067fcd23aa Mario Limonciello 2021-10-31 646
8bbed1eef001fd Daniel Kurtz 2018-07-16 647 if (!(regval & PIN_IRQ_PENDING) ||
8bbed1eef001fd Daniel Kurtz 2018-07-16 648 !(regval & BIT(INTERRUPT_MASK_OFF)))
ba714a9c1dea85 Thomas Gleixner 2017-05-23 649 continue;
f460c70125bcb1 Sebastian Andrzej Siewior 2022-09-19 650 generic_handle_domain_irq_safe(gc->irq.domain, irqnr + i);
6afb10267c1692 Daniel Drake 2017-10-02 651
6afb10267c1692 Daniel Drake 2017-10-02 652 /* Clear interrupt.
6afb10267c1692 Daniel Drake 2017-10-02 653 * We must read the pin register again, in case the
6afb10267c1692 Daniel Drake 2017-10-02 654 * value was changed while executing
a9cb09b7be84a7 Marc Zyngier 2021-05-04 655 * generic_handle_domain_irq() above.
d21b8adbd475db Daniel Drake 2019-08-14 656 * If we didn't find a mapping for the interrupt,
d21b8adbd475db Daniel Drake 2019-08-14 657 * disable it in order to avoid a system hang caused
d21b8adbd475db Daniel Drake 2019-08-14 658 * by an interrupt storm.
6afb10267c1692 Daniel Drake 2017-10-02 659 */
6afb10267c1692 Daniel Drake 2017-10-02 660 raw_spin_lock_irqsave(&gpio_dev->lock, flags);
6afb10267c1692 Daniel Drake 2017-10-02 661 regval = readl(regs + i);
d21b8adbd475db Daniel Drake 2019-08-14 662 if (irq == 0) {
d21b8adbd475db Daniel Drake 2019-08-14 663 regval &= ~BIT(INTERRUPT_ENABLE_OFF);
d21b8adbd475db Daniel Drake 2019-08-14 664 dev_dbg(&gpio_dev->pdev->dev,
d21b8adbd475db Daniel Drake 2019-08-14 665 "Disabling spurious GPIO IRQ %d\n",
d21b8adbd475db Daniel Drake 2019-08-14 666 irqnr + i);
d21b8adbd475db Daniel Drake 2019-08-14 667 }
ba714a9c1dea85 Thomas Gleixner 2017-05-23 668 writel(regval, regs + i);
6afb10267c1692 Daniel Drake 2017-10-02 669 raw_spin_unlock_irqrestore(&gpio_dev->lock, flags);
2d54067fcd23aa Mario Limonciello 2021-10-31 670 ret = true;
dbad75dd1f25e0 Ken Xue 2015-03-10 671 }
dbad75dd1f25e0 Ken Xue 2015-03-10 672 }
2d54067fcd23aa Mario Limonciello 2021-10-31 673 /* did not cause wake on resume context for shared IRQ */
2d54067fcd23aa Mario Limonciello 2021-10-31 674 if (irq < 0)
2d54067fcd23aa Mario Limonciello 2021-10-31 675 return false;
dbad75dd1f25e0 Ken Xue 2015-03-10 676
ba714a9c1dea85 Thomas Gleixner 2017-05-23 677 /* Signal EOI to the GPIO unit */
229710fecdd805 Julia Cartwright 2017-03-09 678 raw_spin_lock_irqsave(&gpio_dev->lock, flags);
ba714a9c1dea85 Thomas Gleixner 2017-05-23 679 regval = readl(gpio_dev->base + WAKE_INT_MASTER_REG);
ba714a9c1dea85 Thomas Gleixner 2017-05-23 680 regval |= EOI_MASK;
ba714a9c1dea85 Thomas Gleixner 2017-05-23 681 writel(regval, gpio_dev->base + WAKE_INT_MASTER_REG);
229710fecdd805 Julia Cartwright 2017-03-09 682 raw_spin_unlock_irqrestore(&gpio_dev->lock, flags);
dbad75dd1f25e0 Ken Xue 2015-03-10 683
ba714a9c1dea85 Thomas Gleixner 2017-05-23 684 return ret;
dbad75dd1f25e0 Ken Xue 2015-03-10 685 }
dbad75dd1f25e0 Ken Xue 2015-03-10 686

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