Searched refs:agaw (Results 1 - 3 of 3) sorted by relevance

/linux-4.4.14/drivers/iommu/
H A Dintel-iommu.c109 static inline int agaw_to_level(int agaw) agaw_to_level() argument
111 return agaw + 2; agaw_to_level()
114 static inline int agaw_to_width(int agaw) agaw_to_width() argument
116 return min_t(int, 30 + agaw * LEVEL_STRIDE, MAX_AGAW_WIDTH); agaw_to_width()
400 int agaw; member in struct:dmar_domain
700 int addr_width = agaw_to_width(domain->agaw) - VTD_PAGE_SHIFT; domain_pfn_supported()
708 int agaw = -1; __iommu_calculate_agaw() local
711 for (agaw = width_to_agaw(max_gaw); __iommu_calculate_agaw()
712 agaw >= 0; agaw--) { __iommu_calculate_agaw()
713 if (test_bit(agaw, &sagaw)) __iommu_calculate_agaw()
717 return agaw; __iommu_calculate_agaw()
729 * calculate agaw for each iommu.
730 * "SAGAW" may be different across iommus, use a default agaw, and
731 * get a supported less agaw for iommus that don't support the default agaw.
998 int level = agaw_to_level(domain->agaw); pfn_to_dma_pte()
1055 int total = agaw_to_level(domain->agaw); dma_pfn_level_pte()
1158 dma_pte_free_level(domain, agaw_to_level(domain->agaw), dma_pte_free_pagetable()
1261 freelist = dma_pte_clear_level(domain, agaw_to_level(domain->agaw), domain_unmap()
1849 int agaw; guestwidth_to_adjustwidth() local
1853 agaw = gaw; guestwidth_to_adjustwidth()
1855 agaw = gaw + 9 - r; guestwidth_to_adjustwidth()
1856 if (agaw > 64) guestwidth_to_adjustwidth()
1857 agaw = 64; guestwidth_to_adjustwidth()
1858 return agaw; guestwidth_to_adjustwidth()
1864 int adjust_width, agaw; domain_init() local
1876 agaw = width_to_agaw(adjust_width); domain_init()
1878 if (!test_bit(agaw, &sagaw)) { domain_init()
1880 pr_debug("Hardware doesn't support agaw %d\n", agaw); domain_init()
1881 agaw = find_next_bit(&sagaw, 5, agaw); domain_init()
1882 if (agaw >= 5) domain_init()
1885 domain->agaw = agaw; domain_init()
1949 int ret, agaw; domain_context_mapping_one() local
1979 * Skip top levels of page tables for iommu which has less agaw domain_context_mapping_one()
1983 for (agaw = domain->agaw; agaw != iommu->agaw; agaw--) { domain_context_mapping_one()
1997 context_set_address_width(context, iommu->agaw); domain_context_mapping_one()
2537 if (end >> agaw_to_width(domain->agaw)) { domain_prepare_identity_map()
2540 agaw_to_width(domain->agaw), domain_prepare_identity_map()
4736 domain->agaw = width_to_agaw(adjust_width); md_domain_init()
4817 /* check if this iommu agaw is sufficient for max mapped address */ intel_iommu_attach_device()
4818 addr_width = agaw_to_width(iommu->agaw); intel_iommu_attach_device()
4833 while (iommu->agaw < dmar_domain->agaw) { intel_iommu_attach_device()
4842 dmar_domain->agaw--; intel_iommu_attach_device()
4874 /* check if minimum agaw is sufficient for mapped address */ intel_iommu_map()
H A Ddmar.c1004 int agaw = 0; alloc_iommu() local
1030 agaw = iommu_calculate_agaw(iommu); alloc_iommu()
1031 if (agaw < 0) { alloc_iommu()
1032 pr_err("Cannot get a valid agaw for iommu (seq_id = %d)\n", alloc_iommu()
1038 pr_err("Cannot get a valid max agaw for iommu (seq_id = %d)\n", alloc_iommu()
1042 iommu->agaw = agaw; alloc_iommu()
/linux-4.4.14/include/linux/
H A Dintel-iommu.h407 int agaw; /* agaw of this iommu */ member in struct:intel_iommu

Completed in 191 milliseconds