Message ID | 20250227205049.765309-3-superm1@kernel.org |
---|---|
State | New |
Headers | show |
Series | Add LPS0 check() for pinctrl-amd | expand |
Hi Mario, kernel test robot noticed the following build warnings: [auto build test WARNING on linusw-pinctrl/devel] [also build test WARNING on linusw-pinctrl/for-next rafael-pm/linux-next rafael-pm/bleeding-edge linus/master v6.14-rc4 next-20250228] [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/Mario-Limonciello/ACPI-Add-missing-prototype-for-non-CONFIG_SUSPEND-CONFIG_X86-case/20250228-045242 base: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git devel patch link: https://lore.kernel.org/r/20250227205049.765309-3-superm1%40kernel.org patch subject: [PATCH v3 2/2] pinctrl: amd: Add an LPS0 check() callback config: mips-allyesconfig (https://download.01.org/0day-ci/archive/20250302/202503020616.j6juZTqH-lkp@intel.com/config) compiler: mips-linux-gcc (GCC) 14.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250302/202503020616.j6juZTqH-lkp@intel.com/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@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202503020616.j6juZTqH-lkp@intel.com/ All warnings (new ones prefixed by >>): drivers/pinctrl/pinctrl-amd.c:933:15: error: variable 'pinctrl_amd_s2idle_dev_ops' has initializer but incomplete type 933 | static struct acpi_s2idle_dev_ops pinctrl_amd_s2idle_dev_ops = { | ^~~~~~~~~~~~~~~~~~~ drivers/pinctrl/pinctrl-amd.c:934:10: error: 'struct acpi_s2idle_dev_ops' has no member named 'check' 934 | .check = amd_gpio_check_pending, | ^~~~~ >> drivers/pinctrl/pinctrl-amd.c:934:18: warning: excess elements in struct initializer 934 | .check = amd_gpio_check_pending, | ^~~~~~~~~~~~~~~~~~~~~~ drivers/pinctrl/pinctrl-amd.c:934:18: note: (near initialization for 'pinctrl_amd_s2idle_dev_ops') drivers/pinctrl/pinctrl-amd.c: In function 'amd_gpio_probe': drivers/pinctrl/pinctrl-amd.c:1210:9: error: implicit declaration of function 'acpi_register_lps0_dev' [-Wimplicit-function-declaration] 1210 | acpi_register_lps0_dev(&pinctrl_amd_s2idle_dev_ops); | ^~~~~~~~~~~~~~~~~~~~~~ drivers/pinctrl/pinctrl-amd.c: In function 'amd_gpio_remove': drivers/pinctrl/pinctrl-amd.c:1229:9: error: implicit declaration of function 'acpi_unregister_lps0_dev' [-Wimplicit-function-declaration] 1229 | acpi_unregister_lps0_dev(&pinctrl_amd_s2idle_dev_ops); | ^~~~~~~~~~~~~~~~~~~~~~~~ drivers/pinctrl/pinctrl-amd.c: At top level: drivers/pinctrl/pinctrl-amd.c:933:35: error: storage size of 'pinctrl_amd_s2idle_dev_ops' isn't known 933 | static struct acpi_s2idle_dev_ops pinctrl_amd_s2idle_dev_ops = { | ^~~~~~~~~~~~~~~~~~~~~~~~~~ vim +934 drivers/pinctrl/pinctrl-amd.c 932 933 static struct acpi_s2idle_dev_ops pinctrl_amd_s2idle_dev_ops = { > 934 .check = amd_gpio_check_pending, 935 }; 936
Hi Mario, kernel test robot noticed the following build errors: [auto build test ERROR on linusw-pinctrl/devel] [also build test ERROR on linusw-pinctrl/for-next rafael-pm/linux-next rafael-pm/bleeding-edge linus/master v6.14-rc4 next-20250228] [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/Mario-Limonciello/ACPI-Add-missing-prototype-for-non-CONFIG_SUSPEND-CONFIG_X86-case/20250228-045242 base: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git devel patch link: https://lore.kernel.org/r/20250227205049.765309-3-superm1%40kernel.org patch subject: [PATCH v3 2/2] pinctrl: amd: Add an LPS0 check() callback config: mips-allyesconfig (https://download.01.org/0day-ci/archive/20250302/202503021444.b3oW30XQ-lkp@intel.com/config) compiler: mips-linux-gcc (GCC) 14.2.0 reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250302/202503021444.b3oW30XQ-lkp@intel.com/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@intel.com> | Closes: https://lore.kernel.org/oe-kbuild-all/202503021444.b3oW30XQ-lkp@intel.com/ All errors (new ones prefixed by >>): >> drivers/pinctrl/pinctrl-amd.c:933:15: error: variable 'pinctrl_amd_s2idle_dev_ops' has initializer but incomplete type 933 | static struct acpi_s2idle_dev_ops pinctrl_amd_s2idle_dev_ops = { | ^~~~~~~~~~~~~~~~~~~ >> drivers/pinctrl/pinctrl-amd.c:934:10: error: 'struct acpi_s2idle_dev_ops' has no member named 'check' 934 | .check = amd_gpio_check_pending, | ^~~~~ drivers/pinctrl/pinctrl-amd.c:934:18: warning: excess elements in struct initializer 934 | .check = amd_gpio_check_pending, | ^~~~~~~~~~~~~~~~~~~~~~ drivers/pinctrl/pinctrl-amd.c:934:18: note: (near initialization for 'pinctrl_amd_s2idle_dev_ops') drivers/pinctrl/pinctrl-amd.c: In function 'amd_gpio_probe': drivers/pinctrl/pinctrl-amd.c:1210:9: error: implicit declaration of function 'acpi_register_lps0_dev' [-Wimplicit-function-declaration] 1210 | acpi_register_lps0_dev(&pinctrl_amd_s2idle_dev_ops); | ^~~~~~~~~~~~~~~~~~~~~~ drivers/pinctrl/pinctrl-amd.c: In function 'amd_gpio_remove': drivers/pinctrl/pinctrl-amd.c:1229:9: error: implicit declaration of function 'acpi_unregister_lps0_dev' [-Wimplicit-function-declaration] 1229 | acpi_unregister_lps0_dev(&pinctrl_amd_s2idle_dev_ops); | ^~~~~~~~~~~~~~~~~~~~~~~~ drivers/pinctrl/pinctrl-amd.c: At top level: >> drivers/pinctrl/pinctrl-amd.c:933:35: error: storage size of 'pinctrl_amd_s2idle_dev_ops' isn't known 933 | static struct acpi_s2idle_dev_ops pinctrl_amd_s2idle_dev_ops = { | ^~~~~~~~~~~~~~~~~~~~~~~~~~ vim +/pinctrl_amd_s2idle_dev_ops +933 drivers/pinctrl/pinctrl-amd.c 932 > 933 static struct acpi_s2idle_dev_ops pinctrl_amd_s2idle_dev_ops = { > 934 .check = amd_gpio_check_pending, 935 }; 936
diff --git a/drivers/pinctrl/pinctrl-amd.c b/drivers/pinctrl/pinctrl-amd.c index 1d7fdcdec4c85..fdda8d1c4f344 100644 --- a/drivers/pinctrl/pinctrl-amd.c +++ b/drivers/pinctrl/pinctrl-amd.c @@ -37,6 +37,8 @@ #include "pinctrl-utils.h" #include "pinctrl-amd.h" +static struct amd_gpio *pinctrl_dev; + static int amd_gpio_get_direction(struct gpio_chip *gc, unsigned offset) { unsigned long flags; @@ -909,6 +911,29 @@ static bool amd_gpio_should_save(struct amd_gpio *gpio_dev, unsigned int pin) return false; } +static void amd_gpio_check_pending(void) +{ + struct amd_gpio *gpio_dev = pinctrl_dev; + struct pinctrl_desc *desc = gpio_dev->pctrl->desc; + int i; + + if (!pm_debug_messages_on) + return; + + for (i = 0; i < desc->npins; i++) { + int pin = desc->pins[i].number; + u32 tmp; + + tmp = readl(gpio_dev->base + pin * 4); + if (tmp & PIN_IRQ_PENDING) + pm_pr_dbg("%s: GPIO %d is active: 0x%x.\n", __func__, pin, tmp); + } +} + +static struct acpi_s2idle_dev_ops pinctrl_amd_s2idle_dev_ops = { + .check = amd_gpio_check_pending, +}; + static int amd_gpio_suspend_hibernate_common(struct device *dev, bool is_suspend) { struct amd_gpio *gpio_dev = dev_get_drvdata(dev); @@ -942,6 +967,7 @@ static int amd_gpio_suspend_hibernate_common(struct device *dev, bool is_suspend static int amd_gpio_suspend(struct device *dev) { + pinctrl_dev = dev_get_drvdata(dev); return amd_gpio_suspend_hibernate_common(dev, true); } @@ -1181,6 +1207,7 @@ static int amd_gpio_probe(struct platform_device *pdev) platform_set_drvdata(pdev, gpio_dev); acpi_register_wakeup_handler(gpio_dev->irq, amd_gpio_check_wake, gpio_dev); + acpi_register_lps0_dev(&pinctrl_amd_s2idle_dev_ops); dev_dbg(&pdev->dev, "amd gpio driver loaded\n"); return ret; @@ -1199,6 +1226,7 @@ static void amd_gpio_remove(struct platform_device *pdev) gpiochip_remove(&gpio_dev->gc); acpi_unregister_wakeup_handler(amd_gpio_check_wake, gpio_dev); + acpi_unregister_lps0_dev(&pinctrl_amd_s2idle_dev_ops); } #ifdef CONFIG_ACPI