ivhd
ivhd_dev_parse(ACPI_IVRS_HARDWARE1 *ivhd, struct amdvi_softc *softc)
switch (ivhd->Header.Type) {
p = (uint8_t *)ivhd + sizeof(ACPI_IVRS_HARDWARE1);
p = (uint8_t *)ivhd + sizeof(ACPI_IVRS_HARDWARE2);
"unknown type: 0x%x\n", ivhd->Header.Type);
end = (uint8_t *)ivhd + ivhd->Header.Length;
ACPI_IVRS_HARDWARE1 *ivhd;
ivhd = ivhd_find_by_index(i);
KASSERT(ivhd, ("ivhd%d is NULL\n", i));
if (ivhd_is_newer(&ivhd_hdrs[j]->Header, &ivhd->Header))
ivhd_hdrs[j] = ivhd;
ivhd = ivhd_hdrs[i];
KASSERT(ivhd, ("ivhd%d is NULL\n", i));
ACPI_IVRS_HARDWARE1 *ivhd;
ivhd = ivhd_hdrs[unit];
KASSERT(ivhd, ("ivhd is NULL"));
switch (ivhd->Header.Type) {
ivhd_print_cap(struct amdvi_softc *softc, ACPI_IVRS_HARDWARE1 * ivhd)
ACPI_IVRS_HARDWARE1 *ivhd;
ivhd = ivhd_hdrs[unit];
KASSERT(ivhd, ("ivhd is NULL"));
softc->pci_dev = pci_find_bsf(PCI_RID2BUS(ivhd->Header.DeviceId),
PCI_RID2SLOT(ivhd->Header.DeviceId),
PCI_RID2FUNC(ivhd->Header.DeviceId));
softc->ivhd_type = ivhd->Header.Type;
softc->pci_seg = ivhd->PciSegmentGroup;
softc->pci_rid = ivhd->Header.DeviceId;
softc->ivhd_flag = ivhd->Header.Flags;
softc->ivhd_feature = ivhd->FeatureReporting;
softc->cap_off = ivhd->CapabilityOffset;
softc->event_msix = ivhd->Info & 0x1F;
switch (ivhd->Header.Type) {
ivhd_efr = (ACPI_IVRS_HARDWARE2 *)ivhd;
softc->ctrl = (struct amdvi_ctrl *) PHYS_TO_DMAP(ivhd->BaseAddress);
status = ivhd_dev_parse(ivhd, softc);
status = ivhd_print_cap(softc, ivhd);
DRIVER_MODULE_ORDERED(ivhd, acpi, ivhd_driver, ivhd_devclass, 0, 0,
MODULE_DEPEND(ivhd, acpi, 1, 1, 1);
MODULE_DEPEND(ivhd, pci, 1, 1, 1);