Lines Matching refs:window
173 struct iommu_window *window = in tce_build_cell() local
191 (window->ioid & CBE_IOPTE_IOID_Mask); in tce_build_cell()
194 CBE_IOPTE_SO_RW | (window->ioid & CBE_IOPTE_IOID_Mask); in tce_build_cell()
206 invalidate_tce_cache(window->iommu, io_pte, npages); in tce_build_cell()
218 struct iommu_window *window = in tce_free_cell() local
229 __pa(window->iommu->pad_page) | in tce_free_cell()
230 (window->ioid & CBE_IOPTE_IOID_Mask); in tce_free_cell()
240 invalidate_tce_cache(window->iommu, io_pte, npages); in tce_free_cell()
442 struct iommu_window *window;
446 list_for_each_entry(window, &(iommu->windows), list) {
447 if (window->offset == offset && window->size == size)
448 return window;
474 struct iommu_window *window; in cell_iommu_setup_window() local
480 window = kzalloc_node(sizeof(*window), GFP_KERNEL, iommu->nid); in cell_iommu_setup_window()
481 BUG_ON(window == NULL); in cell_iommu_setup_window()
483 window->offset = offset; in cell_iommu_setup_window()
484 window->size = size; in cell_iommu_setup_window()
485 window->ioid = ioid; in cell_iommu_setup_window()
486 window->iommu = iommu; in cell_iommu_setup_window()
488 window->table.it_blocksize = 16; in cell_iommu_setup_window()
489 window->table.it_base = (unsigned long)iommu->ptab; in cell_iommu_setup_window()
490 window->table.it_index = iommu->nid; in cell_iommu_setup_window()
491 window->table.it_page_shift = IOMMU_PAGE_SHIFT_4K; in cell_iommu_setup_window()
492 window->table.it_offset = in cell_iommu_setup_window()
493 (offset >> window->table.it_page_shift) + pte_offset; in cell_iommu_setup_window()
494 window->table.it_size = size >> window->table.it_page_shift; in cell_iommu_setup_window()
496 iommu_init_table(&window->table, iommu->nid); in cell_iommu_setup_window()
498 pr_debug("\tioid %d\n", window->ioid); in cell_iommu_setup_window()
499 pr_debug("\tblocksize %ld\n", window->table.it_blocksize); in cell_iommu_setup_window()
500 pr_debug("\tbase 0x%016lx\n", window->table.it_base); in cell_iommu_setup_window()
501 pr_debug("\toffset 0x%lx\n", window->table.it_offset); in cell_iommu_setup_window()
502 pr_debug("\tsize %ld\n", window->table.it_size); in cell_iommu_setup_window()
504 list_add(&window->list, &iommu->windows); in cell_iommu_setup_window()
507 return window; in cell_iommu_setup_window()
521 __set_bit(0, window->table.it_map); in cell_iommu_setup_window()
522 tce_build_cell(&window->table, window->table.it_offset, 1, in cell_iommu_setup_window()
525 return window; in cell_iommu_setup_window()
547 struct iommu_window *window; in cell_get_iommu_table() local
560 window = list_entry(iommu->windows.next, struct iommu_window, list); in cell_get_iommu_table()
562 return &window->table; in cell_get_iommu_table()