Changeset View
Changeset View
Standalone View
Standalone View
head/sys/dev/pci/pci_host_generic.c
Show First 20 Lines • Show All 275 Lines • ▼ Show 20 Lines | parse_pci_mem_ranges(struct generic_pcie_softc *sc) | ||||
OF_getencprop(node, "#address-cells", &pci_addr_cells, | OF_getencprop(node, "#address-cells", &pci_addr_cells, | ||||
sizeof(pci_addr_cells)); | sizeof(pci_addr_cells)); | ||||
OF_getencprop(node, "#size-cells", &size_cells, | OF_getencprop(node, "#size-cells", &size_cells, | ||||
sizeof(size_cells)); | sizeof(size_cells)); | ||||
OF_getencprop(OF_parent(node), "#address-cells", &parent_addr_cells, | OF_getencprop(OF_parent(node), "#address-cells", &parent_addr_cells, | ||||
sizeof(parent_addr_cells)); | sizeof(parent_addr_cells)); | ||||
if (parent_addr_cells != 2 || pci_addr_cells != 3 || size_cells != 2) { | if (parent_addr_cells > 2 || pci_addr_cells != 3 || size_cells > 2) { | ||||
device_printf(sc->dev, | device_printf(sc->dev, | ||||
"Unexpected number of address or size cells in FDT\n"); | "Unexpected number of address or size cells in FDT\n"); | ||||
return (ENXIO); | return (ENXIO); | ||||
} | } | ||||
nbase_ranges = OF_getproplen(node, "ranges"); | nbase_ranges = OF_getproplen(node, "ranges"); | ||||
sc->nranges = nbase_ranges / sizeof(cell_t) / | sc->nranges = nbase_ranges / sizeof(cell_t) / | ||||
(parent_addr_cells + pci_addr_cells + size_cells); | (parent_addr_cells + pci_addr_cells + size_cells); | ||||
▲ Show 20 Lines • Show All 677 Lines • Show Last 20 Lines |