table_group 167 arch/powerpc/include/asm/iommu.h long (*create_table)(struct iommu_table_group *table_group, table_group 173 arch/powerpc/include/asm/iommu.h long (*set_window)(struct iommu_table_group *table_group, table_group 176 arch/powerpc/include/asm/iommu.h long (*unset_window)(struct iommu_table_group *table_group, table_group 179 arch/powerpc/include/asm/iommu.h void (*take_ownership)(struct iommu_table_group *table_group); table_group 181 arch/powerpc/include/asm/iommu.h void (*release_ownership)(struct iommu_table_group *table_group); table_group 187 arch/powerpc/include/asm/iommu.h struct iommu_table_group *table_group; table_group 205 arch/powerpc/include/asm/iommu.h extern void iommu_register_group(struct iommu_table_group *table_group, table_group 207 arch/powerpc/include/asm/iommu.h extern int iommu_add_device(struct iommu_table_group *table_group, table_group 220 arch/powerpc/include/asm/iommu.h static inline void iommu_register_group(struct iommu_table_group *table_group, table_group 226 arch/powerpc/include/asm/iommu.h static inline int iommu_add_device(struct iommu_table_group *table_group, table_group 196 arch/powerpc/include/asm/pci-bridge.h struct iommu_table_group *table_group; /* for phb's or bridges */ table_group 934 arch/powerpc/kernel/iommu.c struct iommu_table_group *table_group = iommu_data; table_group 936 arch/powerpc/kernel/iommu.c table_group->group = NULL; table_group 939 arch/powerpc/kernel/iommu.c void iommu_register_group(struct iommu_table_group *table_group, table_group 951 arch/powerpc/kernel/iommu.c table_group->group = grp; table_group 952 arch/powerpc/kernel/iommu.c iommu_group_set_iommudata(grp, table_group, group_release); table_group 1101 arch/powerpc/kernel/iommu.c int iommu_add_device(struct iommu_table_group *table_group, struct device *dev) table_group 1119 arch/powerpc/kernel/iommu.c __func__, dev_name(dev), iommu_group_id(table_group->group)); table_group 1121 arch/powerpc/kernel/iommu.c return iommu_group_add_device(table_group->group, dev); table_group 75 arch/powerpc/kvm/book3s_64_vio.c struct iommu_table_group *table_group = NULL; table_group 79 arch/powerpc/kvm/book3s_64_vio.c table_group = iommu_group_get_iommudata(grp); table_group 80 arch/powerpc/kvm/book3s_64_vio.c if (WARN_ON(!table_group)) table_group 85 arch/powerpc/kvm/book3s_64_vio.c if (table_group->tables[i] != stit->tbl) table_group 100 arch/powerpc/kvm/book3s_64_vio.c struct iommu_table_group *table_group; table_group 121 arch/powerpc/kvm/book3s_64_vio.c table_group = iommu_group_get_iommudata(grp); table_group 122 arch/powerpc/kvm/book3s_64_vio.c if (WARN_ON(!table_group)) table_group 126 arch/powerpc/kvm/book3s_64_vio.c struct iommu_table *tbltmp = table_group->tables[i]; table_group 124 arch/powerpc/platforms/powernv/npu-dma.c static long pnv_npu_unset_window(struct iommu_table_group *table_group, table_group 127 arch/powerpc/platforms/powernv/npu-dma.c static long pnv_npu_set_window(struct iommu_table_group *table_group, int num, table_group 130 arch/powerpc/platforms/powernv/npu-dma.c struct pnv_ioda_pe *npe = container_of(table_group, struct pnv_ioda_pe, table_group 131 arch/powerpc/platforms/powernv/npu-dma.c table_group); table_group 141 arch/powerpc/platforms/powernv/npu-dma.c if (npe->table_group.tables[num2]) table_group 142 arch/powerpc/platforms/powernv/npu-dma.c pnv_npu_unset_window(&npe->table_group, num2); table_group 163 arch/powerpc/platforms/powernv/npu-dma.c tbl, &npe->table_group); table_group 168 arch/powerpc/platforms/powernv/npu-dma.c static long pnv_npu_unset_window(struct iommu_table_group *table_group, int num) table_group 170 arch/powerpc/platforms/powernv/npu-dma.c struct pnv_ioda_pe *npe = container_of(table_group, struct pnv_ioda_pe, table_group 171 arch/powerpc/platforms/powernv/npu-dma.c table_group); table_group 175 arch/powerpc/platforms/powernv/npu-dma.c if (!npe->table_group.tables[num]) table_group 190 arch/powerpc/platforms/powernv/npu-dma.c pnv_pci_unlink_table_and_group(npe->table_group.tables[num], table_group 191 arch/powerpc/platforms/powernv/npu-dma.c &npe->table_group); table_group 197 arch/powerpc/platforms/powernv/npu-dma.c static void pnv_npu_take_ownership(struct iommu_table_group *table_group) table_group 199 arch/powerpc/platforms/powernv/npu-dma.c struct pnv_ioda_pe *npe = container_of(table_group, struct pnv_ioda_pe, table_group 200 arch/powerpc/platforms/powernv/npu-dma.c table_group); table_group 211 arch/powerpc/platforms/powernv/npu-dma.c if (npe->table_group.tables[0]) { table_group 212 arch/powerpc/platforms/powernv/npu-dma.c pnv_npu_unset_window(&npe->table_group, 0); table_group 231 arch/powerpc/platforms/powernv/npu-dma.c static void pnv_npu_release_ownership(struct iommu_table_group *table_group) table_group 233 arch/powerpc/platforms/powernv/npu-dma.c struct pnv_ioda_pe *npe = container_of(table_group, struct pnv_ioda_pe, table_group 234 arch/powerpc/platforms/powernv/npu-dma.c table_group); table_group 262 arch/powerpc/platforms/powernv/npu-dma.c struct iommu_table_group table_group; table_group 275 arch/powerpc/platforms/powernv/npu-dma.c struct iommu_table_group *table_group, table_group 279 arch/powerpc/platforms/powernv/npu-dma.c struct npu_comp *npucomp = container_of(table_group, struct npu_comp, table_group 280 arch/powerpc/platforms/powernv/npu-dma.c table_group); table_group 283 arch/powerpc/platforms/powernv/npu-dma.c !npucomp->pe[0]->table_group.ops || table_group 284 arch/powerpc/platforms/powernv/npu-dma.c !npucomp->pe[0]->table_group.ops->create_table) table_group 287 arch/powerpc/platforms/powernv/npu-dma.c return npucomp->pe[0]->table_group.ops->create_table( table_group 288 arch/powerpc/platforms/powernv/npu-dma.c &npucomp->pe[0]->table_group, num, page_shift, table_group 292 arch/powerpc/platforms/powernv/npu-dma.c static long pnv_npu_peers_set_window(struct iommu_table_group *table_group, table_group 297 arch/powerpc/platforms/powernv/npu-dma.c struct npu_comp *npucomp = container_of(table_group, struct npu_comp, table_group 298 arch/powerpc/platforms/powernv/npu-dma.c table_group); table_group 303 arch/powerpc/platforms/powernv/npu-dma.c if (!pe->table_group.ops->set_window) table_group 306 arch/powerpc/platforms/powernv/npu-dma.c ret = pe->table_group.ops->set_window(&pe->table_group, table_group 316 arch/powerpc/platforms/powernv/npu-dma.c if (!pe->table_group.ops->unset_window) table_group 319 arch/powerpc/platforms/powernv/npu-dma.c ret = pe->table_group.ops->unset_window( table_group 320 arch/powerpc/platforms/powernv/npu-dma.c &pe->table_group, num); table_group 325 arch/powerpc/platforms/powernv/npu-dma.c table_group->tables[num] = iommu_tce_table_get(tbl); table_group 331 arch/powerpc/platforms/powernv/npu-dma.c static long pnv_npu_peers_unset_window(struct iommu_table_group *table_group, table_group 336 arch/powerpc/platforms/powernv/npu-dma.c struct npu_comp *npucomp = container_of(table_group, struct npu_comp, table_group 337 arch/powerpc/platforms/powernv/npu-dma.c table_group); table_group 342 arch/powerpc/platforms/powernv/npu-dma.c WARN_ON(npucomp->table_group.tables[num] != table_group 343 arch/powerpc/platforms/powernv/npu-dma.c table_group->tables[num]); table_group 344 arch/powerpc/platforms/powernv/npu-dma.c if (!npucomp->table_group.tables[num]) table_group 347 arch/powerpc/platforms/powernv/npu-dma.c if (!pe->table_group.ops->unset_window) table_group 350 arch/powerpc/platforms/powernv/npu-dma.c ret = pe->table_group.ops->unset_window(&pe->table_group, num); table_group 359 arch/powerpc/platforms/powernv/npu-dma.c if (!npucomp->table_group.tables[num]) table_group 362 arch/powerpc/platforms/powernv/npu-dma.c if (!pe->table_group.ops->set_window) table_group 365 arch/powerpc/platforms/powernv/npu-dma.c ret = pe->table_group.ops->set_window(&pe->table_group, table_group 366 arch/powerpc/platforms/powernv/npu-dma.c num, table_group->tables[num]); table_group 370 arch/powerpc/platforms/powernv/npu-dma.c } else if (table_group->tables[num]) { table_group 371 arch/powerpc/platforms/powernv/npu-dma.c iommu_tce_table_put(table_group->tables[num]); table_group 372 arch/powerpc/platforms/powernv/npu-dma.c table_group->tables[num] = NULL; table_group 378 arch/powerpc/platforms/powernv/npu-dma.c static void pnv_npu_peers_take_ownership(struct iommu_table_group *table_group) table_group 381 arch/powerpc/platforms/powernv/npu-dma.c struct npu_comp *npucomp = container_of(table_group, struct npu_comp, table_group 382 arch/powerpc/platforms/powernv/npu-dma.c table_group); table_group 387 arch/powerpc/platforms/powernv/npu-dma.c if (!pe->table_group.ops->take_ownership) table_group 389 arch/powerpc/platforms/powernv/npu-dma.c pe->table_group.ops->take_ownership(&pe->table_group); table_group 394 arch/powerpc/platforms/powernv/npu-dma.c struct iommu_table_group *table_group) table_group 397 arch/powerpc/platforms/powernv/npu-dma.c struct npu_comp *npucomp = container_of(table_group, struct npu_comp, table_group 398 arch/powerpc/platforms/powernv/npu-dma.c table_group); table_group 403 arch/powerpc/platforms/powernv/npu-dma.c if (!pe->table_group.ops->release_ownership) table_group 405 arch/powerpc/platforms/powernv/npu-dma.c pe->table_group.ops->release_ownership(&pe->table_group); table_group 430 arch/powerpc/platforms/powernv/npu-dma.c struct iommu_table_group *table_group; table_group 449 arch/powerpc/platforms/powernv/npu-dma.c table_group = &hose->npu->npucomp.table_group; table_group 451 arch/powerpc/platforms/powernv/npu-dma.c if (!table_group->group) { table_group 452 arch/powerpc/platforms/powernv/npu-dma.c table_group->ops = &pnv_npu_peers_ops; table_group 453 arch/powerpc/platforms/powernv/npu-dma.c iommu_register_group(table_group, table_group 460 arch/powerpc/platforms/powernv/npu-dma.c table_group = &pe->npucomp->table_group; table_group 461 arch/powerpc/platforms/powernv/npu-dma.c table_group->ops = &pnv_npu_peers_ops; table_group 462 arch/powerpc/platforms/powernv/npu-dma.c iommu_register_group(table_group, hose->global_number, table_group 467 arch/powerpc/platforms/powernv/npu-dma.c table_group->max_dynamic_windows_supported = table_group 468 arch/powerpc/platforms/powernv/npu-dma.c pe->table_group.max_dynamic_windows_supported; table_group 469 arch/powerpc/platforms/powernv/npu-dma.c table_group->tce32_start = pe->table_group.tce32_start; table_group 470 arch/powerpc/platforms/powernv/npu-dma.c table_group->tce32_size = pe->table_group.tce32_size; table_group 471 arch/powerpc/platforms/powernv/npu-dma.c table_group->max_levels = pe->table_group.max_levels; table_group 472 arch/powerpc/platforms/powernv/npu-dma.c if (!table_group->pgsizes) table_group 473 arch/powerpc/platforms/powernv/npu-dma.c table_group->pgsizes = pe->table_group.pgsizes; table_group 475 arch/powerpc/platforms/powernv/npu-dma.c npucomp = container_of(table_group, struct npu_comp, table_group); table_group 478 arch/powerpc/platforms/powernv/npu-dma.c return table_group; table_group 483 arch/powerpc/platforms/powernv/npu-dma.c struct iommu_table_group *table_group; table_group 499 arch/powerpc/platforms/powernv/npu-dma.c pe->table_group.ops = &pnv_pci_npu_ops; table_group 501 arch/powerpc/platforms/powernv/npu-dma.c table_group = iommu_group_get_iommudata( table_group 509 arch/powerpc/platforms/powernv/npu-dma.c table_group->pgsizes &= pe->table_group.pgsizes; table_group 510 arch/powerpc/platforms/powernv/npu-dma.c npucomp = container_of(table_group, struct npu_comp, table_group); table_group 519 arch/powerpc/platforms/powernv/npu-dma.c iommu_add_device(table_group, &npdev->dev); table_group 522 arch/powerpc/platforms/powernv/npu-dma.c return table_group; table_group 352 arch/powerpc/platforms/powernv/pci-ioda-tce.c struct iommu_table_group *table_group) table_group 358 arch/powerpc/platforms/powernv/pci-ioda-tce.c if (!tbl || !table_group) table_group 364 arch/powerpc/platforms/powernv/pci-ioda-tce.c if (tgl->table_group == table_group) { table_group 377 arch/powerpc/platforms/powernv/pci-ioda-tce.c if (table_group->tables[i] == tbl) { table_group 379 arch/powerpc/platforms/powernv/pci-ioda-tce.c table_group->tables[i] = NULL; table_group 389 arch/powerpc/platforms/powernv/pci-ioda-tce.c struct iommu_table_group *table_group) table_group 393 arch/powerpc/platforms/powernv/pci-ioda-tce.c if (WARN_ON(!tbl || !table_group)) table_group 401 arch/powerpc/platforms/powernv/pci-ioda-tce.c tgl->table_group = table_group; table_group 404 arch/powerpc/platforms/powernv/pci-ioda-tce.c table_group->tables[num] = iommu_tce_table_get(tbl); table_group 1439 arch/powerpc/platforms/powernv/pci-ioda.c static long pnv_pci_ioda2_unset_window(struct iommu_table_group *table_group, table_group 1447 arch/powerpc/platforms/powernv/pci-ioda.c tbl = pe->table_group.tables[0]; table_group 1448 arch/powerpc/platforms/powernv/pci-ioda.c rc = pnv_pci_ioda2_unset_window(&pe->table_group, 0); table_group 1453 arch/powerpc/platforms/powernv/pci-ioda.c if (pe->table_group.group) { table_group 1454 arch/powerpc/platforms/powernv/pci-ioda.c iommu_group_put(pe->table_group.group); table_group 1455 arch/powerpc/platforms/powernv/pci-ioda.c BUG_ON(pe->table_group.group); table_group 1538 arch/powerpc/platforms/powernv/pci-ioda.c struct iommu_table_group *table_group, struct pci_bus *bus); table_group 1606 arch/powerpc/platforms/powernv/pci-ioda.c iommu_register_group(&pe->table_group, table_group 1608 arch/powerpc/platforms/powernv/pci-ioda.c pnv_ioda_setup_bus_iommu_group(pe, &pe->table_group, NULL); table_group 1762 arch/powerpc/platforms/powernv/pci-ioda.c set_iommu_table_base(&pdev->dev, pe->table_group.tables[0]); table_group 1886 arch/powerpc/platforms/powernv/pci-ioda.c set_iommu_table_base(&dev->dev, pe->table_group.tables[0]); table_group 1907 arch/powerpc/platforms/powernv/pci-ioda.c struct pnv_ioda_pe *pe = container_of(tgl->table_group, table_group 1908 arch/powerpc/platforms/powernv/pci-ioda.c struct pnv_ioda_pe, table_group); table_group 2051 arch/powerpc/platforms/powernv/pci-ioda.c struct pnv_ioda_pe *pe = container_of(tgl->table_group, table_group 2052 arch/powerpc/platforms/powernv/pci-ioda.c struct pnv_ioda_pe, table_group); table_group 2224 arch/powerpc/platforms/powernv/pci-ioda.c iommu_register_group(&pe->table_group, phb->hose->global_number, table_group 2226 arch/powerpc/platforms/powernv/pci-ioda.c pnv_pci_link_table_and_group(phb->hose->node, 0, tbl, &pe->table_group); table_group 2277 arch/powerpc/platforms/powernv/pci-ioda.c pe->table_group.tce32_start = tbl->it_offset << tbl->it_page_shift; table_group 2278 arch/powerpc/platforms/powernv/pci-ioda.c pe->table_group.tce32_size = tbl->it_size << tbl->it_page_shift; table_group 2290 arch/powerpc/platforms/powernv/pci-ioda.c pnv_pci_unlink_table_and_group(tbl, &pe->table_group); table_group 2295 arch/powerpc/platforms/powernv/pci-ioda.c static long pnv_pci_ioda2_set_window(struct iommu_table_group *table_group, table_group 2298 arch/powerpc/platforms/powernv/pci-ioda.c struct pnv_ioda_pe *pe = container_of(table_group, struct pnv_ioda_pe, table_group 2299 arch/powerpc/platforms/powernv/pci-ioda.c table_group); table_group 2328 arch/powerpc/platforms/powernv/pci-ioda.c tbl, &pe->table_group); table_group 2362 arch/powerpc/platforms/powernv/pci-ioda.c static long pnv_pci_ioda2_create_table(struct iommu_table_group *table_group, table_group 2366 arch/powerpc/platforms/powernv/pci-ioda.c struct pnv_ioda_pe *pe = container_of(table_group, struct pnv_ioda_pe, table_group 2367 arch/powerpc/platforms/powernv/pci-ioda.c table_group); table_group 2369 arch/powerpc/platforms/powernv/pci-ioda.c __u64 bus_offset = num ? pe->tce_bypass_base : table_group->tce32_start; table_group 2434 arch/powerpc/platforms/powernv/pci-ioda.c rc = pnv_pci_ioda2_create_table(&pe->table_group, 0, PAGE_SHIFT, table_group 2451 arch/powerpc/platforms/powernv/pci-ioda.c rc = pnv_pci_ioda2_set_window(&pe->table_group, 0, tbl); table_group 2474 arch/powerpc/platforms/powernv/pci-ioda.c static long pnv_pci_ioda2_unset_window(struct iommu_table_group *table_group, table_group 2477 arch/powerpc/platforms/powernv/pci-ioda.c struct pnv_ioda_pe *pe = container_of(table_group, struct pnv_ioda_pe, table_group 2478 arch/powerpc/platforms/powernv/pci-ioda.c table_group); table_group 2493 arch/powerpc/platforms/powernv/pci-ioda.c pnv_pci_unlink_table_and_group(table_group->tables[num], table_group); table_group 2533 arch/powerpc/platforms/powernv/pci-ioda.c struct iommu_table_group *table_group, table_group 2537 arch/powerpc/platforms/powernv/pci-ioda.c long ret = pnv_pci_ioda2_create_table(table_group, table_group 2546 arch/powerpc/platforms/powernv/pci-ioda.c static void pnv_ioda2_take_ownership(struct iommu_table_group *table_group) table_group 2548 arch/powerpc/platforms/powernv/pci-ioda.c struct pnv_ioda_pe *pe = container_of(table_group, struct pnv_ioda_pe, table_group 2549 arch/powerpc/platforms/powernv/pci-ioda.c table_group); table_group 2551 arch/powerpc/platforms/powernv/pci-ioda.c struct iommu_table *tbl = pe->table_group.tables[0]; table_group 2554 arch/powerpc/platforms/powernv/pci-ioda.c pnv_pci_ioda2_unset_window(&pe->table_group, 0); table_group 2562 arch/powerpc/platforms/powernv/pci-ioda.c static void pnv_ioda2_release_ownership(struct iommu_table_group *table_group) table_group 2564 arch/powerpc/platforms/powernv/pci-ioda.c struct pnv_ioda_pe *pe = container_of(table_group, struct pnv_ioda_pe, table_group 2565 arch/powerpc/platforms/powernv/pci-ioda.c table_group); table_group 2582 arch/powerpc/platforms/powernv/pci-ioda.c struct iommu_table_group *table_group, table_group 2588 arch/powerpc/platforms/powernv/pci-ioda.c iommu_add_device(table_group, &dev->dev); table_group 2592 arch/powerpc/platforms/powernv/pci-ioda.c table_group, dev->subordinate); table_group 2597 arch/powerpc/platforms/powernv/pci-ioda.c struct iommu_table_group *table_group, struct pci_bus *bus) table_group 2601 arch/powerpc/platforms/powernv/pci-ioda.c iommu_add_device(table_group, &pe->pdev->dev); table_group 2604 arch/powerpc/platforms/powernv/pci-ioda.c pnv_ioda_setup_bus_iommu_group_add_devices(pe, table_group, table_group 2638 arch/powerpc/platforms/powernv/pci-ioda.c struct iommu_table_group *table_group; table_group 2640 arch/powerpc/platforms/powernv/pci-ioda.c table_group = pnv_try_setup_npu_table_group(pe); table_group 2641 arch/powerpc/platforms/powernv/pci-ioda.c if (!table_group) { table_group 2645 arch/powerpc/platforms/powernv/pci-ioda.c table_group = &pe->table_group; table_group 2646 arch/powerpc/platforms/powernv/pci-ioda.c iommu_register_group(&pe->table_group, table_group 2650 arch/powerpc/platforms/powernv/pci-ioda.c pnv_ioda_setup_bus_iommu_group(pe, table_group, table_group 2674 arch/powerpc/platforms/powernv/pci-ioda.c pe->table_group.pgsizes = pgsizes; table_group 2727 arch/powerpc/platforms/powernv/pci-ioda.c pe->table_group.tce32_start = 0; table_group 2728 arch/powerpc/platforms/powernv/pci-ioda.c pe->table_group.tce32_size = phb->ioda.m32_pci_base; table_group 2729 arch/powerpc/platforms/powernv/pci-ioda.c pe->table_group.max_dynamic_windows_supported = table_group 2731 arch/powerpc/platforms/powernv/pci-ioda.c pe->table_group.max_levels = POWERNV_IOMMU_MAX_LEVELS; table_group 2732 arch/powerpc/platforms/powernv/pci-ioda.c pe->table_group.pgsizes = pnv_ioda_parse_tce_sizes(phb); table_group 2734 arch/powerpc/platforms/powernv/pci-ioda.c pe->table_group.ops = &pnv_pci_ioda2_ops; table_group 3418 arch/powerpc/platforms/powernv/pci-ioda.c static long pnv_pci_ioda1_unset_window(struct iommu_table_group *table_group, table_group 3421 arch/powerpc/platforms/powernv/pci-ioda.c struct pnv_ioda_pe *pe = container_of(table_group, table_group 3422 arch/powerpc/platforms/powernv/pci-ioda.c struct pnv_ioda_pe, table_group); table_group 3443 arch/powerpc/platforms/powernv/pci-ioda.c pnv_pci_unlink_table_and_group(table_group->tables[num], table_group); table_group 3450 arch/powerpc/platforms/powernv/pci-ioda.c struct iommu_table *tbl = pe->table_group.tables[0]; table_group 3456 arch/powerpc/platforms/powernv/pci-ioda.c rc = pnv_pci_ioda1_unset_window(&pe->table_group, 0); table_group 3461 arch/powerpc/platforms/powernv/pci-ioda.c if (pe->table_group.group) { table_group 3462 arch/powerpc/platforms/powernv/pci-ioda.c iommu_group_put(pe->table_group.group); table_group 3463 arch/powerpc/platforms/powernv/pci-ioda.c WARN_ON(pe->table_group.group); table_group 3472 arch/powerpc/platforms/powernv/pci-ioda.c struct iommu_table *tbl = pe->table_group.tables[0]; table_group 3482 arch/powerpc/platforms/powernv/pci-ioda.c rc = pnv_pci_ioda2_unset_window(&pe->table_group, 0); table_group 3488 arch/powerpc/platforms/powernv/pci-ioda.c if (pe->table_group.group) { table_group 3489 arch/powerpc/platforms/powernv/pci-ioda.c iommu_group_put(pe->table_group.group); table_group 3490 arch/powerpc/platforms/powernv/pci-ioda.c WARN_ON(pe->table_group.group); table_group 1001 arch/powerpc/platforms/powernv/pci.c if (!pe->table_group.group) table_group 1003 arch/powerpc/platforms/powernv/pci.c iommu_add_device(&pe->table_group, dev); table_group 65 arch/powerpc/platforms/powernv/pci.h struct iommu_table_group table_group; table_group 243 arch/powerpc/platforms/powernv/pci.h struct iommu_table_group *table_group); table_group 245 arch/powerpc/platforms/powernv/pci.h struct iommu_table_group *table_group); table_group 44 arch/powerpc/platforms/pseries/iommu.c struct iommu_table_group *table_group; table_group 47 arch/powerpc/platforms/pseries/iommu.c table_group = kzalloc_node(sizeof(struct iommu_table_group), GFP_KERNEL, table_group 49 arch/powerpc/platforms/pseries/iommu.c if (!table_group) table_group 59 arch/powerpc/platforms/pseries/iommu.c table_group->tables[0] = tbl; table_group 61 arch/powerpc/platforms/pseries/iommu.c return table_group; table_group 64 arch/powerpc/platforms/pseries/iommu.c kfree(table_group); table_group 68 arch/powerpc/platforms/pseries/iommu.c static void iommu_pseries_free_group(struct iommu_table_group *table_group, table_group 73 arch/powerpc/platforms/pseries/iommu.c if (!table_group) table_group 76 arch/powerpc/platforms/pseries/iommu.c tbl = table_group->tables[0]; table_group 78 arch/powerpc/platforms/pseries/iommu.c if (table_group->group) { table_group 79 arch/powerpc/platforms/pseries/iommu.c iommu_group_put(table_group->group); table_group 80 arch/powerpc/platforms/pseries/iommu.c BUG_ON(table_group->group); table_group 85 arch/powerpc/platforms/pseries/iommu.c kfree(table_group); table_group 533 arch/powerpc/platforms/pseries/iommu.c struct iommu_table_group *table_group, table_group 548 arch/powerpc/platforms/pseries/iommu.c table_group->tce32_start = offset; table_group 549 arch/powerpc/platforms/pseries/iommu.c table_group->tce32_size = size; table_group 622 arch/powerpc/platforms/pseries/iommu.c pci->table_group = iommu_pseries_alloc_group(pci->phb->node); table_group 623 arch/powerpc/platforms/pseries/iommu.c tbl = pci->table_group->tables[0]; table_group 701 arch/powerpc/platforms/pseries/iommu.c pdn, ppci->table_group); table_group 703 arch/powerpc/platforms/pseries/iommu.c if (!ppci->table_group) { table_group 704 arch/powerpc/platforms/pseries/iommu.c ppci->table_group = iommu_pseries_alloc_group(ppci->phb->node); table_group 705 arch/powerpc/platforms/pseries/iommu.c tbl = ppci->table_group->tables[0]; table_group 707 arch/powerpc/platforms/pseries/iommu.c ppci->table_group, dma_window); table_group 710 arch/powerpc/platforms/pseries/iommu.c iommu_register_group(ppci->table_group, table_group 712 arch/powerpc/platforms/pseries/iommu.c pr_debug(" created table: %p\n", ppci->table_group); table_group 734 arch/powerpc/platforms/pseries/iommu.c PCI_DN(dn)->table_group = iommu_pseries_alloc_group(phb->node); table_group 735 arch/powerpc/platforms/pseries/iommu.c tbl = PCI_DN(dn)->table_group->tables[0]; table_group 747 arch/powerpc/platforms/pseries/iommu.c while (dn && PCI_DN(dn) && PCI_DN(dn)->table_group == NULL) table_group 752 arch/powerpc/platforms/pseries/iommu.c PCI_DN(dn)->table_group->tables[0]); table_group 1166 arch/powerpc/platforms/pseries/iommu.c for (pdn = dn; pdn && PCI_DN(pdn) && !PCI_DN(pdn)->table_group; table_group 1182 arch/powerpc/platforms/pseries/iommu.c if (!pci->table_group) { table_group 1183 arch/powerpc/platforms/pseries/iommu.c pci->table_group = iommu_pseries_alloc_group(pci->phb->node); table_group 1184 arch/powerpc/platforms/pseries/iommu.c tbl = pci->table_group->tables[0]; table_group 1186 arch/powerpc/platforms/pseries/iommu.c pci->table_group, dma_window); table_group 1189 arch/powerpc/platforms/pseries/iommu.c iommu_register_group(pci->table_group, table_group 1191 arch/powerpc/platforms/pseries/iommu.c pr_debug(" created table: %p\n", pci->table_group); table_group 1193 arch/powerpc/platforms/pseries/iommu.c pr_debug(" found DMA window, table: %p\n", pci->table_group); table_group 1196 arch/powerpc/platforms/pseries/iommu.c set_iommu_table_base(&dev->dev, pci->table_group->tables[0]); table_group 1197 arch/powerpc/platforms/pseries/iommu.c iommu_add_device(pci->table_group, &dev->dev); table_group 1217 arch/powerpc/platforms/pseries/iommu.c for (pdn = dn; pdn && PCI_DN(pdn) && !PCI_DN(pdn)->table_group; table_group 1291 arch/powerpc/platforms/pseries/iommu.c if (pci && pci->table_group) table_group 1292 arch/powerpc/platforms/pseries/iommu.c iommu_pseries_free_group(pci->table_group, table_group 240 drivers/vfio/vfio_iommu_spapr_tce.c struct iommu_table_group *table_group; table_group 280 drivers/vfio/vfio_iommu_spapr_tce.c table_group = iommu_group_get_iommudata(tcegrp->grp); table_group 281 drivers/vfio/vfio_iommu_spapr_tce.c if (!table_group) table_group 284 drivers/vfio/vfio_iommu_spapr_tce.c if (!table_group->tce32_size) table_group 291 drivers/vfio/vfio_iommu_spapr_tce.c locked = table_group->tce32_size >> PAGE_SHIFT; table_group 607 drivers/vfio/vfio_iommu_spapr_tce.c struct iommu_table_group *table_group, table_group 616 drivers/vfio/vfio_iommu_spapr_tce.c table_size = table_group->ops->get_table_size(page_shift, window_size, table_group 625 drivers/vfio/vfio_iommu_spapr_tce.c ret = table_group->ops->create_table(table_group, num, table_group 648 drivers/vfio/vfio_iommu_spapr_tce.c struct iommu_table_group *table_group; table_group 659 drivers/vfio/vfio_iommu_spapr_tce.c table_group = iommu_group_get_iommudata(tcegrp->grp); table_group 660 drivers/vfio/vfio_iommu_spapr_tce.c if (!table_group) table_group 663 drivers/vfio/vfio_iommu_spapr_tce.c if (!(table_group->pgsizes & (1ULL << page_shift))) table_group 666 drivers/vfio/vfio_iommu_spapr_tce.c if (!table_group->ops->set_window || !table_group->ops->unset_window || table_group 667 drivers/vfio/vfio_iommu_spapr_tce.c !table_group->ops->get_table_size || table_group 668 drivers/vfio/vfio_iommu_spapr_tce.c !table_group->ops->create_table) table_group 672 drivers/vfio/vfio_iommu_spapr_tce.c ret = tce_iommu_create_table(container, table_group, num, table_group 684 drivers/vfio/vfio_iommu_spapr_tce.c table_group = iommu_group_get_iommudata(tcegrp->grp); table_group 686 drivers/vfio/vfio_iommu_spapr_tce.c ret = table_group->ops->set_window(table_group, num, tbl); table_group 700 drivers/vfio/vfio_iommu_spapr_tce.c table_group = iommu_group_get_iommudata(tcegrp->grp); table_group 701 drivers/vfio/vfio_iommu_spapr_tce.c table_group->ops->unset_window(table_group, num); table_group 711 drivers/vfio/vfio_iommu_spapr_tce.c struct iommu_table_group *table_group = NULL; table_group 724 drivers/vfio/vfio_iommu_spapr_tce.c table_group = iommu_group_get_iommudata(tcegrp->grp); table_group 733 drivers/vfio/vfio_iommu_spapr_tce.c if (!table_group->ops || !table_group->ops->unset_window) table_group 736 drivers/vfio/vfio_iommu_spapr_tce.c table_group->ops->unset_window(table_group, num); table_group 752 drivers/vfio/vfio_iommu_spapr_tce.c struct iommu_table_group *table_group; table_group 762 drivers/vfio/vfio_iommu_spapr_tce.c table_group = iommu_group_get_iommudata(tcegrp->grp); table_group 763 drivers/vfio/vfio_iommu_spapr_tce.c if (!table_group) table_group 767 drivers/vfio/vfio_iommu_spapr_tce.c table_group->tce32_size, 1, &start_addr); table_group 810 drivers/vfio/vfio_iommu_spapr_tce.c struct iommu_table_group *table_group; table_group 817 drivers/vfio/vfio_iommu_spapr_tce.c table_group = iommu_group_get_iommudata(tcegrp->grp); table_group 819 drivers/vfio/vfio_iommu_spapr_tce.c if (!table_group) table_group 831 drivers/vfio/vfio_iommu_spapr_tce.c info.dma32_window_start = table_group->tce32_start; table_group 832 drivers/vfio/vfio_iommu_spapr_tce.c info.dma32_window_size = table_group->tce32_size; table_group 836 drivers/vfio/vfio_iommu_spapr_tce.c if (table_group->max_dynamic_windows_supported && table_group 839 drivers/vfio/vfio_iommu_spapr_tce.c info.ddw.pgsizes = table_group->pgsizes; table_group 841 drivers/vfio/vfio_iommu_spapr_tce.c table_group->max_dynamic_windows_supported; table_group 842 drivers/vfio/vfio_iommu_spapr_tce.c info.ddw.levels = table_group->max_levels; table_group 1142 drivers/vfio/vfio_iommu_spapr_tce.c struct iommu_table_group *table_group) table_group 1161 drivers/vfio/vfio_iommu_spapr_tce.c struct iommu_table_group *table_group) table_group 1166 drivers/vfio/vfio_iommu_spapr_tce.c struct iommu_table *tbl = table_group->tables[i]; table_group 1175 drivers/vfio/vfio_iommu_spapr_tce.c table_group->tables[j]); table_group 1182 drivers/vfio/vfio_iommu_spapr_tce.c container->tables[i] = table_group->tables[i]; table_group 1188 drivers/vfio/vfio_iommu_spapr_tce.c struct iommu_table_group *table_group) table_group 1192 drivers/vfio/vfio_iommu_spapr_tce.c if (!table_group->ops->unset_window) { table_group 1199 drivers/vfio/vfio_iommu_spapr_tce.c table_group->ops->unset_window(table_group, i); table_group 1201 drivers/vfio/vfio_iommu_spapr_tce.c table_group->ops->release_ownership(table_group); table_group 1205 drivers/vfio/vfio_iommu_spapr_tce.c struct iommu_table_group *table_group) table_group 1209 drivers/vfio/vfio_iommu_spapr_tce.c if (!table_group->ops->create_table || !table_group->ops->set_window || table_group 1210 drivers/vfio/vfio_iommu_spapr_tce.c !table_group->ops->release_ownership) { table_group 1215 drivers/vfio/vfio_iommu_spapr_tce.c table_group->ops->take_ownership(table_group); table_group 1224 drivers/vfio/vfio_iommu_spapr_tce.c ret = table_group->ops->set_window(table_group, i, tbl); table_group 1233 drivers/vfio/vfio_iommu_spapr_tce.c table_group->ops->unset_window(table_group, i); table_group 1235 drivers/vfio/vfio_iommu_spapr_tce.c table_group->ops->release_ownership(table_group); table_group 1245 drivers/vfio/vfio_iommu_spapr_tce.c struct iommu_table_group *table_group; table_group 1252 drivers/vfio/vfio_iommu_spapr_tce.c table_group = iommu_group_get_iommudata(iommu_group); table_group 1253 drivers/vfio/vfio_iommu_spapr_tce.c if (!table_group) { table_group 1258 drivers/vfio/vfio_iommu_spapr_tce.c if (tce_groups_attached(container) && (!table_group->ops || table_group 1259 drivers/vfio/vfio_iommu_spapr_tce.c !table_group->ops->take_ownership || table_group 1260 drivers/vfio/vfio_iommu_spapr_tce.c !table_group->ops->release_ownership)) { table_group 1277 drivers/vfio/vfio_iommu_spapr_tce.c table_group->ops->create_table) { table_group 1292 drivers/vfio/vfio_iommu_spapr_tce.c if (!table_group->ops || !table_group->ops->take_ownership || table_group 1293 drivers/vfio/vfio_iommu_spapr_tce.c !table_group->ops->release_ownership) { table_group 1298 drivers/vfio/vfio_iommu_spapr_tce.c ret = tce_iommu_take_ownership(container, table_group); table_group 1304 drivers/vfio/vfio_iommu_spapr_tce.c ret = tce_iommu_take_ownership_ddw(container, table_group); table_group 1328 drivers/vfio/vfio_iommu_spapr_tce.c struct iommu_table_group *table_group; table_group 1350 drivers/vfio/vfio_iommu_spapr_tce.c table_group = iommu_group_get_iommudata(iommu_group); table_group 1351 drivers/vfio/vfio_iommu_spapr_tce.c BUG_ON(!table_group); table_group 1353 drivers/vfio/vfio_iommu_spapr_tce.c if (!table_group->ops || !table_group->ops->release_ownership) table_group 1354 drivers/vfio/vfio_iommu_spapr_tce.c tce_iommu_release_ownership(container, table_group); table_group 1356 drivers/vfio/vfio_iommu_spapr_tce.c tce_iommu_release_ownership_ddw(container, table_group);