Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/pci/pci_host_generic_fdt.c
Context not available. | |||||
#endif | #endif | ||||
} | } | ||||
static int | |||||
generic_pcie_get_iommu(device_t pci, device_t child, uint32_t *id, | |||||
uint32_t *xref) | |||||
{ | |||||
uint32_t iommu_rid; | |||||
uint32_t iommu_xref; | |||||
uint16_t pci_rid; | |||||
phandle_t node; | |||||
int err; | |||||
node = ofw_bus_get_node(pci); | |||||
pci_rid = pci_get_rid(child); | |||||
err = ofw_bus_iommu_map(node, pci_rid, &iommu_xref, &iommu_rid); | |||||
if (err == 0) { | |||||
*id = iommu_rid; | |||||
*xref = iommu_xref; | |||||
} | |||||
return (err); | |||||
} | |||||
int | int | ||||
generic_pcie_get_id(device_t pci, device_t child, enum pci_id_type type, | generic_pcie_get_id(device_t pci, device_t child, enum pci_id_type type, | ||||
uintptr_t *id) | uintptr_t *id) | ||||
Context not available. | |||||
DEVMETHOD(pcib_release_msix, generic_pcie_fdt_release_msix), | DEVMETHOD(pcib_release_msix, generic_pcie_fdt_release_msix), | ||||
DEVMETHOD(pcib_map_msi, generic_pcie_fdt_map_msi), | DEVMETHOD(pcib_map_msi, generic_pcie_fdt_map_msi), | ||||
DEVMETHOD(pcib_get_id, generic_pcie_get_id), | DEVMETHOD(pcib_get_id, generic_pcie_get_id), | ||||
DEVMETHOD(pcib_get_iommu, generic_pcie_get_iommu), | |||||
DEVMETHOD(pcib_request_feature, pcib_request_feature_allow), | DEVMETHOD(pcib_request_feature, pcib_request_feature_allow), | ||||
DEVMETHOD(ofw_bus_get_devinfo, generic_pcie_ofw_get_devinfo), | DEVMETHOD(ofw_bus_get_devinfo, generic_pcie_ofw_get_devinfo), | ||||
Context not available. |