iomap
struct io_mapping *iomap);
if (gtt_user_read(&ggtt->iomap, page_base, page_offset,
if (ggtt_write(&ggtt->iomap, page_base, page_offset,
if (vma->iomap)
vaddr = (void __force *)io_mapping_map_atomic_wc(&ggtt->iomap,
io_mapping_fini(&ggtt->iomap);
if (!io_mapping_init_wc(&dev_priv->ggtt.iomap,
struct io_mapping iomap; /* Mapping to our CPU mappable region */
if (vma->iomap && i915_vma_unbind(vma) == 0)
s = io_mapping_map_atomic_wc(&ggtt->iomap, slot);
struct io_mapping *iomap)
r.prot = __pgprot((pgprot_val(iomap->prot) & _PAGE_CACHE_MASK) |
ptr = vma->iomap;
ptr = io_mapping_map_wc(&i915_vm_to_ggtt(vma->vm)->iomap,
vma->iomap = ptr;
GEM_BUG_ON(vma->iomap == NULL);
if (vma->iomap == NULL)
io_mapping_unmap(vma->iomap);
vma->iomap = NULL;
void __iomem *iomap;
SLIST_ENTRY(iomap) im_iomaps;
iomap->base = base;
iomap->size = size;
iomap->vaddr = ioremap_wc(base, size);
iomap->prot = pgprot_writecombine(PAGE_KERNEL_IO);
return iomap;
io_mapping_init_wc(struct io_mapping *iomap,
SLIST_HEAD(iomap_list_head, iomap) iomap_list = SLIST_HEAD_INITIALIZER(iomap_list);
struct iomap *imp;
imp = kmalloc(sizeof(struct iomap), M_DRM, M_WAITOK);
struct iomap *imp, *tmp_imp;
SLIST_REMOVE(&iomap_list, imp, iomap, im_iomaps);