diff options
Diffstat (limited to 'include/asm-ppc64/iSeries/HvCallPci.h')
-rw-r--r-- | include/asm-ppc64/iSeries/HvCallPci.h | 340 |
1 files changed, 145 insertions, 195 deletions
diff --git a/include/asm-ppc64/iSeries/HvCallPci.h b/include/asm-ppc64/iSeries/HvCallPci.h index 6887b619288e..346ab5d39dcd 100644 --- a/include/asm-ppc64/iSeries/HvCallPci.h +++ b/include/asm-ppc64/iSeries/HvCallPci.h | |||
@@ -1,26 +1,26 @@ | |||
1 | /************************************************************************/ | 1 | /* |
2 | /* Provides the Hypervisor PCI calls for iSeries Linux Parition. */ | 2 | * Provides the Hypervisor PCI calls for iSeries Linux Parition. |
3 | /* Copyright (C) 2001 <Wayne G Holm> <IBM Corporation> */ | 3 | * Copyright (C) 2001 <Wayne G Holm> <IBM Corporation> |
4 | /* */ | 4 | * |
5 | /* This program is free software; you can redistribute it and/or modify */ | 5 | * This program is free software; you can redistribute it and/or modify |
6 | /* it under the terms of the GNU General Public License as published by */ | 6 | * it under the terms of the GNU General Public License as published by |
7 | /* the Free Software Foundation; either version 2 of the License, or */ | 7 | * the Free Software Foundation; either version 2 of the License, or |
8 | /* (at your option) any later version. */ | 8 | * (at your option) any later version. |
9 | /* */ | 9 | * |
10 | /* This program is distributed in the hope that it will be useful, */ | 10 | * This program is distributed in the hope that it will be useful, |
11 | /* but WITHOUT ANY WARRANTY; without even the implied warranty of */ | 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
12 | /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ | 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
13 | /* GNU General Public License for more details. */ | 13 | * GNU General Public License for more details. |
14 | /* */ | 14 | * |
15 | /* You should have received a copy of the GNU General Public License */ | 15 | * You should have received a copy of the GNU General Public License |
16 | /* along with this program; if not, write to the: */ | 16 | * along with this program; if not, write to the: |
17 | /* Free Software Foundation, Inc., */ | 17 | * Free Software Foundation, Inc., |
18 | /* 59 Temple Place, Suite 330, */ | 18 | * 59 Temple Place, Suite 330, |
19 | /* Boston, MA 02111-1307 USA */ | 19 | * Boston, MA 02111-1307 USA |
20 | /************************************************************************/ | 20 | * |
21 | /* Change Activity: */ | 21 | * Change Activity: |
22 | /* Created, Jan 9, 2001 */ | 22 | * Created, Jan 9, 2001 |
23 | /************************************************************************/ | 23 | */ |
24 | 24 | ||
25 | #ifndef _HVCALLPCI_H | 25 | #ifndef _HVCALLPCI_H |
26 | #define _HVCALLPCI_H | 26 | #define _HVCALLPCI_H |
@@ -34,8 +34,8 @@ | |||
34 | */ | 34 | */ |
35 | struct HvCallPci_DsaAddr { | 35 | struct HvCallPci_DsaAddr { |
36 | u16 busNumber; /* PHB index? */ | 36 | u16 busNumber; /* PHB index? */ |
37 | u8 subBusNumber; /* PCI bus number? */ | 37 | u8 subBusNumber; /* PCI bus number? */ |
38 | u8 deviceId; /* device and function? */ | 38 | u8 deviceId; /* device and function? */ |
39 | u8 barNumber; | 39 | u8 barNumber; |
40 | u8 reserved[3]; | 40 | u8 reserved[3]; |
41 | }; | 41 | }; |
@@ -52,34 +52,37 @@ struct HvCallPci_LoadReturn { | |||
52 | 52 | ||
53 | enum HvCallPci_DeviceType { | 53 | enum HvCallPci_DeviceType { |
54 | HvCallPci_NodeDevice = 1, | 54 | HvCallPci_NodeDevice = 1, |
55 | HvCallPci_SpDevice = 2, | 55 | HvCallPci_SpDevice = 2, |
56 | HvCallPci_IopDevice = 3, | 56 | HvCallPci_IopDevice = 3, |
57 | HvCallPci_BridgeDevice = 4, | 57 | HvCallPci_BridgeDevice = 4, |
58 | HvCallPci_MultiFunctionDevice = 5, | 58 | HvCallPci_MultiFunctionDevice = 5, |
59 | HvCallPci_IoaDevice = 6 | 59 | HvCallPci_IoaDevice = 6 |
60 | }; | 60 | }; |
61 | 61 | ||
62 | 62 | ||
63 | struct HvCallPci_DeviceInfo { | 63 | struct HvCallPci_DeviceInfo { |
64 | u32 deviceType; // See DeviceType enum for values | 64 | u32 deviceType; /* See DeviceType enum for values */ |
65 | }; | 65 | }; |
66 | 66 | ||
67 | struct HvCallPci_BusUnitInfo { | 67 | struct HvCallPci_BusUnitInfo { |
68 | u32 sizeReturned; // length of data returned | 68 | u32 sizeReturned; /* length of data returned */ |
69 | u32 deviceType; // see DeviceType enum for values | 69 | u32 deviceType; /* see DeviceType enum for values */ |
70 | }; | 70 | }; |
71 | 71 | ||
72 | struct HvCallPci_BridgeInfo { | 72 | struct HvCallPci_BridgeInfo { |
73 | struct HvCallPci_BusUnitInfo busUnitInfo; // Generic bus unit info | 73 | struct HvCallPci_BusUnitInfo busUnitInfo; /* Generic bus unit info */ |
74 | u8 subBusNumber; // Bus number of secondary bus | 74 | u8 subBusNumber; /* Bus number of secondary bus */ |
75 | u8 maxAgents; // Max idsels on secondary bus | 75 | u8 maxAgents; /* Max idsels on secondary bus */ |
76 | u8 maxSubBusNumber; // Max Sub Bus | 76 | u8 maxSubBusNumber; /* Max Sub Bus */ |
77 | u8 logicalSlotNumber; // Logical Slot Number for IOA | 77 | u8 logicalSlotNumber; /* Logical Slot Number for IOA */ |
78 | }; | 78 | }; |
79 | |||
80 | 79 | ||
81 | // Maximum BusUnitInfo buffer size. Provided for clients so they can allocate | 80 | |
82 | // a buffer big enough for any type of bus unit. Increase as needed. | 81 | /* |
82 | * Maximum BusUnitInfo buffer size. Provided for clients so | ||
83 | * they can allocate a buffer big enough for any type of bus | ||
84 | * unit. Increase as needed. | ||
85 | */ | ||
83 | enum {HvCallPci_MaxBusUnitInfoSize = 128}; | 86 | enum {HvCallPci_MaxBusUnitInfoSize = 128}; |
84 | 87 | ||
85 | struct HvCallPci_BarParms { | 88 | struct HvCallPci_BarParms { |
@@ -89,12 +92,12 @@ struct HvCallPci_BarParms { | |||
89 | u64 protectStart; | 92 | u64 protectStart; |
90 | u64 protectEnd; | 93 | u64 protectEnd; |
91 | u64 relocationOffset; | 94 | u64 relocationOffset; |
92 | u64 pciAddress; | 95 | u64 pciAddress; |
93 | u64 reserved[3]; | 96 | u64 reserved[3]; |
94 | }; | 97 | }; |
95 | 98 | ||
96 | enum HvCallPci_VpdType { | 99 | enum HvCallPci_VpdType { |
97 | HvCallPci_BusVpd = 1, | 100 | HvCallPci_BusVpd = 1, |
98 | HvCallPci_BusAdapterVpd = 2 | 101 | HvCallPci_BusAdapterVpd = 2 |
99 | }; | 102 | }; |
100 | 103 | ||
@@ -123,15 +126,13 @@ enum HvCallPci_VpdType { | |||
123 | #define HvCallPciUnmaskInterrupts HvCallPci + 49 | 126 | #define HvCallPciUnmaskInterrupts HvCallPci + 49 |
124 | #define HvCallPciGetBusUnitInfo HvCallPci + 50 | 127 | #define HvCallPciGetBusUnitInfo HvCallPci + 50 |
125 | 128 | ||
126 | //============================================================================ | ||
127 | static inline u64 HvCallPci_configLoad8(u16 busNumber, u8 subBusNumber, | 129 | static inline u64 HvCallPci_configLoad8(u16 busNumber, u8 subBusNumber, |
128 | u8 deviceId, u32 offset, | 130 | u8 deviceId, u32 offset, u8 *value) |
129 | u8 *value) | ||
130 | { | 131 | { |
131 | struct HvCallPci_DsaAddr dsa; | 132 | struct HvCallPci_DsaAddr dsa; |
132 | struct HvCallPci_LoadReturn retVal; | 133 | struct HvCallPci_LoadReturn retVal; |
133 | 134 | ||
134 | *((u64*)&dsa) = 0; | 135 | *((u64*)&dsa) = 0; |
135 | 136 | ||
136 | dsa.busNumber = busNumber; | 137 | dsa.busNumber = busNumber; |
137 | dsa.subBusNumber = subBusNumber; | 138 | dsa.subBusNumber = subBusNumber; |
@@ -145,15 +146,14 @@ static inline u64 HvCallPci_configLoad8(u16 busNumber, u8 subBusNumber, | |||
145 | 146 | ||
146 | return retVal.rc; | 147 | return retVal.rc; |
147 | } | 148 | } |
148 | //============================================================================ | 149 | |
149 | static inline u64 HvCallPci_configLoad16(u16 busNumber, u8 subBusNumber, | 150 | static inline u64 HvCallPci_configLoad16(u16 busNumber, u8 subBusNumber, |
150 | u8 deviceId, u32 offset, | 151 | u8 deviceId, u32 offset, u16 *value) |
151 | u16 *value) | ||
152 | { | 152 | { |
153 | struct HvCallPci_DsaAddr dsa; | 153 | struct HvCallPci_DsaAddr dsa; |
154 | struct HvCallPci_LoadReturn retVal; | 154 | struct HvCallPci_LoadReturn retVal; |
155 | 155 | ||
156 | *((u64*)&dsa) = 0; | 156 | *((u64*)&dsa) = 0; |
157 | 157 | ||
158 | dsa.busNumber = busNumber; | 158 | dsa.busNumber = busNumber; |
159 | dsa.subBusNumber = subBusNumber; | 159 | dsa.subBusNumber = subBusNumber; |
@@ -167,15 +167,14 @@ static inline u64 HvCallPci_configLoad16(u16 busNumber, u8 subBusNumber, | |||
167 | 167 | ||
168 | return retVal.rc; | 168 | return retVal.rc; |
169 | } | 169 | } |
170 | //============================================================================ | 170 | |
171 | static inline u64 HvCallPci_configLoad32(u16 busNumber, u8 subBusNumber, | 171 | static inline u64 HvCallPci_configLoad32(u16 busNumber, u8 subBusNumber, |
172 | u8 deviceId, u32 offset, | 172 | u8 deviceId, u32 offset, u32 *value) |
173 | u32 *value) | ||
174 | { | 173 | { |
175 | struct HvCallPci_DsaAddr dsa; | 174 | struct HvCallPci_DsaAddr dsa; |
176 | struct HvCallPci_LoadReturn retVal; | 175 | struct HvCallPci_LoadReturn retVal; |
177 | 176 | ||
178 | *((u64*)&dsa) = 0; | 177 | *((u64*)&dsa) = 0; |
179 | 178 | ||
180 | dsa.busNumber = busNumber; | 179 | dsa.busNumber = busNumber; |
181 | dsa.subBusNumber = subBusNumber; | 180 | dsa.subBusNumber = subBusNumber; |
@@ -189,15 +188,14 @@ static inline u64 HvCallPci_configLoad32(u16 busNumber, u8 subBusNumber, | |||
189 | 188 | ||
190 | return retVal.rc; | 189 | return retVal.rc; |
191 | } | 190 | } |
192 | //============================================================================ | 191 | |
193 | static inline u64 HvCallPci_configStore8(u16 busNumber, u8 subBusNumber, | 192 | static inline u64 HvCallPci_configStore8(u16 busNumber, u8 subBusNumber, |
194 | u8 deviceId, u32 offset, | 193 | u8 deviceId, u32 offset, u8 value) |
195 | u8 value) | ||
196 | { | 194 | { |
197 | struct HvCallPci_DsaAddr dsa; | 195 | struct HvCallPci_DsaAddr dsa; |
198 | u64 retVal; | 196 | u64 retVal; |
199 | 197 | ||
200 | *((u64*)&dsa) = 0; | 198 | *((u64*)&dsa) = 0; |
201 | 199 | ||
202 | dsa.busNumber = busNumber; | 200 | dsa.busNumber = busNumber; |
203 | dsa.subBusNumber = subBusNumber; | 201 | dsa.subBusNumber = subBusNumber; |
@@ -209,15 +207,14 @@ static inline u64 HvCallPci_configStore8(u16 busNumber, u8 subBusNumber, | |||
209 | 207 | ||
210 | return retVal; | 208 | return retVal; |
211 | } | 209 | } |
212 | //============================================================================ | 210 | |
213 | static inline u64 HvCallPci_configStore16(u16 busNumber, u8 subBusNumber, | 211 | static inline u64 HvCallPci_configStore16(u16 busNumber, u8 subBusNumber, |
214 | u8 deviceId, u32 offset, | 212 | u8 deviceId, u32 offset, u16 value) |
215 | u16 value) | ||
216 | { | 213 | { |
217 | struct HvCallPci_DsaAddr dsa; | 214 | struct HvCallPci_DsaAddr dsa; |
218 | u64 retVal; | 215 | u64 retVal; |
219 | 216 | ||
220 | *((u64*)&dsa) = 0; | 217 | *((u64*)&dsa) = 0; |
221 | 218 | ||
222 | dsa.busNumber = busNumber; | 219 | dsa.busNumber = busNumber; |
223 | dsa.subBusNumber = subBusNumber; | 220 | dsa.subBusNumber = subBusNumber; |
@@ -229,15 +226,14 @@ static inline u64 HvCallPci_configStore16(u16 busNumber, u8 subBusNumber, | |||
229 | 226 | ||
230 | return retVal; | 227 | return retVal; |
231 | } | 228 | } |
232 | //============================================================================ | 229 | |
233 | static inline u64 HvCallPci_configStore32(u16 busNumber, u8 subBusNumber, | 230 | static inline u64 HvCallPci_configStore32(u16 busNumber, u8 subBusNumber, |
234 | u8 deviceId, u32 offset, | 231 | u8 deviceId, u32 offset, u32 value) |
235 | u32 value) | ||
236 | { | 232 | { |
237 | struct HvCallPci_DsaAddr dsa; | 233 | struct HvCallPci_DsaAddr dsa; |
238 | u64 retVal; | 234 | u64 retVal; |
239 | 235 | ||
240 | *((u64*)&dsa) = 0; | 236 | *((u64*)&dsa) = 0; |
241 | 237 | ||
242 | dsa.busNumber = busNumber; | 238 | dsa.busNumber = busNumber; |
243 | dsa.subBusNumber = subBusNumber; | 239 | dsa.subBusNumber = subBusNumber; |
@@ -249,18 +245,15 @@ static inline u64 HvCallPci_configStore32(u16 busNumber, u8 subBusNumber, | |||
249 | 245 | ||
250 | return retVal; | 246 | return retVal; |
251 | } | 247 | } |
252 | //============================================================================ | 248 | |
253 | static inline u64 HvCallPci_barLoad8(u16 busNumberParm, | 249 | static inline u64 HvCallPci_barLoad8(u16 busNumberParm, u8 subBusParm, |
254 | u8 subBusParm, | 250 | u8 deviceIdParm, u8 barNumberParm, u64 offsetParm, |
255 | u8 deviceIdParm, | 251 | u8 *valueParm) |
256 | u8 barNumberParm, | ||
257 | u64 offsetParm, | ||
258 | u8* valueParm) | ||
259 | { | 252 | { |
260 | struct HvCallPci_DsaAddr dsa; | 253 | struct HvCallPci_DsaAddr dsa; |
261 | struct HvCallPci_LoadReturn retVal; | 254 | struct HvCallPci_LoadReturn retVal; |
262 | 255 | ||
263 | *((u64*)&dsa) = 0; | 256 | *((u64*)&dsa) = 0; |
264 | 257 | ||
265 | dsa.busNumber = busNumberParm; | 258 | dsa.busNumber = busNumberParm; |
266 | dsa.subBusNumber = subBusParm; | 259 | dsa.subBusNumber = subBusParm; |
@@ -275,18 +268,15 @@ static inline u64 HvCallPci_barLoad8(u16 busNumberParm, | |||
275 | 268 | ||
276 | return retVal.rc; | 269 | return retVal.rc; |
277 | } | 270 | } |
278 | //============================================================================ | 271 | |
279 | static inline u64 HvCallPci_barLoad16(u16 busNumberParm, | 272 | static inline u64 HvCallPci_barLoad16(u16 busNumberParm, u8 subBusParm, |
280 | u8 subBusParm, | 273 | u8 deviceIdParm, u8 barNumberParm, u64 offsetParm, |
281 | u8 deviceIdParm, | 274 | u16 *valueParm) |
282 | u8 barNumberParm, | ||
283 | u64 offsetParm, | ||
284 | u16* valueParm) | ||
285 | { | 275 | { |
286 | struct HvCallPci_DsaAddr dsa; | 276 | struct HvCallPci_DsaAddr dsa; |
287 | struct HvCallPci_LoadReturn retVal; | 277 | struct HvCallPci_LoadReturn retVal; |
288 | 278 | ||
289 | *((u64*)&dsa) = 0; | 279 | *((u64*)&dsa) = 0; |
290 | 280 | ||
291 | dsa.busNumber = busNumberParm; | 281 | dsa.busNumber = busNumberParm; |
292 | dsa.subBusNumber = subBusParm; | 282 | dsa.subBusNumber = subBusParm; |
@@ -301,18 +291,15 @@ static inline u64 HvCallPci_barLoad16(u16 busNumberParm, | |||
301 | 291 | ||
302 | return retVal.rc; | 292 | return retVal.rc; |
303 | } | 293 | } |
304 | //============================================================================ | 294 | |
305 | static inline u64 HvCallPci_barLoad32(u16 busNumberParm, | 295 | static inline u64 HvCallPci_barLoad32(u16 busNumberParm, u8 subBusParm, |
306 | u8 subBusParm, | 296 | u8 deviceIdParm, u8 barNumberParm, u64 offsetParm, |
307 | u8 deviceIdParm, | 297 | u32 *valueParm) |
308 | u8 barNumberParm, | ||
309 | u64 offsetParm, | ||
310 | u32* valueParm) | ||
311 | { | 298 | { |
312 | struct HvCallPci_DsaAddr dsa; | 299 | struct HvCallPci_DsaAddr dsa; |
313 | struct HvCallPci_LoadReturn retVal; | 300 | struct HvCallPci_LoadReturn retVal; |
314 | 301 | ||
315 | *((u64*)&dsa) = 0; | 302 | *((u64*)&dsa) = 0; |
316 | 303 | ||
317 | dsa.busNumber = busNumberParm; | 304 | dsa.busNumber = busNumberParm; |
318 | dsa.subBusNumber = subBusParm; | 305 | dsa.subBusNumber = subBusParm; |
@@ -327,18 +314,15 @@ static inline u64 HvCallPci_barLoad32(u16 busNumberParm, | |||
327 | 314 | ||
328 | return retVal.rc; | 315 | return retVal.rc; |
329 | } | 316 | } |
330 | //============================================================================ | 317 | |
331 | static inline u64 HvCallPci_barLoad64(u16 busNumberParm, | 318 | static inline u64 HvCallPci_barLoad64(u16 busNumberParm, u8 subBusParm, |
332 | u8 subBusParm, | 319 | u8 deviceIdParm, u8 barNumberParm, u64 offsetParm, |
333 | u8 deviceIdParm, | 320 | u64 *valueParm) |
334 | u8 barNumberParm, | ||
335 | u64 offsetParm, | ||
336 | u64* valueParm) | ||
337 | { | 321 | { |
338 | struct HvCallPci_DsaAddr dsa; | 322 | struct HvCallPci_DsaAddr dsa; |
339 | struct HvCallPci_LoadReturn retVal; | 323 | struct HvCallPci_LoadReturn retVal; |
340 | 324 | ||
341 | *((u64*)&dsa) = 0; | 325 | *((u64*)&dsa) = 0; |
342 | 326 | ||
343 | dsa.busNumber = busNumberParm; | 327 | dsa.busNumber = busNumberParm; |
344 | dsa.subBusNumber = subBusParm; | 328 | dsa.subBusNumber = subBusParm; |
@@ -353,19 +337,16 @@ static inline u64 HvCallPci_barLoad64(u16 busNumberParm, | |||
353 | 337 | ||
354 | return retVal.rc; | 338 | return retVal.rc; |
355 | } | 339 | } |
356 | //============================================================================ | 340 | |
357 | static inline u64 HvCallPci_barStore8(u16 busNumberParm, | 341 | static inline u64 HvCallPci_barStore8(u16 busNumberParm, u8 subBusParm, |
358 | u8 subBusParm, | 342 | u8 deviceIdParm, u8 barNumberParm, u64 offsetParm, |
359 | u8 deviceIdParm, | 343 | u8 valueParm) |
360 | u8 barNumberParm, | ||
361 | u64 offsetParm, | ||
362 | u8 valueParm) | ||
363 | { | 344 | { |
364 | struct HvCallPci_DsaAddr dsa; | 345 | struct HvCallPci_DsaAddr dsa; |
365 | u64 retVal; | 346 | u64 retVal; |
366 | 347 | ||
367 | *((u64*)&dsa) = 0; | 348 | *((u64*)&dsa) = 0; |
368 | 349 | ||
369 | dsa.busNumber = busNumberParm; | 350 | dsa.busNumber = busNumberParm; |
370 | dsa.subBusNumber = subBusParm; | 351 | dsa.subBusNumber = subBusParm; |
371 | dsa.deviceId = deviceIdParm; | 352 | dsa.deviceId = deviceIdParm; |
@@ -377,19 +358,16 @@ static inline u64 HvCallPci_barStore8(u16 busNumberParm, | |||
377 | 358 | ||
378 | return retVal; | 359 | return retVal; |
379 | } | 360 | } |
380 | //============================================================================ | 361 | |
381 | static inline u64 HvCallPci_barStore16(u16 busNumberParm, | 362 | static inline u64 HvCallPci_barStore16(u16 busNumberParm, u8 subBusParm, |
382 | u8 subBusParm, | 363 | u8 deviceIdParm, u8 barNumberParm, u64 offsetParm, |
383 | u8 deviceIdParm, | 364 | u16 valueParm) |
384 | u8 barNumberParm, | ||
385 | u64 offsetParm, | ||
386 | u16 valueParm) | ||
387 | { | 365 | { |
388 | struct HvCallPci_DsaAddr dsa; | 366 | struct HvCallPci_DsaAddr dsa; |
389 | u64 retVal; | 367 | u64 retVal; |
390 | 368 | ||
391 | *((u64*)&dsa) = 0; | 369 | *((u64*)&dsa) = 0; |
392 | 370 | ||
393 | dsa.busNumber = busNumberParm; | 371 | dsa.busNumber = busNumberParm; |
394 | dsa.subBusNumber = subBusParm; | 372 | dsa.subBusNumber = subBusParm; |
395 | dsa.deviceId = deviceIdParm; | 373 | dsa.deviceId = deviceIdParm; |
@@ -401,19 +379,16 @@ static inline u64 HvCallPci_barStore16(u16 busNumberParm, | |||
401 | 379 | ||
402 | return retVal; | 380 | return retVal; |
403 | } | 381 | } |
404 | //============================================================================ | 382 | |
405 | static inline u64 HvCallPci_barStore32(u16 busNumberParm, | 383 | static inline u64 HvCallPci_barStore32(u16 busNumberParm, u8 subBusParm, |
406 | u8 subBusParm, | 384 | u8 deviceIdParm, u8 barNumberParm, u64 offsetParm, |
407 | u8 deviceIdParm, | 385 | u32 valueParm) |
408 | u8 barNumberParm, | ||
409 | u64 offsetParm, | ||
410 | u32 valueParm) | ||
411 | { | 386 | { |
412 | struct HvCallPci_DsaAddr dsa; | 387 | struct HvCallPci_DsaAddr dsa; |
413 | u64 retVal; | 388 | u64 retVal; |
414 | 389 | ||
415 | *((u64*)&dsa) = 0; | 390 | *((u64*)&dsa) = 0; |
416 | 391 | ||
417 | dsa.busNumber = busNumberParm; | 392 | dsa.busNumber = busNumberParm; |
418 | dsa.subBusNumber = subBusParm; | 393 | dsa.subBusNumber = subBusParm; |
419 | dsa.deviceId = deviceIdParm; | 394 | dsa.deviceId = deviceIdParm; |
@@ -425,19 +400,16 @@ static inline u64 HvCallPci_barStore32(u16 busNumberParm, | |||
425 | 400 | ||
426 | return retVal; | 401 | return retVal; |
427 | } | 402 | } |
428 | //============================================================================ | 403 | |
429 | static inline u64 HvCallPci_barStore64(u16 busNumberParm, | 404 | static inline u64 HvCallPci_barStore64(u16 busNumberParm, u8 subBusParm, |
430 | u8 subBusParm, | 405 | u8 deviceIdParm, u8 barNumberParm, u64 offsetParm, |
431 | u8 deviceIdParm, | 406 | u64 valueParm) |
432 | u8 barNumberParm, | ||
433 | u64 offsetParm, | ||
434 | u64 valueParm) | ||
435 | { | 407 | { |
436 | struct HvCallPci_DsaAddr dsa; | 408 | struct HvCallPci_DsaAddr dsa; |
437 | u64 retVal; | 409 | u64 retVal; |
438 | 410 | ||
439 | *((u64*)&dsa) = 0; | 411 | *((u64*)&dsa) = 0; |
440 | 412 | ||
441 | dsa.busNumber = busNumberParm; | 413 | dsa.busNumber = busNumberParm; |
442 | dsa.subBusNumber = subBusParm; | 414 | dsa.subBusNumber = subBusParm; |
443 | dsa.deviceId = deviceIdParm; | 415 | dsa.deviceId = deviceIdParm; |
@@ -449,10 +421,9 @@ static inline u64 HvCallPci_barStore64(u16 busNumberParm, | |||
449 | 421 | ||
450 | return retVal; | 422 | return retVal; |
451 | } | 423 | } |
452 | //============================================================================ | 424 | |
453 | static inline u64 HvCallPci_eoi(u16 busNumberParm, | 425 | static inline u64 HvCallPci_eoi(u16 busNumberParm, u8 subBusParm, |
454 | u8 subBusParm, | 426 | u8 deviceIdParm) |
455 | u8 deviceIdParm) | ||
456 | { | 427 | { |
457 | struct HvCallPci_DsaAddr dsa; | 428 | struct HvCallPci_DsaAddr dsa; |
458 | struct HvCallPci_LoadReturn retVal; | 429 | struct HvCallPci_LoadReturn retVal; |
@@ -469,13 +440,9 @@ static inline u64 HvCallPci_eoi(u16 busNumberParm, | |||
469 | 440 | ||
470 | return retVal.rc; | 441 | return retVal.rc; |
471 | } | 442 | } |
472 | //============================================================================ | 443 | |
473 | static inline u64 HvCallPci_getBarParms(u16 busNumberParm, | 444 | static inline u64 HvCallPci_getBarParms(u16 busNumberParm, u8 subBusParm, |
474 | u8 subBusParm, | 445 | u8 deviceIdParm, u8 barNumberParm, u64 parms, u32 sizeofParms) |
475 | u8 deviceIdParm, | ||
476 | u8 barNumberParm, | ||
477 | u64 parms, | ||
478 | u32 sizeofParms) | ||
479 | { | 446 | { |
480 | struct HvCallPci_DsaAddr dsa; | 447 | struct HvCallPci_DsaAddr dsa; |
481 | u64 retVal; | 448 | u64 retVal; |
@@ -493,16 +460,14 @@ static inline u64 HvCallPci_getBarParms(u16 busNumberParm, | |||
493 | 460 | ||
494 | return retVal; | 461 | return retVal; |
495 | } | 462 | } |
496 | //============================================================================ | 463 | |
497 | static inline u64 HvCallPci_maskFisr(u16 busNumberParm, | 464 | static inline u64 HvCallPci_maskFisr(u16 busNumberParm, u8 subBusParm, |
498 | u8 subBusParm, | 465 | u8 deviceIdParm, u64 fisrMask) |
499 | u8 deviceIdParm, | ||
500 | u64 fisrMask) | ||
501 | { | 466 | { |
502 | struct HvCallPci_DsaAddr dsa; | 467 | struct HvCallPci_DsaAddr dsa; |
503 | u64 retVal; | 468 | u64 retVal; |
504 | 469 | ||
505 | *((u64*)&dsa) = 0; | 470 | *((u64*)&dsa) = 0; |
506 | 471 | ||
507 | dsa.busNumber = busNumberParm; | 472 | dsa.busNumber = busNumberParm; |
508 | dsa.subBusNumber = subBusParm; | 473 | dsa.subBusNumber = subBusParm; |
@@ -514,16 +479,14 @@ static inline u64 HvCallPci_maskFisr(u16 busNumberParm, | |||
514 | 479 | ||
515 | return retVal; | 480 | return retVal; |
516 | } | 481 | } |
517 | //============================================================================ | 482 | |
518 | static inline u64 HvCallPci_unmaskFisr(u16 busNumberParm, | 483 | static inline u64 HvCallPci_unmaskFisr(u16 busNumberParm, u8 subBusParm, |
519 | u8 subBusParm, | 484 | u8 deviceIdParm, u64 fisrMask) |
520 | u8 deviceIdParm, | ||
521 | u64 fisrMask) | ||
522 | { | 485 | { |
523 | struct HvCallPci_DsaAddr dsa; | 486 | struct HvCallPci_DsaAddr dsa; |
524 | u64 retVal; | 487 | u64 retVal; |
525 | 488 | ||
526 | *((u64*)&dsa) = 0; | 489 | *((u64*)&dsa) = 0; |
527 | 490 | ||
528 | dsa.busNumber = busNumberParm; | 491 | dsa.busNumber = busNumberParm; |
529 | dsa.subBusNumber = subBusParm; | 492 | dsa.subBusNumber = subBusParm; |
@@ -535,11 +498,9 @@ static inline u64 HvCallPci_unmaskFisr(u16 busNumberParm, | |||
535 | 498 | ||
536 | return retVal; | 499 | return retVal; |
537 | } | 500 | } |
538 | //============================================================================ | 501 | |
539 | static inline u64 HvCallPci_setSlotReset(u16 busNumberParm, | 502 | static inline u64 HvCallPci_setSlotReset(u16 busNumberParm, u8 subBusParm, |
540 | u8 subBusParm, | 503 | u8 deviceIdParm, u64 onNotOff) |
541 | u8 deviceIdParm, | ||
542 | u64 onNotOff) | ||
543 | { | 504 | { |
544 | struct HvCallPci_DsaAddr dsa; | 505 | struct HvCallPci_DsaAddr dsa; |
545 | u64 retVal; | 506 | u64 retVal; |
@@ -556,12 +517,9 @@ static inline u64 HvCallPci_setSlotReset(u16 busNumberParm, | |||
556 | 517 | ||
557 | return retVal; | 518 | return retVal; |
558 | } | 519 | } |
559 | //============================================================================ | 520 | |
560 | static inline u64 HvCallPci_getDeviceInfo(u16 busNumberParm, | 521 | static inline u64 HvCallPci_getDeviceInfo(u16 busNumberParm, u8 subBusParm, |
561 | u8 subBusParm, | 522 | u8 deviceNumberParm, u64 parms, u32 sizeofParms) |
562 | u8 deviceNumberParm, | ||
563 | u64 parms, | ||
564 | u32 sizeofParms) | ||
565 | { | 523 | { |
566 | struct HvCallPci_DsaAddr dsa; | 524 | struct HvCallPci_DsaAddr dsa; |
567 | u64 retVal; | 525 | u64 retVal; |
@@ -578,16 +536,14 @@ static inline u64 HvCallPci_getDeviceInfo(u16 busNumberParm, | |||
578 | 536 | ||
579 | return retVal; | 537 | return retVal; |
580 | } | 538 | } |
581 | //============================================================================ | 539 | |
582 | static inline u64 HvCallPci_maskInterrupts(u16 busNumberParm, | 540 | static inline u64 HvCallPci_maskInterrupts(u16 busNumberParm, u8 subBusParm, |
583 | u8 subBusParm, | 541 | u8 deviceIdParm, u64 interruptMask) |
584 | u8 deviceIdParm, | ||
585 | u64 interruptMask) | ||
586 | { | 542 | { |
587 | struct HvCallPci_DsaAddr dsa; | 543 | struct HvCallPci_DsaAddr dsa; |
588 | u64 retVal; | 544 | u64 retVal; |
589 | 545 | ||
590 | *((u64*)&dsa) = 0; | 546 | *((u64*)&dsa) = 0; |
591 | 547 | ||
592 | dsa.busNumber = busNumberParm; | 548 | dsa.busNumber = busNumberParm; |
593 | dsa.subBusNumber = subBusParm; | 549 | dsa.subBusNumber = subBusParm; |
@@ -599,16 +555,14 @@ static inline u64 HvCallPci_maskInterrupts(u16 busNumberParm, | |||
599 | 555 | ||
600 | return retVal; | 556 | return retVal; |
601 | } | 557 | } |
602 | //============================================================================ | 558 | |
603 | static inline u64 HvCallPci_unmaskInterrupts(u16 busNumberParm, | 559 | static inline u64 HvCallPci_unmaskInterrupts(u16 busNumberParm, u8 subBusParm, |
604 | u8 subBusParm, | 560 | u8 deviceIdParm, u64 interruptMask) |
605 | u8 deviceIdParm, | ||
606 | u64 interruptMask) | ||
607 | { | 561 | { |
608 | struct HvCallPci_DsaAddr dsa; | 562 | struct HvCallPci_DsaAddr dsa; |
609 | u64 retVal; | 563 | u64 retVal; |
610 | 564 | ||
611 | *((u64*)&dsa) = 0; | 565 | *((u64*)&dsa) = 0; |
612 | 566 | ||
613 | dsa.busNumber = busNumberParm; | 567 | dsa.busNumber = busNumberParm; |
614 | dsa.subBusNumber = subBusParm; | 568 | dsa.subBusNumber = subBusParm; |
@@ -620,18 +574,14 @@ static inline u64 HvCallPci_unmaskInterrupts(u16 busNumberParm, | |||
620 | 574 | ||
621 | return retVal; | 575 | return retVal; |
622 | } | 576 | } |
623 | //============================================================================ | ||
624 | 577 | ||
625 | static inline u64 HvCallPci_getBusUnitInfo(u16 busNumberParm, | 578 | static inline u64 HvCallPci_getBusUnitInfo(u16 busNumberParm, u8 subBusParm, |
626 | u8 subBusParm, | 579 | u8 deviceIdParm, u64 parms, u32 sizeofParms) |
627 | u8 deviceIdParm, | ||
628 | u64 parms, | ||
629 | u32 sizeofParms) | ||
630 | { | 580 | { |
631 | struct HvCallPci_DsaAddr dsa; | 581 | struct HvCallPci_DsaAddr dsa; |
632 | u64 retVal; | 582 | u64 retVal; |
633 | 583 | ||
634 | *((u64*)&dsa) = 0; | 584 | *((u64*)&dsa) = 0; |
635 | 585 | ||
636 | dsa.busNumber = busNumberParm; | 586 | dsa.busNumber = busNumberParm; |
637 | dsa.subBusNumber = subBusParm; | 587 | dsa.subBusNumber = subBusParm; |
@@ -643,9 +593,9 @@ static inline u64 HvCallPci_getBusUnitInfo(u16 busNumberParm, | |||
643 | 593 | ||
644 | return retVal; | 594 | return retVal; |
645 | } | 595 | } |
646 | //============================================================================ | ||
647 | 596 | ||
648 | static inline int HvCallPci_getBusVpd(u16 busNumParm, u64 destParm, u16 sizeParm) | 597 | static inline int HvCallPci_getBusVpd(u16 busNumParm, u64 destParm, |
598 | u16 sizeParm) | ||
649 | { | 599 | { |
650 | int xRetSize; | 600 | int xRetSize; |
651 | u64 xRc = HvCall4(HvCallPciGetCardVpd, busNumParm, destParm, sizeParm, HvCallPci_BusVpd); | 601 | u64 xRc = HvCall4(HvCallPciGetCardVpd, busNumParm, destParm, sizeParm, HvCallPci_BusVpd); |
@@ -656,9 +606,9 @@ static inline int HvCallPci_getBusVpd(u16 busNumParm, u64 destParm, u16 sizeParm | |||
656 | xRetSize = xRc & 0xFFFF; | 606 | xRetSize = xRc & 0xFFFF; |
657 | return xRetSize; | 607 | return xRetSize; |
658 | } | 608 | } |
659 | //============================================================================ | ||
660 | 609 | ||
661 | static inline int HvCallPci_getBusAdapterVpd(u16 busNumParm, u64 destParm, u16 sizeParm) | 610 | static inline int HvCallPci_getBusAdapterVpd(u16 busNumParm, u64 destParm, |
611 | u16 sizeParm) | ||
662 | { | 612 | { |
663 | int xRetSize; | 613 | int xRetSize; |
664 | u64 xRc = HvCall4(HvCallPciGetCardVpd, busNumParm, destParm, sizeParm, HvCallPci_BusAdapterVpd); | 614 | u64 xRc = HvCall4(HvCallPciGetCardVpd, busNumParm, destParm, sizeParm, HvCallPci_BusAdapterVpd); |
@@ -669,5 +619,5 @@ static inline int HvCallPci_getBusAdapterVpd(u16 busNumParm, u64 destParm, u16 s | |||
669 | xRetSize = xRc & 0xFFFF; | 619 | xRetSize = xRc & 0xFFFF; |
670 | return xRetSize; | 620 | return xRetSize; |
671 | } | 621 | } |
672 | //============================================================================ | 622 | |
673 | #endif /* _HVCALLPCI_H */ | 623 | #endif /* _HVCALLPCI_H */ |