Re: [PATCH v5 3/3] PCI: qcom: Add retry logic for link to be stable in L1ss

kernel test robot
2022-08-04T10:25:13Z

Hi Krishna,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on helgaas-pci/next]
[also build test WARNING on next-20220803]
[cannot apply to linus/master v5.19]
[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/Krishna-chaitanya-chundru/PCI-Restrict-pci-transactions-after-pci-suspend/20220803-193033
base: https://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git next
config: mips-allyesconfig (https://download.01.org/0day-ci/archive/20220804/202208041821.cik847re-lkp@intel.com/config)
compiler: mips-linux-gcc (GCC) 12.1.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/intel-lab-lkp/linux/commit/64b4ad561ad4a28aa8840303f29669bf7af77757
git remote add linux-review https://github.com/intel-lab-lkp/linux
git fetch --no-tags linux-review Krishna-chaitanya-chundru/PCI-Restrict-pci-transactions-after-pci-suspend/20220803-193033
git checkout 64b4ad561ad4a28aa8840303f29669bf7af77757
# save the config file
mkdir build_dir && cp config build_dir/.config
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross W=1 O=build_dir ARCH=mips SHELL=/bin/bash drivers/pci/controller/dwc/

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <lkp@intel.com>

All warnings (new ones prefixed by >>):

In file included from include/linux/device.h:15,
from include/linux/node.h:18,
from include/linux/cpu.h:17,
from include/linux/of_device.h:5,
from drivers/pci/controller/dwc/pcie-qcom.c:20:
drivers/pci/controller/dwc/pcie-qcom.c: In function 'qcom_pcie_pm_suspend':
>> drivers/pci/controller/dwc/pcie-qcom.c:1846:39: warning: format '%d' expects argument of type 'int', but argument 3 has type 's64' {aka 'long long int'} [-Wformat=]
1846 | dev_info(dev, "Link enters L1ss after %d ms\n",
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/dev_printk.h:110:30: note: in definition of macro 'dev_printk_index_wrap'
110 | _p_func(dev, fmt, ##__VA_ARGS__); \
| ^~~
include/linux/dev_printk.h:150:58: note: in expansion of macro 'dev_fmt'
150 | dev_printk_index_wrap(_dev_info, KERN_INFO, dev, dev_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~
drivers/pci/controller/dwc/pcie-qcom.c:1846:25: note: in expansion of macro 'dev_info'
1846 | dev_info(dev, "Link enters L1ss after %d ms\n",
| ^~~~~~~~
drivers/pci/controller/dwc/pcie-qcom.c:1846:64: note: format string is defined here
1846 | dev_info(dev, "Link enters L1ss after %d ms\n",
| ~^
| |
| int
| %lld

vim +1846 drivers/pci/controller/dwc/pcie-qcom.c

1827
1828 static int __maybe_unused qcom_pcie_pm_suspend(struct device *dev)
1829 {
1830 struct qcom_pcie *pcie = dev_get_drvdata(dev);
1831 u32 val;
1832 ktime_t timeout, start;
1833
1834 if (!pcie->cfg->supports_system_suspend)
1835 return 0;
1836
1837 start = ktime_get();
1838 /* Wait max 100 ms */
1839 timeout = ktime_add_ms(start, 100);
1840 while (1) {
1841 bool timedout = ktime_after(ktime_get(), timeout);
1842
1843 /* if the link is not in l1ss don't turn off clocks */
1844 val = readl(pcie->parf + PCIE20_PARF_PM_STTS);
1845 if ((val & PCIE20_PARF_PM_STTS_LINKST_IN_L1SUB)) {
> 1846 dev_info(dev, "Link enters L1ss after %d ms\n",
1847 ktime_to_ms(ktime_get() - start));
1848 break;
1849 }
1850
1851 if (timedout) {
1852 dev_warn(dev, "Link is not in L1ss\n");
1853 return 0;
1854 }
1855 usleep_range(1000, 1200);
1856 }
1857
1858 if (pcie->cfg->ops->suspend)
1859 pcie->cfg->ops->suspend(pcie);
1860
1861 pcie->is_suspended = true;
1862
1863 return 0;
1864 }
1865

--
0-DAY CI Kernel Test Service