Lines Matching refs:omap_obj
156 struct omap_gem_object *omap_obj = to_omap_bo(obj); in evict_entry() local
161 const int m = 1 + ((omap_obj->width << fmt) / PAGE_SIZE); in evict_entry()
182 struct omap_gem_object *omap_obj = to_omap_bo(obj); in evict() local
184 if (omap_obj->flags & OMAP_BO_TILED) { in evict()
185 enum tiler_fmt fmt = gem2fmt(omap_obj->flags); in evict()
217 struct omap_gem_object *omap_obj = to_omap_bo(obj); in is_cached_coherent() local
219 ((omap_obj->flags & OMAP_BO_CACHE_MASK) == OMAP_BO_CACHED); in is_cached_coherent()
228 struct omap_gem_object *omap_obj = to_omap_bo(obj); in omap_gem_attach_pages() local
234 WARN_ON(omap_obj->pages); in omap_gem_attach_pages()
245 if (omap_obj->flags & (OMAP_BO_WC|OMAP_BO_UNCACHED)) { in omap_gem_attach_pages()
264 omap_obj->addrs = addrs; in omap_gem_attach_pages()
265 omap_obj->pages = pages; in omap_gem_attach_pages()
278 struct omap_gem_object *omap_obj = to_omap_bo(obj); in omap_gem_detach_pages() local
283 if (omap_obj->flags & (OMAP_BO_WC|OMAP_BO_UNCACHED)) { in omap_gem_detach_pages()
286 dma_unmap_page(obj->dev->dev, omap_obj->addrs[i], in omap_gem_detach_pages()
291 kfree(omap_obj->addrs); in omap_gem_detach_pages()
292 omap_obj->addrs = NULL; in omap_gem_detach_pages()
294 drm_gem_put_pages(obj, omap_obj->pages, true, false); in omap_gem_detach_pages()
295 omap_obj->pages = NULL; in omap_gem_detach_pages()
336 struct omap_gem_object *omap_obj = to_omap_bo(obj); in omap_gem_mmap_size() local
339 if (omap_obj->flags & OMAP_BO_TILED) { in omap_gem_mmap_size()
346 size = tiler_vsize(gem2fmt(omap_obj->flags), in omap_gem_mmap_size()
347 omap_obj->width, omap_obj->height); in omap_gem_mmap_size()
356 struct omap_gem_object *omap_obj = to_omap_bo(obj); in omap_gem_tiled_size() local
357 if (omap_obj->flags & OMAP_BO_TILED) { in omap_gem_tiled_size()
358 *w = omap_obj->width; in omap_gem_tiled_size()
359 *h = omap_obj->height; in omap_gem_tiled_size()
369 struct omap_gem_object *omap_obj = to_omap_bo(obj); in fault_1d() local
377 if (omap_obj->pages) { in fault_1d()
379 pfn = page_to_pfn(omap_obj->pages[pgoff]); in fault_1d()
381 BUG_ON(!(omap_obj->flags & OMAP_BO_DMA)); in fault_1d()
382 pfn = (omap_obj->paddr >> PAGE_SHIFT) + pgoff; in fault_1d()
395 struct omap_gem_object *omap_obj = to_omap_bo(obj); in fault_2d() local
397 enum tiler_fmt fmt = gem2fmt(omap_obj->flags); in fault_2d()
418 const int m = 1 + ((omap_obj->width << fmt) / PAGE_SIZE); in fault_2d()
431 slots = omap_obj->width >> usergart[fmt].slot_shift; in fault_2d()
464 memcpy(pages, &omap_obj->pages[base_pgoff], in fault_2d()
508 struct omap_gem_object *omap_obj = to_omap_bo(obj); in omap_gem_fault() local
529 if (omap_obj->flags & OMAP_BO_TILED) in omap_gem_fault()
566 struct omap_gem_object *omap_obj = to_omap_bo(obj); in omap_gem_mmap_obj() local
571 if (omap_obj->flags & OMAP_BO_WC) { in omap_gem_mmap_obj()
573 } else if (omap_obj->flags & OMAP_BO_UNCACHED) { in omap_gem_mmap_obj()
663 struct omap_gem_object *omap_obj = to_omap_bo(obj); in omap_gem_roll() local
672 omap_obj->roll = roll; in omap_gem_roll()
677 if (omap_obj->block) { in omap_gem_roll()
682 ret = tiler_pin(omap_obj->block, pages, npages, roll, true); in omap_gem_roll()
699 struct omap_gem_object *omap_obj = to_omap_bo(obj); in omap_gem_cpu_sync() local
701 if (is_cached_coherent(obj) && omap_obj->addrs[pgoff]) { in omap_gem_cpu_sync()
702 dma_unmap_page(dev->dev, omap_obj->addrs[pgoff], in omap_gem_cpu_sync()
704 omap_obj->addrs[pgoff] = 0; in omap_gem_cpu_sync()
713 struct omap_gem_object *omap_obj = to_omap_bo(obj); in omap_gem_dma_sync() local
717 struct page **pages = omap_obj->pages; in omap_gem_dma_sync()
721 if (!omap_obj->addrs[i]) { in omap_gem_dma_sync()
722 omap_obj->addrs[i] = dma_map_page(dev->dev, pages[i], 0, in omap_gem_dma_sync()
743 struct omap_gem_object *omap_obj = to_omap_bo(obj); in omap_gem_get_paddr() local
749 if (omap_obj->paddr_cnt == 0) { in omap_gem_get_paddr()
752 enum tiler_fmt fmt = gem2fmt(omap_obj->flags); in omap_gem_get_paddr()
755 BUG_ON(omap_obj->block); in omap_gem_get_paddr()
761 if (omap_obj->flags & OMAP_BO_TILED) { in omap_gem_get_paddr()
763 omap_obj->width, in omap_gem_get_paddr()
764 omap_obj->height, 0); in omap_gem_get_paddr()
778 omap_obj->roll, true); in omap_gem_get_paddr()
786 omap_obj->paddr = tiler_ssptr(block); in omap_gem_get_paddr()
787 omap_obj->block = block; in omap_gem_get_paddr()
789 DBG("got paddr: %pad", &omap_obj->paddr); in omap_gem_get_paddr()
792 omap_obj->paddr_cnt++; in omap_gem_get_paddr()
794 *paddr = omap_obj->paddr; in omap_gem_get_paddr()
795 } else if (omap_obj->flags & OMAP_BO_DMA) { in omap_gem_get_paddr()
796 *paddr = omap_obj->paddr; in omap_gem_get_paddr()
813 struct omap_gem_object *omap_obj = to_omap_bo(obj); in omap_gem_put_paddr() local
817 if (omap_obj->paddr_cnt > 0) { in omap_gem_put_paddr()
818 omap_obj->paddr_cnt--; in omap_gem_put_paddr()
819 if (omap_obj->paddr_cnt == 0) { in omap_gem_put_paddr()
820 ret = tiler_unpin(omap_obj->block); in omap_gem_put_paddr()
826 ret = tiler_release(omap_obj->block); in omap_gem_put_paddr()
831 omap_obj->paddr = 0; in omap_gem_put_paddr()
832 omap_obj->block = NULL; in omap_gem_put_paddr()
847 struct omap_gem_object *omap_obj = to_omap_bo(obj); in omap_gem_rotated_paddr() local
851 if ((omap_obj->paddr_cnt > 0) && omap_obj->block && in omap_gem_rotated_paddr()
852 (omap_obj->flags & OMAP_BO_TILED)) { in omap_gem_rotated_paddr()
853 *paddr = tiler_tsptr(omap_obj->block, orient, x, y); in omap_gem_rotated_paddr()
863 struct omap_gem_object *omap_obj = to_omap_bo(obj); in omap_gem_tiled_stride() local
865 if (omap_obj->flags & OMAP_BO_TILED) in omap_gem_tiled_stride()
866 ret = tiler_stride(gem2fmt(omap_obj->flags), orient); in omap_gem_tiled_stride()
875 struct omap_gem_object *omap_obj = to_omap_bo(obj); in get_pages() local
878 if (is_shmem(obj) && !omap_obj->pages) { in get_pages()
887 *pages = omap_obj->pages; in get_pages()
907 struct omap_gem_object *omap_obj = to_omap_bo(obj); in omap_gem_get_pages() local
908 if (!omap_obj->pages) in omap_gem_get_pages()
910 *pages = omap_obj->pages; in omap_gem_get_pages()
935 struct omap_gem_object *omap_obj = to_omap_bo(obj); in omap_gem_vaddr() local
937 if (!omap_obj->vaddr) { in omap_gem_vaddr()
942 omap_obj->vaddr = vmap(pages, obj->size >> PAGE_SHIFT, in omap_gem_vaddr()
945 return omap_obj->vaddr; in omap_gem_vaddr()
954 struct omap_gem_object *omap_obj; in omap_gem_resume() local
957 list_for_each_entry(omap_obj, &priv->obj_list, mm_list) { in omap_gem_resume()
958 if (omap_obj->block) { in omap_gem_resume()
959 struct drm_gem_object *obj = &omap_obj->base; in omap_gem_resume()
961 WARN_ON(!omap_obj->pages); /* this can't happen */ in omap_gem_resume()
962 ret = tiler_pin(omap_obj->block, in omap_gem_resume()
963 omap_obj->pages, npages, in omap_gem_resume()
964 omap_obj->roll, true); in omap_gem_resume()
979 struct omap_gem_object *omap_obj = to_omap_bo(obj); in omap_gem_describe() local
985 omap_obj->flags, obj->name, obj->refcount.refcount.counter, in omap_gem_describe()
986 off, &omap_obj->paddr, omap_obj->paddr_cnt, in omap_gem_describe()
987 omap_obj->vaddr, omap_obj->roll); in omap_gem_describe()
989 if (omap_obj->flags & OMAP_BO_TILED) { in omap_gem_describe()
990 seq_printf(m, " %dx%d", omap_obj->width, omap_obj->height); in omap_gem_describe()
991 if (omap_obj->block) { in omap_gem_describe()
992 struct tcm_area *area = &omap_obj->block->area; in omap_gem_describe()
1006 struct omap_gem_object *omap_obj; in omap_gem_describe_objects() local
1010 list_for_each_entry(omap_obj, list, mm_list) { in omap_gem_describe_objects()
1011 struct drm_gem_object *obj = &omap_obj->base; in omap_gem_describe_objects()
1027 struct omap_gem_object *omap_obj; member
1044 struct omap_gem_object *omap_obj = waiter->omap_obj; in is_waiting() local
1046 (omap_obj->sync->write_complete < waiter->write_target)) in is_waiting()
1049 (omap_obj->sync->read_complete < waiter->read_target)) in is_waiting()
1078 struct omap_gem_object *omap_obj = to_omap_bo(obj); in sync_op() local
1083 if (!omap_obj->sync) { in sync_op()
1084 omap_obj->sync = kzalloc(sizeof(*omap_obj->sync), GFP_ATOMIC); in sync_op()
1085 if (!omap_obj->sync) { in sync_op()
1093 omap_obj->sync->read_pending++; in sync_op()
1095 omap_obj->sync->write_pending++; in sync_op()
1098 omap_obj->sync->read_complete++; in sync_op()
1100 omap_obj->sync->write_complete++; in sync_op()
1146 struct omap_gem_object *omap_obj = to_omap_bo(obj); in omap_gem_op_sync() local
1148 if (omap_obj->sync) { in omap_gem_op_sync()
1156 waiter->omap_obj = omap_obj; in omap_gem_op_sync()
1158 waiter->read_target = omap_obj->sync->read_pending; in omap_gem_op_sync()
1159 waiter->write_target = omap_obj->sync->write_pending; in omap_gem_op_sync()
1199 struct omap_gem_object *omap_obj = to_omap_bo(obj); in omap_gem_op_async() local
1200 if (omap_obj->sync) { in omap_gem_op_async()
1207 waiter->omap_obj = omap_obj; in omap_gem_op_async()
1209 waiter->read_target = omap_obj->sync->read_pending; in omap_gem_op_async()
1210 waiter->write_target = omap_obj->sync->write_pending; in omap_gem_op_async()
1240 struct omap_gem_object *omap_obj = to_omap_bo(obj); in omap_gem_set_sync_object() local
1245 if ((omap_obj->flags & OMAP_BO_EXT_SYNC) && !syncobj) { in omap_gem_set_sync_object()
1247 syncobj = kmemdup(omap_obj->sync, sizeof(*omap_obj->sync), in omap_gem_set_sync_object()
1253 omap_obj->flags &= ~OMAP_BO_EXT_SYNC; in omap_gem_set_sync_object()
1254 omap_obj->sync = syncobj; in omap_gem_set_sync_object()
1255 } else if (syncobj && !(omap_obj->flags & OMAP_BO_EXT_SYNC)) { in omap_gem_set_sync_object()
1257 if (omap_obj->sync) { in omap_gem_set_sync_object()
1258 memcpy(syncobj, omap_obj->sync, sizeof(*omap_obj->sync)); in omap_gem_set_sync_object()
1259 kfree(omap_obj->sync); in omap_gem_set_sync_object()
1261 omap_obj->flags |= OMAP_BO_EXT_SYNC; in omap_gem_set_sync_object()
1262 omap_obj->sync = syncobj; in omap_gem_set_sync_object()
1277 struct omap_gem_object *omap_obj = to_omap_bo(obj); in omap_gem_free_object() local
1284 list_del(&omap_obj->mm_list); in omap_gem_free_object()
1292 WARN_ON(omap_obj->paddr_cnt > 0); in omap_gem_free_object()
1295 if (!(omap_obj->flags & OMAP_BO_EXT_MEM)) { in omap_gem_free_object()
1296 if (omap_obj->pages) in omap_gem_free_object()
1301 omap_obj->vaddr, omap_obj->paddr); in omap_gem_free_object()
1302 } else if (omap_obj->vaddr) { in omap_gem_free_object()
1303 vunmap(omap_obj->vaddr); in omap_gem_free_object()
1308 if (!(omap_obj->flags & OMAP_BO_EXT_SYNC)) in omap_gem_free_object()
1309 kfree(omap_obj->sync); in omap_gem_free_object()
1345 struct omap_gem_object *omap_obj; in omap_gem_new() local
1379 omap_obj = kzalloc(sizeof(*omap_obj), GFP_KERNEL); in omap_gem_new()
1380 if (!omap_obj) in omap_gem_new()
1384 list_add(&omap_obj->mm_list, &priv->obj_list); in omap_gem_new()
1387 obj = &omap_obj->base; in omap_gem_new()
1393 omap_obj->vaddr = dma_alloc_writecombine(dev->dev, size, in omap_gem_new()
1394 &omap_obj->paddr, GFP_KERNEL); in omap_gem_new()
1395 if (omap_obj->vaddr) in omap_gem_new()
1400 omap_obj->flags = flags; in omap_gem_new()
1403 omap_obj->width = gsize.tiled.width; in omap_gem_new()
1404 omap_obj->height = gsize.tiled.height; in omap_gem_new()