Re: [PATCH] PCI: pcie-rockchip: use probe_err helpers instead of open coding

From: kbuild test robot
Date: Sat Dec 22 2018 - 12:04:27 EST


Hi Andrzej,

I love your patch! Yet something to improve:

[auto build test ERROR on rockchip/for-next]
[also build test ERROR on v4.20-rc7]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url: https://github.com/0day-ci/linux/commits/Andrzej-Hajda/PCI-pcie-rockchip-use-probe_err-helpers-instead-of-open-coding/20181222-044838
base: https://git.kernel.org/pub/scm/linux/kernel/git/mmind/linux-rockchip.git for-next
config: ia64-allmodconfig (attached as .config)
compiler: ia64-linux-gcc (GCC) 8.1.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
GCC_VERSION=8.1.0 make.cross ARCH=ia64

All errors (new ones prefixed by >>):

drivers/pci/controller/pcie-rockchip.c: In function 'rockchip_pcie_parse_dt':
>> drivers/pci/controller/pcie-rockchip.c:73:10: error: implicit declaration of function 'probe_err_ptr'; did you mean 'probe_irq_off'? [-Werror=implicit-function-declaration]
return probe_err_ptr(dev, rockchip->core_rst,
^~~~~~~~~~~~~
probe_irq_off
cc1: some warnings being treated as errors

vim +73 drivers/pci/controller/pcie-rockchip.c

24
25 int rockchip_pcie_parse_dt(struct rockchip_pcie *rockchip)
26 {
27 struct device *dev = rockchip->dev;
28 struct platform_device *pdev = to_platform_device(dev);
29 struct device_node *node = dev->of_node;
30 struct resource *regs;
31 int err;
32
33 if (rockchip->is_rc) {
34 regs = platform_get_resource_byname(pdev,
35 IORESOURCE_MEM,
36 "axi-base");
37 rockchip->reg_base = devm_pci_remap_cfg_resource(dev, regs);
38 if (IS_ERR(rockchip->reg_base))
39 return PTR_ERR(rockchip->reg_base);
40 } else {
41 rockchip->mem_res =
42 platform_get_resource_byname(pdev, IORESOURCE_MEM,
43 "mem-base");
44 if (!rockchip->mem_res)
45 return -EINVAL;
46 }
47
48 regs = platform_get_resource_byname(pdev, IORESOURCE_MEM,
49 "apb-base");
50 rockchip->apb_base = devm_ioremap_resource(dev, regs);
51 if (IS_ERR(rockchip->apb_base))
52 return PTR_ERR(rockchip->apb_base);
53
54 err = rockchip_pcie_get_phys(rockchip);
55 if (err)
56 return err;
57
58 rockchip->lanes = 1;
59 err = of_property_read_u32(node, "num-lanes", &rockchip->lanes);
60 if (!err && (rockchip->lanes == 0 ||
61 rockchip->lanes == 3 ||
62 rockchip->lanes > 4)) {
63 dev_warn(dev, "invalid num-lanes, default to use one lane\n");
64 rockchip->lanes = 1;
65 }
66
67 rockchip->link_gen = of_pci_get_max_link_speed(node);
68 if (rockchip->link_gen < 0 || rockchip->link_gen > 2)
69 rockchip->link_gen = 2;
70
71 rockchip->core_rst = devm_reset_control_get_exclusive(dev, "core");
72 if (IS_ERR(rockchip->core_rst))
> 73 return probe_err_ptr(dev, rockchip->core_rst,
74 "missing core reset property in node\n");
75
76 rockchip->mgmt_rst = devm_reset_control_get_exclusive(dev, "mgmt");
77 if (IS_ERR(rockchip->mgmt_rst))
78 return probe_err_ptr(dev, rockchip->mgmt_rst,
79 "missing mgmt reset property in node\n");
80
81 rockchip->mgmt_sticky_rst = devm_reset_control_get_exclusive(dev,
82 "mgmt-sticky");
83 if (IS_ERR(rockchip->mgmt_sticky_rst))
84 return probe_err_ptr(dev, rockchip->mgmt_sticky_rst,
85 "missing mgmt-sticky reset property in node\n");
86
87 rockchip->pipe_rst = devm_reset_control_get_exclusive(dev, "pipe");
88 if (IS_ERR(rockchip->pipe_rst))
89 return probe_err_ptr(dev, rockchip->pipe_rst,
90 "missing pipe reset property in node\n");
91
92 rockchip->pm_rst = devm_reset_control_get_exclusive(dev, "pm");
93 if (IS_ERR(rockchip->pm_rst))
94 return probe_err_ptr(dev, rockchip->pm_rst,
95 "missing pm reset property in node\n");
96
97 rockchip->pclk_rst = devm_reset_control_get_exclusive(dev, "pclk");
98 if (IS_ERR(rockchip->pclk_rst))
99 return probe_err_ptr(dev, rockchip->pclk_rst,
100 "missing pclk reset property in node\n");
101
102 rockchip->aclk_rst = devm_reset_control_get_exclusive(dev, "aclk");
103 if (IS_ERR(rockchip->aclk_rst))
104 return probe_err_ptr(dev, rockchip->aclk_rst,
105 "missing aclk reset property in node\n");
106
107 if (rockchip->is_rc) {
108 rockchip->ep_gpio = devm_gpiod_get(dev, "ep", GPIOD_OUT_HIGH);
109 if (IS_ERR(rockchip->ep_gpio))
110 return probe_err_ptr(dev, rockchip->ep_gpio,
111 "missing ep-gpios property in node\n");
112 }
113
114 rockchip->aclk_pcie = devm_clk_get(dev, "aclk");
115 if (IS_ERR(rockchip->aclk_pcie))
116 return probe_err_ptr(dev, rockchip->aclk_pcie,
117 "aclk clock not found\n");
118
119 rockchip->aclk_perf_pcie = devm_clk_get(dev, "aclk-perf");
120 if (IS_ERR(rockchip->aclk_perf_pcie))
121 return probe_err_ptr(dev, rockchip->aclk_perf_pcie,
122 "aclk_perf clock not found\n");
123
124 rockchip->hclk_pcie = devm_clk_get(dev, "hclk");
125 if (IS_ERR(rockchip->hclk_pcie))
126 return probe_err_ptr(dev, rockchip->hclk_pcie,
127 "hclk clock not found\n");
128
129 rockchip->clk_pcie_pm = devm_clk_get(dev, "pm");
130 if (IS_ERR(rockchip->clk_pcie_pm))
131 return probe_err_ptr(dev, rockchip->clk_pcie_pm,
132 "pm clock not found\n");
133
134 return 0;
135 }
136 EXPORT_SYMBOL_GPL(rockchip_pcie_parse_dt);
137

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation

Attachment: .config.gz
Description: application/gzip