Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/pci/pci_host_generic.c
Show First 20 Lines • Show All 179 Lines • ▼ Show 20 Lines | generic_pcie_read_config(device_t dev, u_int bus, u_int slot, | ||||
uint32_t data; | uint32_t data; | ||||
sc = device_get_softc(dev); | sc = device_get_softc(dev); | ||||
if ((bus < sc->bus_start) || (bus > sc->bus_end)) | if ((bus < sc->bus_start) || (bus > sc->bus_end)) | ||||
return (~0U); | return (~0U); | ||||
if ((slot > PCI_SLOTMAX) || (func > PCI_FUNCMAX) || | if ((slot > PCI_SLOTMAX) || (func > PCI_FUNCMAX) || | ||||
(reg > PCIE_REGMAX)) | (reg > PCIE_REGMAX)) | ||||
return (~0U); | return (~0U); | ||||
if ((sc->quirks & PCIE_ECAM_DESIGNWARE_QUIRK) && bus == 0 && slot > 0) | |||||
return (~0U); | |||||
offset = PCIE_ADDR_OFFSET(bus - sc->bus_start, slot, func, reg); | offset = PCIE_ADDR_OFFSET(bus - sc->bus_start, slot, func, reg); | ||||
t = sc->bst; | t = sc->bst; | ||||
h = sc->bsh; | h = sc->bsh; | ||||
switch (bytes) { | switch (bytes) { | ||||
case 1: | case 1: | ||||
data = bus_space_read_1(t, h, offset); | data = bus_space_read_1(t, h, offset); | ||||
▲ Show 20 Lines • Show All 349 Lines • Show Last 20 Lines |