Message ID | 20211207223050.872095-1-david.e.box@linux.intel.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [V2,1/2] PCI/ASPM: Add ASPM BIOS override function | expand |
Hi "David, Thank you for the patch! Yet something to improve: [auto build test ERROR on v5.16-rc4] [also build test ERROR on next-20211207] [cannot apply to helgaas-pci/next] [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] url: https://github.com/0day-ci/linux/commits/David-E-Box/PCI-ASPM-Add-ASPM-BIOS-override-function/20211208-063240 base: 0fcfb00b28c0b7884635dacf38e46d60bf3d4eb1 config: nds32-defconfig (https://download.01.org/0day-ci/archive/20211208/202112080830.ItjrEFOo-lkp@intel.com/config) compiler: nds32le-linux-gcc (GCC) 11.2.0 reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # https://github.com/0day-ci/linux/commit/efd5524bd4005ec84d4eb6681c54d1ba93fe9ca1 git remote add linux-review https://github.com/0day-ci/linux git fetch --no-tags linux-review David-E-Box/PCI-ASPM-Add-ASPM-BIOS-override-function/20211208-063240 git checkout efd5524bd4005ec84d4eb6681c54d1ba93fe9ca1 # save the config file to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=nds32 SHELL=/bin/bash If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@intel.com> All errors (new ones prefixed by >>): In file included from drivers/pci/of.c:16: drivers/pci/pci.h: In function 'pcie_aspm_policy_override': >> drivers/pci/pci.h:571:83: error: expected ';' before '}' token 571 | static inline int pcie_aspm_policy_override(struct pci_dev *dev) { return -EINVAL } | ^ vim +571 drivers/pci/pci.h 553 554 /* PCI error reporting and recovery */ 555 pci_ers_result_t pcie_do_recovery(struct pci_dev *dev, 556 pci_channel_state_t state, 557 pci_ers_result_t (*reset_subordinates)(struct pci_dev *pdev)); 558 559 bool pcie_wait_for_link(struct pci_dev *pdev, bool active); 560 #ifdef CONFIG_PCIEASPM 561 void pcie_aspm_init_link_state(struct pci_dev *pdev); 562 void pcie_aspm_exit_link_state(struct pci_dev *pdev); 563 void pcie_aspm_pm_state_change(struct pci_dev *pdev); 564 void pcie_aspm_powersave_config_link(struct pci_dev *pdev); 565 int pcie_aspm_policy_override(struct pci_dev *dev); 566 #else 567 static inline void pcie_aspm_init_link_state(struct pci_dev *pdev) { } 568 static inline void pcie_aspm_exit_link_state(struct pci_dev *pdev) { } 569 static inline void pcie_aspm_pm_state_change(struct pci_dev *pdev) { } 570 static inline void pcie_aspm_powersave_config_link(struct pci_dev *pdev) { } > 571 static inline int pcie_aspm_policy_override(struct pci_dev *dev) { return -EINVAL } 572 #endif 573 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org
diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h index 3d60cabde1a1..c741791f15e0 100644 --- a/drivers/pci/pci.h +++ b/drivers/pci/pci.h @@ -562,11 +562,13 @@ void pcie_aspm_init_link_state(struct pci_dev *pdev); void pcie_aspm_exit_link_state(struct pci_dev *pdev); void pcie_aspm_pm_state_change(struct pci_dev *pdev); void pcie_aspm_powersave_config_link(struct pci_dev *pdev); +int pcie_aspm_policy_override(struct pci_dev *dev); #else static inline void pcie_aspm_init_link_state(struct pci_dev *pdev) { } static inline void pcie_aspm_exit_link_state(struct pci_dev *pdev) { } static inline void pcie_aspm_pm_state_change(struct pci_dev *pdev) { } static inline void pcie_aspm_powersave_config_link(struct pci_dev *pdev) { } +static inline int pcie_aspm_policy_override(struct pci_dev *dev) { return -EINVAL } #endif #ifdef CONFIG_PCIE_ECRC diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c index 52c74682601a..e2c61e14e724 100644 --- a/drivers/pci/pcie/aspm.c +++ b/drivers/pci/pcie/aspm.c @@ -1140,6 +1140,25 @@ int pci_disable_link_state(struct pci_dev *pdev, int state) } EXPORT_SYMBOL(pci_disable_link_state); +int pcie_aspm_policy_override(struct pci_dev *pdev) +{ + struct pcie_link_state *link = pcie_aspm_get_link(pdev); + + if (!link || aspm_disabled) + return -EINVAL; + + down_read(&pci_bus_sem); + mutex_lock(&aspm_lock); + link->aspm_default = ASPM_STATE_ALL; + pcie_config_aspm_link(link, policy_to_aspm_state(link)); + pcie_set_clkpm(link, policy_to_clkpm_state(link)); + mutex_unlock(&aspm_lock); + up_read(&pci_bus_sem); + + return 0; +} +EXPORT_SYMBOL(pcie_aspm_policy_override); + static int pcie_aspm_set_policy(const char *val, const struct kernel_param *kp) {