|
| | FILE_LICENCE (GPL2_OR_LATER_OR_UBDL) |
| | FILE_SECBOOT (PERMITTED) |
| int | ecam_read (struct pci_device *pci, unsigned int location, void *value) |
| | Read from PCI configuration space.
|
| int | ecam_write (struct pci_device *pci, unsigned int location, unsigned long value) |
| | Write to PCI configuration space.
|
| static __always_inline int | PCIAPI_INLINE (ecam, pci_read_config_byte)(struct pci_device *pci |
| | Read byte from PCI configuration space via ECAM.
|
| static __always_inline int | PCIAPI_INLINE (ecam, pci_read_config_word)(struct pci_device *pci |
| | Read word from PCI configuration space via ECAM.
|
| static __always_inline int | PCIAPI_INLINE (ecam, pci_read_config_dword)(struct pci_device *pci |
| | Read dword from PCI configuration space via ECAM.
|
| static __always_inline int | PCIAPI_INLINE (ecam, pci_write_config_byte)(struct pci_device *pci |
| | Write byte to PCI configuration space via ECAM.
|
| static __always_inline int | PCIAPI_INLINE (ecam, pci_write_config_word)(struct pci_device *pci |
| | Write word to PCI configuration space via ECAM.
|
| static __always_inline int | PCIAPI_INLINE (ecam, pci_write_config_dword)(struct pci_device *pci |
| | Write dword to PCI configuration space via ECAM.
|
| static __always_inline void * | PCIAPI_INLINE (ecam, pci_ioremap)(struct pci_device *pci __unused |
| | Map PCI bus address as an I/O address.
|
| static __always_inline int | PCIAPI_INLINE (ecam, pci_can_probe)(struct pci_device *pci __unused) |
| | Check if PCI bus probing is allowed.
|
PCI I/O API for Enhanced Configuration Access Mechanism (ECAM)
Definition in file ecam_io.h.
| int ecam_read |
( |
struct pci_device * | pci, |
|
|
unsigned int | location, |
|
|
void * | value ) |
|
extern |
Read from PCI configuration space.
- Parameters
-
| pci | PCI device |
| location | Offset and length within PCI configuration space |
| value | Value read |
- Return values
-
Definition at line 190 of file ecam.c.
190 {
196
197
199
200
203
204
208 case 4:
210 break;
211 case 2:
213 break;
214 case 1:
216 break;
217 default:
219 }
220
221 return 0;
222}
struct arbelprm_rc_send_wqe rc
pseudo_bit_t value[0x00020]
#define assert(condition)
Assert a condition at run-time.
uint32_t addr
Buffer address.
static int ecam_access(struct pci_device *pci)
Access configuration space for PCI device.
static struct ecam_mapping ecam
Cached mapped ECAM allocation.
#define ECAM_SIZE
Enhanced Configuration Access Mechanism per-device size.
#define ECAM_WHERE(location)
Extract offset from ECAM location.
#define ECAM_LEN(location)
Extract length from ECAM location.
void * memset(void *dest, int character, size_t len) __nonnull
uint32_t busdevfn
Segment, bus, device, and function (bus:dev.fn) number.
References addr, assert, pci_device::busdevfn, ecam, ecam_access(), ECAM_LEN, ECAM_SIZE, ECAM_WHERE, index, len, memset(), rc, readb, readl, readw, value, and where.
Referenced by ecam_write(), PCIAPI_INLINE(), and PCIAPI_INLINE().
| int ecam_write |
( |
struct pci_device * | pci, |
|
|
unsigned int | location, |
|
|
unsigned long | value ) |
|
extern |
Write to PCI configuration space.
- Parameters
-
| pci | PCI device |
| location | Offset and length within PCI configuration space |
| value | Value to write |
- Return values
-
Definition at line 232 of file ecam.c.
233 {
239
240
243
244
248 case 4:
250 break;
251 case 2:
253 break;
254 case 1:
256 break;
257 default:
259 }
260
261
262
263
264
265
266
269
270 return 0;
271}
int ecam_read(struct pci_device *pci, unsigned int location, void *value)
Read from PCI configuration space.
void mb(void)
Memory barrier.
References addr, assert, pci_device::busdevfn, ecam, ecam_access(), ECAM_LEN, ecam_read(), ECAM_SIZE, ECAM_WHERE, index, len, mb(), rc, value, where, writeb, writel, and writew.
Referenced by PCIAPI_INLINE(), PCIAPI_INLINE(), and PCIAPI_INLINE().