Lines Matching refs:ifu
657 struct ivhd_find_unit *ifu) in amdiommu_find_unit_scan_ivrs() argument
672 ifu->dte = d4->Header.DataSetting; in amdiommu_find_unit_scan_ivrs()
677 if (d4->Header.Id == ifu->rid) { in amdiommu_find_unit_scan_ivrs()
678 ifu->dte = d4->Header.DataSetting; in amdiommu_find_unit_scan_ivrs()
679 ifu->rid_real = ifu->rid; in amdiommu_find_unit_scan_ivrs()
693 if (d4->Header.Id <= ifu->rid && in amdiommu_find_unit_scan_ivrs()
694 ifu->rid <= d4n->Header.Id) { in amdiommu_find_unit_scan_ivrs()
695 ifu->dte = d4->Header.DataSetting; in amdiommu_find_unit_scan_ivrs()
696 ifu->rid_real = ifu->rid; in amdiommu_find_unit_scan_ivrs()
706 if (d8a->Header.Id == ifu->rid) { in amdiommu_find_unit_scan_ivrs()
707 ifu->dte = d8a->Header.DataSetting; in amdiommu_find_unit_scan_ivrs()
708 ifu->rid_real = d8a->UsedId; in amdiommu_find_unit_scan_ivrs()
723 if (d8a->Header.Id <= ifu->rid && in amdiommu_find_unit_scan_ivrs()
724 ifu->rid <= d4->Header.Id) { in amdiommu_find_unit_scan_ivrs()
725 ifu->dte = d8a->Header.DataSetting; in amdiommu_find_unit_scan_ivrs()
726 ifu->rid_real = d8a->UsedId; in amdiommu_find_unit_scan_ivrs()
734 if (d8b->Header.Id == ifu->rid) { in amdiommu_find_unit_scan_ivrs()
735 ifu->dte = d8b->Header.DataSetting; in amdiommu_find_unit_scan_ivrs()
736 ifu->rid_real = ifu->rid; in amdiommu_find_unit_scan_ivrs()
737 ifu->edte = d8b->ExtendedData; in amdiommu_find_unit_scan_ivrs()
752 if (d8b->Header.Id >= ifu->rid && in amdiommu_find_unit_scan_ivrs()
753 ifu->rid <= d4->Header.Id) { in amdiommu_find_unit_scan_ivrs()
754 ifu->dte = d8b->Header.DataSetting; in amdiommu_find_unit_scan_ivrs()
755 ifu->rid_real = ifu->rid; in amdiommu_find_unit_scan_ivrs()
756 ifu->edte = d8b->ExtendedData; in amdiommu_find_unit_scan_ivrs()
764 if (((ifu->type == IFU_DEV_IOAPIC && in amdiommu_find_unit_scan_ivrs()
766 (ifu->type == IFU_DEV_HPET && in amdiommu_find_unit_scan_ivrs()
768 ifu->devno == d8c->Handle) { in amdiommu_find_unit_scan_ivrs()
769 ifu->dte = d8c->Header.DataSetting; in amdiommu_find_unit_scan_ivrs()
770 ifu->rid_real = d8c->UsedId; in amdiommu_find_unit_scan_ivrs()
803 struct ivhd_find_unit *ifu = arg; in amdiommu_find_unit_scan_0x11() local
811 if (ifu->domain != ivrs->PciSegmentGroup) in amdiommu_find_unit_scan_0x11()
814 res = amdiommu_find_unit_scan_ivrs(d, ivrs->Header.Length, ifu); in amdiommu_find_unit_scan_0x11()
816 ifu->device_id = ivrs->Header.DeviceId; in amdiommu_find_unit_scan_0x11()
823 struct ivhd_find_unit *ifu = arg; in amdiommu_find_unit_scan_0x10() local
830 if (ifu->domain != ivrs->PciSegmentGroup) in amdiommu_find_unit_scan_0x10()
833 res = amdiommu_find_unit_scan_ivrs(d, ivrs->Header.Length, ifu); in amdiommu_find_unit_scan_0x10()
835 ifu->device_id = ivrs->Header.DeviceId; in amdiommu_find_unit_scan_0x10()
889 struct ivhd_find_unit ifu; in amdiommu_find_unit() local
901 bzero(&ifu, sizeof(ifu)); in amdiommu_find_unit()
902 ifu.type = IFU_DEV_PCI; in amdiommu_find_unit()
904 error = pci_get_id(dev, PCI_ID_RID, &ifu.rid); in amdiommu_find_unit()
912 ifu.domain = pci_get_domain(dev); in amdiommu_find_unit()
914 amdiommu_find_unit_scan_0x11, amdiommu_find_unit_scan_0x10, &ifu); in amdiommu_find_unit()
919 ifu.domain, (unsigned)ifu.rid); in amdiommu_find_unit()
923 unit = amdiommu_unit_by_device_id(ifu.domain, ifu.device_id); in amdiommu_find_unit()
928 ifu.domain, (unsigned)ifu.rid); in amdiommu_find_unit()
934 *ridp = ifu.rid_real; in amdiommu_find_unit()
936 *dtep = ifu.dte; in amdiommu_find_unit()
938 *edtep = ifu.edte; in amdiommu_find_unit()
946 unit->iommu.unit, ifu.rid_real, ifu.dte, ifu.edte); in amdiommu_find_unit()
956 struct ivhd_find_unit ifu; in amdiommu_find_unit_for_ioapic() local
964 bzero(&ifu, sizeof(ifu)); in amdiommu_find_unit_for_ioapic()
965 ifu.type = IFU_DEV_IOAPIC; in amdiommu_find_unit_for_ioapic()
966 ifu.devno = apic_id; in amdiommu_find_unit_for_ioapic()
967 ifu.rid = -1; in amdiommu_find_unit_for_ioapic()
970 amdiommu_find_unit_scan_0x11, amdiommu_find_unit_scan_0x10, &ifu); in amdiommu_find_unit_for_ioapic()
978 unit = amdiommu_unit_by_device_id(0, ifu.device_id); in amdiommu_find_unit_for_ioapic()
985 ifu.device_id); in amdiommu_find_unit_for_ioapic()
990 *ridp = ifu.rid_real; in amdiommu_find_unit_for_ioapic()
992 *dtep = ifu.dte; in amdiommu_find_unit_for_ioapic()
994 *edtep = ifu.edte; in amdiommu_find_unit_for_ioapic()
998 unit->iommu.unit, apic_id, ifu.rid_real, ifu.dte, in amdiommu_find_unit_for_ioapic()
999 ifu.edte); in amdiommu_find_unit_for_ioapic()
1008 struct ivhd_find_unit ifu; in amdiommu_find_unit_for_hpet() local
1017 bzero(&ifu, sizeof(ifu)); in amdiommu_find_unit_for_hpet()
1018 ifu.type = IFU_DEV_HPET; in amdiommu_find_unit_for_hpet()
1019 ifu.devno = hpet_no; in amdiommu_find_unit_for_hpet()
1020 ifu.rid = -1; in amdiommu_find_unit_for_hpet()
1023 amdiommu_find_unit_scan_0x11, amdiommu_find_unit_scan_0x10, &ifu); in amdiommu_find_unit_for_hpet()
1031 unit = amdiommu_unit_by_device_id(0, ifu.device_id); in amdiommu_find_unit_for_hpet()
1041 *ridp = ifu.rid_real; in amdiommu_find_unit_for_hpet()
1043 *dtep = ifu.dte; in amdiommu_find_unit_for_hpet()
1045 *edtep = ifu.edte; in amdiommu_find_unit_for_hpet()
1049 unit->iommu.unit, hpet_no, ifu.rid_real, ifu.dte, in amdiommu_find_unit_for_hpet()
1050 ifu.edte); in amdiommu_find_unit_for_hpet()