* [pci:pci/host-cleanups-wip 91/95] drivers/pci/host/pci-rcar-gen2.c:215:8: error: too few arguments to function 'rcar_pci_readl'
@ 2016-10-05 0:33 kbuild test robot
0 siblings, 0 replies; only message in thread
From: kbuild test robot @ 2016-10-05 0:33 UTC (permalink / raw
To: Bjorn Helgaas; +Cc: kbuild-all, linux-pci
[-- Attachment #1: Type: text/plain, Size: 11214 bytes --]
tree: https://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git pci/host-cleanups-wip
head: ee559fc5aa013976c4415dbd9c14107b6eebaa10
commit: 3aa03100213456f92786b4c1da302257d6e33e4c [91/95] PCI: rcar-gen2: Add register accessors
config: arm-shmobile_defconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout 3aa03100213456f92786b4c1da302257d6e33e4c
# save the attached .config to linux build tree
make.cross ARCH=arm
All error/warnings (new ones prefixed by >>):
drivers/pci/host/pci-rcar-gen2.c: In function 'rcar_pci_writel':
>> drivers/pci/host/pci-rcar-gen2.c:117:12: warning: passing argument 1 of 'iowrite32' makes integer from pointer without a cast [-Wint-conversion]
iowrite32(rcar->reg + offset, val);
^~~~
In file included from arch/arm/include/asm/io.h:451:0,
from include/linux/io.h:25,
from drivers/pci/host/pci-rcar-gen2.c:17:
include/asm-generic/io.h:615:19: note: expected 'u32 {aka unsigned int}' but argument is of type 'void *'
#define iowrite32 iowrite32
^
>> include/asm-generic/io.h:616:20: note: in expansion of macro 'iowrite32'
static inline void iowrite32(u32 value, volatile void __iomem *addr)
^~~~~~~~~
>> drivers/pci/host/pci-rcar-gen2.c:117:32: warning: passing argument 2 of 'iowrite32' makes pointer from integer without a cast [-Wint-conversion]
iowrite32(rcar->reg + offset, val);
^~~
In file included from arch/arm/include/asm/io.h:451:0,
from include/linux/io.h:25,
from drivers/pci/host/pci-rcar-gen2.c:17:
include/asm-generic/io.h:615:19: note: expected 'volatile void *' but argument is of type 'u32 {aka unsigned int}'
#define iowrite32 iowrite32
^
>> include/asm-generic/io.h:616:20: note: in expansion of macro 'iowrite32'
static inline void iowrite32(u32 value, volatile void __iomem *addr)
^~~~~~~~~
drivers/pci/host/pci-rcar-gen2.c: In function 'rcar_pci_setup':
>> drivers/pci/host/pci-rcar-gen2.c:79:27: warning: passing argument 1 of 'rcar_pci_readl' makes pointer from integer without a cast [-Wint-conversion]
#define RCAR_USBCTR_REG (RCAR_AHBPCI_PCICOM_OFFSET + 0x34)
^
>> drivers/pci/host/pci-rcar-gen2.c:215:23: note: in expansion of macro 'RCAR_USBCTR_REG'
val = rcar_pci_readl(RCAR_USBCTR_REG) & ~RCAR_USBCTR_DIRPD;
^~~~~~~~~~~~~~~
drivers/pci/host/pci-rcar-gen2.c:110:12: note: expected 'struct rcar_pci *' but argument is of type 'int'
static u32 rcar_pci_readl(struct rcar_pci *rcar, u32 offset)
^~~~~~~~~~~~~~
>> drivers/pci/host/pci-rcar-gen2.c:215:8: error: too few arguments to function 'rcar_pci_readl'
val = rcar_pci_readl(RCAR_USBCTR_REG) & ~RCAR_USBCTR_DIRPD;
^~~~~~~~~~~~~~
drivers/pci/host/pci-rcar-gen2.c:110:12: note: declared here
static u32 rcar_pci_readl(struct rcar_pci *rcar, u32 offset)
^~~~~~~~~~~~~~
vim +/rcar_pci_readl +215 drivers/pci/host/pci-rcar-gen2.c
11 * published by the Free Software Foundation.
12 */
13
14 #include <linux/delay.h>
15 #include <linux/init.h>
16 #include <linux/interrupt.h>
> 17 #include <linux/io.h>
18 #include <linux/kernel.h>
19 #include <linux/of_address.h>
20 #include <linux/of_pci.h>
21 #include <linux/pci.h>
22 #include <linux/platform_device.h>
23 #include <linux/pm_runtime.h>
24 #include <linux/sizes.h>
25 #include <linux/slab.h>
26
27 /* AHB-PCI Bridge PCI communication registers */
28 #define RCAR_AHBPCI_PCICOM_OFFSET 0x800
29
30 #define RCAR_PCIAHB_WIN1_CTR_REG (RCAR_AHBPCI_PCICOM_OFFSET + 0x00)
31 #define RCAR_PCIAHB_WIN2_CTR_REG (RCAR_AHBPCI_PCICOM_OFFSET + 0x04)
32 #define RCAR_PCIAHB_PREFETCH0 0x0
33 #define RCAR_PCIAHB_PREFETCH4 0x1
34 #define RCAR_PCIAHB_PREFETCH8 0x2
35 #define RCAR_PCIAHB_PREFETCH16 0x3
36
37 #define RCAR_AHBPCI_WIN1_CTR_REG (RCAR_AHBPCI_PCICOM_OFFSET + 0x10)
38 #define RCAR_AHBPCI_WIN2_CTR_REG (RCAR_AHBPCI_PCICOM_OFFSET + 0x14)
39 #define RCAR_AHBPCI_WIN_CTR_MEM (3 << 1)
40 #define RCAR_AHBPCI_WIN_CTR_CFG (5 << 1)
41 #define RCAR_AHBPCI_WIN1_HOST (1 << 30)
42 #define RCAR_AHBPCI_WIN1_DEVICE (1 << 31)
43
44 #define RCAR_PCI_INT_ENABLE_REG (RCAR_AHBPCI_PCICOM_OFFSET + 0x20)
45 #define RCAR_PCI_INT_STATUS_REG (RCAR_AHBPCI_PCICOM_OFFSET + 0x24)
46 #define RCAR_PCI_INT_SIGTABORT (1 << 0)
47 #define RCAR_PCI_INT_SIGRETABORT (1 << 1)
48 #define RCAR_PCI_INT_REMABORT (1 << 2)
49 #define RCAR_PCI_INT_PERR (1 << 3)
50 #define RCAR_PCI_INT_SIGSERR (1 << 4)
51 #define RCAR_PCI_INT_RESERR (1 << 5)
52 #define RCAR_PCI_INT_WIN1ERR (1 << 12)
53 #define RCAR_PCI_INT_WIN2ERR (1 << 13)
54 #define RCAR_PCI_INT_A (1 << 16)
55 #define RCAR_PCI_INT_B (1 << 17)
56 #define RCAR_PCI_INT_PME (1 << 19)
57 #define RCAR_PCI_INT_ALLERRORS (RCAR_PCI_INT_SIGTABORT | \
58 RCAR_PCI_INT_SIGRETABORT | \
59 RCAR_PCI_INT_SIGRETABORT | \
60 RCAR_PCI_INT_REMABORT | \
61 RCAR_PCI_INT_PERR | \
62 RCAR_PCI_INT_SIGSERR | \
63 RCAR_PCI_INT_RESERR | \
64 RCAR_PCI_INT_WIN1ERR | \
65 RCAR_PCI_INT_WIN2ERR)
66
67 #define RCAR_AHB_BUS_CTR_REG (RCAR_AHBPCI_PCICOM_OFFSET + 0x30)
68 #define RCAR_AHB_BUS_MMODE_HTRANS (1 << 0)
69 #define RCAR_AHB_BUS_MMODE_BYTE_BURST (1 << 1)
70 #define RCAR_AHB_BUS_MMODE_WR_INCR (1 << 2)
71 #define RCAR_AHB_BUS_MMODE_HBUS_REQ (1 << 7)
72 #define RCAR_AHB_BUS_SMODE_READYCTR (1 << 17)
73 #define RCAR_AHB_BUS_MODE (RCAR_AHB_BUS_MMODE_HTRANS | \
74 RCAR_AHB_BUS_MMODE_BYTE_BURST | \
75 RCAR_AHB_BUS_MMODE_WR_INCR | \
76 RCAR_AHB_BUS_MMODE_HBUS_REQ | \
77 RCAR_AHB_BUS_SMODE_READYCTR)
78
> 79 #define RCAR_USBCTR_REG (RCAR_AHBPCI_PCICOM_OFFSET + 0x34)
80 #define RCAR_USBCTR_USBH_RST (1 << 0)
81 #define RCAR_USBCTR_PCICLK_MASK (1 << 1)
82 #define RCAR_USBCTR_PLL_RST (1 << 2)
83 #define RCAR_USBCTR_DIRPD (1 << 8)
84 #define RCAR_USBCTR_PCIAHB_WIN2_EN (1 << 9)
85 #define RCAR_USBCTR_PCIAHB_WIN1_256M (0 << 10)
86 #define RCAR_USBCTR_PCIAHB_WIN1_512M (1 << 10)
87 #define RCAR_USBCTR_PCIAHB_WIN1_1G (2 << 10)
88 #define RCAR_USBCTR_PCIAHB_WIN1_2G (3 << 10)
89 #define RCAR_USBCTR_PCIAHB_WIN1_MASK (3 << 10)
90
91 #define RCAR_PCI_ARBITER_CTR_REG (RCAR_AHBPCI_PCICOM_OFFSET + 0x40)
92 #define RCAR_PCI_ARBITER_PCIREQ0 (1 << 0)
93 #define RCAR_PCI_ARBITER_PCIREQ1 (1 << 1)
94 #define RCAR_PCI_ARBITER_PCIBP_MODE (1 << 12)
95
96 #define RCAR_PCI_UNIT_REV_REG (RCAR_AHBPCI_PCICOM_OFFSET + 0x48)
97
98 struct rcar_pci {
99 struct device *dev;
100 void __iomem *reg;
101 struct resource mem_res;
102 struct resource *cfg_res;
103 unsigned busnr;
104 int irq;
105 unsigned long window_size;
106 unsigned long window_addr;
107 unsigned long window_pci;
108 };
109
110 static u32 rcar_pci_readl(struct rcar_pci *rcar, u32 offset)
111 {
112 return ioread32(rcar->reg + offset);
113 }
114
115 static void rcar_pci_writel(struct rcar_pci *rcar, u32 offset, u32 val)
116 {
> 117 iowrite32(rcar->reg + offset, val);
118 }
119
120 /* PCI configuration space operations */
121 static void __iomem *rcar_pci_cfg_base(struct pci_bus *bus, unsigned int devfn,
122 int where)
123 {
124 struct pci_sys_data *sys = bus->sysdata;
125 struct rcar_pci *rcar = sys->private_data;
126 int slot, val;
127
128 if (sys->busnr != bus->number || PCI_FUNC(devfn))
129 return NULL;
130
131 /* Only one EHCI/OHCI device built-in */
132 slot = PCI_SLOT(devfn);
133 if (slot > 2)
134 return NULL;
135
136 /* bridge logic only has registers to 0x40 */
137 if (slot == 0x0 && where >= 0x40)
138 return NULL;
139
140 val = slot ? RCAR_AHBPCI_WIN1_DEVICE | RCAR_AHBPCI_WIN_CTR_CFG :
141 RCAR_AHBPCI_WIN1_HOST | RCAR_AHBPCI_WIN_CTR_CFG;
142
143 rcar_pci_writel(rcar, RCAR_AHBPCI_WIN1_CTR_REG, val);
144 return rcar->reg + (slot >> 1) * 0x100 + where;
145 }
146
147 /* PCI interrupt mapping */
148 static int rcar_pci_map_irq(const struct pci_dev *dev, u8 slot, u8 pin)
149 {
150 struct pci_sys_data *sys = dev->bus->sysdata;
151 struct rcar_pci *rcar = sys->private_data;
152 int irq;
153
154 irq = of_irq_parse_and_map_pci(dev, slot, pin);
155 if (!irq)
156 irq = rcar->irq;
157
158 return irq;
159 }
160
161 #ifdef CONFIG_PCI_DEBUG
162 /* if debug enabled, then attach an error handler irq to the bridge */
163
164 static irqreturn_t rcar_pci_err_irq(int irq, void *pw)
165 {
166 struct rcar_pci *rcar = pw;
167 u32 status = rcar_pci_read(rcar, RCAR_PCI_INT_STATUS_REG);
168
169 if (status & RCAR_PCI_INT_ALLERRORS) {
170 dev_err(rcar->dev, "error irq: status %08x\n", status);
171
172 /* clear the error(s) */
173 rcar_pci_writel(rcar, RCAR_PCI_INT_STATUS_REG,
174 status & RCAR_PCI_INT_ALLERRORS);
175 return IRQ_HANDLED;
176 }
177
178 return IRQ_NONE;
179 }
180
181 static void rcar_pci_setup_errirq(struct rcar_pci *rcar)
182 {
183 int ret;
184 u32 val;
185
186 ret = devm_request_irq(rcar->dev, rcar->irq, rcar_pci_err_irq,
187 IRQF_SHARED, "error irq", rcar);
188 if (ret) {
189 dev_err(rcar->dev, "cannot claim IRQ for error handling\n");
190 return;
191 }
192
193 val = rcar_pci_readl(rcar, RCAR_PCI_INT_ENABLE_REG);
194 val |= RCAR_PCI_INT_ALLERRORS;
195 rcar_pci_writel(rcar, RCAR_PCI_INT_ENABLE_REG, val);
196 }
197 #else
198 static inline void rcar_pci_setup_errirq(struct rcar_pci *rcar) { }
199 #endif
200
201 /* PCI host controller setup */
202 static int rcar_pci_setup(int nr, struct pci_sys_data *sys)
203 {
204 struct rcar_pci *rcar = sys->private_data;
205 u32 val;
206 int ret;
207
208 pm_runtime_enable(rcar->dev);
209 pm_runtime_get_sync(rcar->dev);
210
211 val = rcar_pci_readl(rcar, RCAR_PCI_UNIT_REV_REG);
212 dev_info(rcar->dev, "PCI: bus%u revision %x\n", sys->busnr, val);
213
214 /* Disable Direct Power Down State and assert reset */
> 215 val = rcar_pci_readl(RCAR_USBCTR_REG) & ~RCAR_USBCTR_DIRPD;
216 val |= RCAR_USBCTR_USBH_RST | RCAR_USBCTR_PLL_RST;
217 rcar_pci_writel(rcar, RCAR_USBCTR_REG, val);
218 udelay(4);
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation
[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 25293 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2016-10-05 0:33 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-10-05 0:33 [pci:pci/host-cleanups-wip 91/95] drivers/pci/host/pci-rcar-gen2.c:215:8: error: too few arguments to function 'rcar_pci_readl' kbuild test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.