• Home
  • Raw
  • Download

Lines Matching refs:tbl

59 	struct iommu_table *tbl;  in iommu_pseries_alloc_group()  local
66 tbl = kzalloc_node(sizeof(struct iommu_table), GFP_KERNEL, node); in iommu_pseries_alloc_group()
67 if (!tbl) in iommu_pseries_alloc_group()
70 INIT_LIST_HEAD_RCU(&tbl->it_group_list); in iommu_pseries_alloc_group()
71 kref_init(&tbl->it_kref); in iommu_pseries_alloc_group()
73 table_group->tables[0] = tbl; in iommu_pseries_alloc_group()
85 struct iommu_table *tbl; in iommu_pseries_free_group() local
90 tbl = table_group->tables[0]; in iommu_pseries_free_group()
97 iommu_tce_table_put(tbl); in iommu_pseries_free_group()
102 static int tce_build_pSeries(struct iommu_table *tbl, long index, in tce_build_pSeries() argument
116 tcep = ((__be64 *)tbl->it_base) + index; in tce_build_pSeries()
130 static void tce_free_pSeries(struct iommu_table *tbl, long index, long npages) in tce_free_pSeries() argument
134 tcep = ((__be64 *)tbl->it_base) + index; in tce_free_pSeries()
140 static unsigned long tce_get_pseries(struct iommu_table *tbl, long index) in tce_get_pseries() argument
144 tcep = ((__be64 *)tbl->it_base) + index; in tce_get_pseries()
195 static int tce_buildmulti_pSeriesLP(struct iommu_table *tbl, long tcenum, in tce_buildmulti_pSeriesLP() argument
210 return tce_build_pSeriesLP(tbl->it_index, tcenum, in tce_buildmulti_pSeriesLP()
211 tbl->it_page_shift, npages, uaddr, in tce_buildmulti_pSeriesLP()
227 return tce_build_pSeriesLP(tbl->it_index, tcenum, in tce_buildmulti_pSeriesLP()
228 tbl->it_page_shift, in tce_buildmulti_pSeriesLP()
252 rc = plpar_tce_put_indirect((u64)tbl->it_index, in tce_buildmulti_pSeriesLP()
265 tce_freemulti_pSeriesLP(tbl, tcenum_start, in tce_buildmulti_pSeriesLP()
272 printk("\tindex = 0x%llx\n", (u64)tbl->it_index); in tce_buildmulti_pSeriesLP()
299 static void tce_freemulti_pSeriesLP(struct iommu_table *tbl, long tcenum, long npages) in tce_freemulti_pSeriesLP() argument
304 return tce_free_pSeriesLP(tbl->it_index, tcenum, npages); in tce_freemulti_pSeriesLP()
306 rc = plpar_tce_stuff((u64)tbl->it_index, (u64)tcenum << 12, 0, npages); in tce_freemulti_pSeriesLP()
311 printk("\tindex = 0x%llx\n", (u64)tbl->it_index); in tce_freemulti_pSeriesLP()
317 static unsigned long tce_get_pSeriesLP(struct iommu_table *tbl, long tcenum) in tce_get_pSeriesLP() argument
322 rc = plpar_tce_get((u64)tbl->it_index, (u64)tcenum << 12, &tce_ret); in tce_get_pSeriesLP()
326 printk("\tindex = 0x%llx\n", (u64)tbl->it_index); in tce_get_pSeriesLP()
496 struct iommu_table *tbl) in iommu_table_setparms() argument
512 tbl->it_base = (unsigned long)__va(*basep); in iommu_table_setparms()
515 memset((void *)tbl->it_base, 0, *sizep); in iommu_table_setparms()
517 tbl->it_busno = phb->bus->number; in iommu_table_setparms()
518 tbl->it_page_shift = IOMMU_PAGE_SHIFT_4K; in iommu_table_setparms()
521 tbl->it_offset = phb->dma_window_base_cur >> tbl->it_page_shift; in iommu_table_setparms()
532 tbl->it_size = phb->dma_window_size >> tbl->it_page_shift; in iommu_table_setparms()
534 tbl->it_index = 0; in iommu_table_setparms()
535 tbl->it_blocksize = 16; in iommu_table_setparms()
536 tbl->it_type = TCE_PCI; in iommu_table_setparms()
546 struct iommu_table *tbl, in iommu_table_setparms_lpar() argument
552 of_parse_dma_window(dn, dma_window, &tbl->it_index, &offset, &size); in iommu_table_setparms_lpar()
554 tbl->it_busno = phb->bus->number; in iommu_table_setparms_lpar()
555 tbl->it_page_shift = IOMMU_PAGE_SHIFT_4K; in iommu_table_setparms_lpar()
556 tbl->it_base = 0; in iommu_table_setparms_lpar()
557 tbl->it_blocksize = 16; in iommu_table_setparms_lpar()
558 tbl->it_type = TCE_PCI; in iommu_table_setparms_lpar()
559 tbl->it_offset = offset >> tbl->it_page_shift; in iommu_table_setparms_lpar()
560 tbl->it_size = size >> tbl->it_page_shift; in iommu_table_setparms_lpar()
575 struct iommu_table *tbl; in pci_dma_bus_setup_pSeries() local
637 tbl = pci->table_group->tables[0]; in pci_dma_bus_setup_pSeries()
639 iommu_table_setparms(pci->phb, dn, tbl); in pci_dma_bus_setup_pSeries()
640 tbl->it_ops = &iommu_table_pseries_ops; in pci_dma_bus_setup_pSeries()
641 iommu_init_table(tbl, pci->phb->node, 0, 0); in pci_dma_bus_setup_pSeries()
652 static int tce_exchange_pseries(struct iommu_table *tbl, long index, unsigned in tce_exchange_pseries() argument
657 unsigned long ioba = (unsigned long) index << tbl->it_page_shift; in tce_exchange_pseries()
662 spin_lock_irqsave(&tbl->large_pool.lock, flags); in tce_exchange_pseries()
664 rc = plpar_tce_get((u64)tbl->it_index, ioba, &oldtce); in tce_exchange_pseries()
666 rc = plpar_tce_put((u64)tbl->it_index, ioba, newtce); in tce_exchange_pseries()
673 spin_unlock_irqrestore(&tbl->large_pool.lock, flags); in tce_exchange_pseries()
690 struct iommu_table *tbl; in pci_dma_bus_setup_pSeriesLP() local
719 tbl = ppci->table_group->tables[0]; in pci_dma_bus_setup_pSeriesLP()
720 iommu_table_setparms_lpar(ppci->phb, pdn, tbl, in pci_dma_bus_setup_pSeriesLP()
722 tbl->it_ops = &iommu_table_lpar_multi_ops; in pci_dma_bus_setup_pSeriesLP()
723 iommu_init_table(tbl, ppci->phb->node, 0, 0); in pci_dma_bus_setup_pSeriesLP()
734 struct iommu_table *tbl; in pci_dma_dev_setup_pSeries() local
749 tbl = PCI_DN(dn)->table_group->tables[0]; in pci_dma_dev_setup_pSeries()
750 iommu_table_setparms(phb, dn, tbl); in pci_dma_dev_setup_pSeries()
751 tbl->it_ops = &iommu_table_pseries_ops; in pci_dma_dev_setup_pSeries()
752 iommu_init_table(tbl, phb->node, 0, 0); in pci_dma_dev_setup_pSeries()
753 set_iommu_table_base(&dev->dev, tbl); in pci_dma_dev_setup_pSeries()
1299 struct iommu_table *tbl; in pci_dma_dev_setup_pSeriesLP() local
1332 tbl = pci->table_group->tables[0]; in pci_dma_dev_setup_pSeriesLP()
1333 iommu_table_setparms_lpar(pci->phb, pdn, tbl, in pci_dma_dev_setup_pSeriesLP()
1335 tbl->it_ops = &iommu_table_lpar_multi_ops; in pci_dma_dev_setup_pSeriesLP()
1336 iommu_init_table(tbl, pci->phb->node, 0, 0); in pci_dma_dev_setup_pSeriesLP()