Re: [PATCH] gpio: mvebu: convert to noirq suspend/resume to prevent interrupt storm on resume
kernel test robot <[email protected]> Tue, 4 Aug 2026 23:15:08 +0800
| Newsgroups | dev.linux.lists.oe-kbuild-all,org.kernel.vger.linux-gpio,org.kernel.vger.linux-kernel |
|---|---|
| Message-ID | <[email protected]> |
Hi Rosen, kernel test robot noticed the following build warnings: [auto build test WARNING on brgl/gpio/for-next] [also build test WARNING on linusw-pinctrl/devel linusw-pinctrl/for-next linus/master v7.2-rc6 next-20260803] [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/Rosen-Penev/gpio-mvebu-convert-to-noirq-suspend-resume-to-prevent-interrupt-storm-on-resume/20260804-155102 base: https://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux.git gpio/for-next patch link: https://lore.kernel.org/r/20260707233511.1272686-1-rosenp%40gmail.com patch subject: [PATCH] gpio: mvebu: convert to noirq suspend/resume to prevent interrupt storm on resume config: alpha-allmodconfig (https://download.01.org/0day-ci/archive/20260804/[email protected]/config) compiler: alpha-linux-gcc (GCC) 16.1.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260804/[email protected]/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 <[email protected]> | Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/ All warnings (new ones prefixed by >>): >> drivers/gpio/gpio-mvebu.c:1034:12: warning: 'mvebu_gpio_resume' defined but not used [-Wunused-function] 1034 | static int mvebu_gpio_resume(struct device *dev) | ^~~~~~~~~~~~~~~~~ >> drivers/gpio/gpio-mvebu.c:982:12: warning: 'mvebu_gpio_suspend' defined but not used [-Wunused-function] 982 | static int mvebu_gpio_suspend(struct device *dev) | ^~~~~~~~~~~~~~~~~~ vim +/mvebu_gpio_resume +1034 drivers/gpio/gpio-mvebu.c 981 > 982 static int mvebu_gpio_suspend(struct device *dev) 983 { 984 struct mvebu_gpio_chip *mvchip = dev_get_drvdata(dev); 985 int i; 986 987 regmap_read(mvchip->regs, GPIO_OUT_OFF + mvchip->offset, 988 &mvchip->out_reg); 989 regmap_read(mvchip->regs, GPIO_IO_CONF_OFF + mvchip->offset, 990 &mvchip->io_conf_reg); 991 regmap_read(mvchip->regs, GPIO_BLINK_EN_OFF + mvchip->offset, 992 &mvchip->blink_en_reg); 993 regmap_read(mvchip->regs, GPIO_IN_POL_OFF + mvchip->offset, 994 &mvchip->in_pol_reg); 995 996 switch (mvchip->soc_variant) { 997 case MVEBU_GPIO_SOC_VARIANT_ORION: 998 case MVEBU_GPIO_SOC_VARIANT_A8K: 999 regmap_read(mvchip->regs, GPIO_EDGE_MASK_OFF + mvchip->offset, 1000 &mvchip->edge_mask_regs[0]); 1001 regmap_read(mvchip->regs, GPIO_LEVEL_MASK_OFF + mvchip->offset, 1002 &mvchip->level_mask_regs[0]); 1003 break; 1004 case MVEBU_GPIO_SOC_VARIANT_MV78200: 1005 for (i = 0; i < 2; i++) { 1006 regmap_read(mvchip->regs, 1007 GPIO_EDGE_MASK_MV78200_OFF(i), 1008 &mvchip->edge_mask_regs[i]); 1009 regmap_read(mvchip->regs, 1010 GPIO_LEVEL_MASK_MV78200_OFF(i), 1011 &mvchip->level_mask_regs[i]); 1012 } 1013 break; 1014 case MVEBU_GPIO_SOC_VARIANT_ARMADAXP: 1015 for (i = 0; i < 4; i++) { 1016 regmap_read(mvchip->regs, 1017 GPIO_EDGE_MASK_ARMADAXP_OFF(i), 1018 &mvchip->edge_mask_regs[i]); 1019 regmap_read(mvchip->regs, 1020 GPIO_LEVEL_MASK_ARMADAXP_OFF(i), 1021 &mvchip->level_mask_regs[i]); 1022 } 1023 break; 1024 default: 1025 BUG(); 1026 } 1027 1028 if (IS_REACHABLE(CONFIG_PWM) && mvchip->mvpwm) 1029 mvebu_pwm_suspend(mvchip); 1030 1031 return 0; 1032 } 1033 > 1034 static int mvebu_gpio_resume(struct device *dev) 1035 { 1036 struct mvebu_gpio_chip *mvchip = dev_get_drvdata(dev); 1037 int i; 1038 1039 regmap_write(mvchip->regs, GPIO_OUT_OFF + mvchip->offset, 1040 mvchip->out_reg); 1041 regmap_write(mvchip->regs, GPIO_IO_CONF_OFF + mvchip->offset, 1042 mvchip->io_conf_reg); 1043 regmap_write(mvchip->regs, GPIO_BLINK_EN_OFF + mvchip->offset, 1044 mvchip->blink_en_reg); 1045 regmap_write(mvchip->regs, GPIO_IN_POL_OFF + mvchip->offset, 1046 mvchip->in_pol_reg); 1047 1048 switch (mvchip->soc_variant) { 1049 case MVEBU_GPIO_SOC_VARIANT_ORION: 1050 case MVEBU_GPIO_SOC_VARIANT_A8K: 1051 regmap_write(mvchip->regs, GPIO_EDGE_MASK_OFF + mvchip->offset, 1052 mvchip->edge_mask_regs[0]); 1053 regmap_write(mvchip->regs, GPIO_LEVEL_MASK_OFF + mvchip->offset, 1054 mvchip->level_mask_regs[0]); 1055 break; 1056 case MVEBU_GPIO_SOC_VARIANT_MV78200: 1057 for (i = 0; i < 2; i++) { 1058 regmap_write(mvchip->regs, 1059 GPIO_EDGE_MASK_MV78200_OFF(i), 1060 mvchip->edge_mask_regs[i]); 1061 regmap_write(mvchip->regs, 1062 GPIO_LEVEL_MASK_MV78200_OFF(i), 1063 mvchip->level_mask_regs[i]); 1064 } 1065 break; 1066 case MVEBU_GPIO_SOC_VARIANT_ARMADAXP: 1067 for (i = 0; i < 4; i++) { 1068 regmap_write(mvchip->regs, 1069 GPIO_EDGE_MASK_ARMADAXP_OFF(i), 1070 mvchip->edge_mask_regs[i]); 1071 regmap_write(mvchip->regs, 1072 GPIO_LEVEL_MASK_ARMADAXP_OFF(i), 1073 mvchip->level_mask_regs[i]); 1074 } 1075 break; 1076 default: 1077 BUG(); 1078 } 1079 1080 if (IS_REACHABLE(CONFIG_PWM) && mvchip->mvpwm) 1081 mvebu_pwm_resume(mvchip); 1082 1083 return 0; 1084 } 1085 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki