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()
825 ret = tiler_release(omap_obj->block); in omap_gem_put_paddr()
830 omap_obj->paddr = 0; in omap_gem_put_paddr()
831 omap_obj->block = NULL; in omap_gem_put_paddr()
845 struct omap_gem_object *omap_obj = to_omap_bo(obj); in omap_gem_rotated_paddr() local
849 if ((omap_obj->paddr_cnt > 0) && omap_obj->block && in omap_gem_rotated_paddr()
850 (omap_obj->flags & OMAP_BO_TILED)) { in omap_gem_rotated_paddr()
851 *paddr = tiler_tsptr(omap_obj->block, orient, x, y); in omap_gem_rotated_paddr()
861 struct omap_gem_object *omap_obj = to_omap_bo(obj); in omap_gem_tiled_stride() local
863 if (omap_obj->flags & OMAP_BO_TILED) in omap_gem_tiled_stride()
864 ret = tiler_stride(gem2fmt(omap_obj->flags), orient); in omap_gem_tiled_stride()
873 struct omap_gem_object *omap_obj = to_omap_bo(obj); in get_pages() local
876 if (is_shmem(obj) && !omap_obj->pages) { in get_pages()
885 *pages = omap_obj->pages; in get_pages()
905 struct omap_gem_object *omap_obj = to_omap_bo(obj); in omap_gem_get_pages() local
906 if (!omap_obj->pages) in omap_gem_get_pages()
908 *pages = omap_obj->pages; in omap_gem_get_pages()
933 struct omap_gem_object *omap_obj = to_omap_bo(obj); in omap_gem_vaddr() local
935 if (!omap_obj->vaddr) { in omap_gem_vaddr()
940 omap_obj->vaddr = vmap(pages, obj->size >> PAGE_SHIFT, in omap_gem_vaddr()
943 return omap_obj->vaddr; in omap_gem_vaddr()
952 struct omap_gem_object *omap_obj; in omap_gem_resume() local
955 list_for_each_entry(omap_obj, &priv->obj_list, mm_list) { in omap_gem_resume()
956 if (omap_obj->block) { in omap_gem_resume()
957 struct drm_gem_object *obj = &omap_obj->base; in omap_gem_resume()
959 WARN_ON(!omap_obj->pages); /* this can't happen */ in omap_gem_resume()
960 ret = tiler_pin(omap_obj->block, in omap_gem_resume()
961 omap_obj->pages, npages, in omap_gem_resume()
962 omap_obj->roll, true); in omap_gem_resume()
977 struct omap_gem_object *omap_obj = to_omap_bo(obj); in omap_gem_describe() local
983 omap_obj->flags, obj->name, obj->refcount.refcount.counter, in omap_gem_describe()
984 off, &omap_obj->paddr, omap_obj->paddr_cnt, in omap_gem_describe()
985 omap_obj->vaddr, omap_obj->roll); in omap_gem_describe()
987 if (omap_obj->flags & OMAP_BO_TILED) { in omap_gem_describe()
988 seq_printf(m, " %dx%d", omap_obj->width, omap_obj->height); in omap_gem_describe()
989 if (omap_obj->block) { in omap_gem_describe()
990 struct tcm_area *area = &omap_obj->block->area; in omap_gem_describe()
1004 struct omap_gem_object *omap_obj; in omap_gem_describe_objects() local
1008 list_for_each_entry(omap_obj, list, mm_list) { in omap_gem_describe_objects()
1009 struct drm_gem_object *obj = &omap_obj->base; in omap_gem_describe_objects()
1025 struct omap_gem_object *omap_obj; member
1042 struct omap_gem_object *omap_obj = waiter->omap_obj; in is_waiting() local
1044 (omap_obj->sync->write_complete < waiter->write_target)) in is_waiting()
1047 (omap_obj->sync->read_complete < waiter->read_target)) in is_waiting()
1076 struct omap_gem_object *omap_obj = to_omap_bo(obj); in sync_op() local
1081 if (!omap_obj->sync) { in sync_op()
1082 omap_obj->sync = kzalloc(sizeof(*omap_obj->sync), GFP_ATOMIC); in sync_op()
1083 if (!omap_obj->sync) { in sync_op()
1091 omap_obj->sync->read_pending++; in sync_op()
1093 omap_obj->sync->write_pending++; in sync_op()
1096 omap_obj->sync->read_complete++; in sync_op()
1098 omap_obj->sync->write_complete++; in sync_op()
1144 struct omap_gem_object *omap_obj = to_omap_bo(obj); in omap_gem_op_sync() local
1146 if (omap_obj->sync) { in omap_gem_op_sync()
1154 waiter->omap_obj = omap_obj; in omap_gem_op_sync()
1156 waiter->read_target = omap_obj->sync->read_pending; in omap_gem_op_sync()
1157 waiter->write_target = omap_obj->sync->write_pending; in omap_gem_op_sync()
1197 struct omap_gem_object *omap_obj = to_omap_bo(obj); in omap_gem_op_async() local
1198 if (omap_obj->sync) { in omap_gem_op_async()
1205 waiter->omap_obj = omap_obj; in omap_gem_op_async()
1207 waiter->read_target = omap_obj->sync->read_pending; in omap_gem_op_async()
1208 waiter->write_target = omap_obj->sync->write_pending; in omap_gem_op_async()
1238 struct omap_gem_object *omap_obj = to_omap_bo(obj); in omap_gem_set_sync_object() local
1243 if ((omap_obj->flags & OMAP_BO_EXT_SYNC) && !syncobj) { in omap_gem_set_sync_object()
1245 syncobj = kmemdup(omap_obj->sync, sizeof(*omap_obj->sync), in omap_gem_set_sync_object()
1251 omap_obj->flags &= ~OMAP_BO_EXT_SYNC; in omap_gem_set_sync_object()
1252 omap_obj->sync = syncobj; in omap_gem_set_sync_object()
1253 } else if (syncobj && !(omap_obj->flags & OMAP_BO_EXT_SYNC)) { in omap_gem_set_sync_object()
1255 if (omap_obj->sync) { in omap_gem_set_sync_object()
1256 memcpy(syncobj, omap_obj->sync, sizeof(*omap_obj->sync)); in omap_gem_set_sync_object()
1257 kfree(omap_obj->sync); in omap_gem_set_sync_object()
1259 omap_obj->flags |= OMAP_BO_EXT_SYNC; in omap_gem_set_sync_object()
1260 omap_obj->sync = syncobj; in omap_gem_set_sync_object()
1275 struct omap_gem_object *omap_obj = to_omap_bo(obj); in omap_gem_free_object() local
1282 list_del(&omap_obj->mm_list); in omap_gem_free_object()
1290 WARN_ON(omap_obj->paddr_cnt > 0); in omap_gem_free_object()
1293 if (!(omap_obj->flags & OMAP_BO_EXT_MEM)) { in omap_gem_free_object()
1294 if (omap_obj->pages) in omap_gem_free_object()
1299 omap_obj->vaddr, omap_obj->paddr); in omap_gem_free_object()
1300 } else if (omap_obj->vaddr) { in omap_gem_free_object()
1301 vunmap(omap_obj->vaddr); in omap_gem_free_object()
1306 if (!(omap_obj->flags & OMAP_BO_EXT_SYNC)) in omap_gem_free_object()
1307 kfree(omap_obj->sync); in omap_gem_free_object()
1343 struct omap_gem_object *omap_obj; in omap_gem_new() local
1377 omap_obj = kzalloc(sizeof(*omap_obj), GFP_KERNEL); in omap_gem_new()
1378 if (!omap_obj) in omap_gem_new()
1381 obj = &omap_obj->base; in omap_gem_new()
1387 omap_obj->vaddr = dma_alloc_writecombine(dev->dev, size, in omap_gem_new()
1388 &omap_obj->paddr, GFP_KERNEL); in omap_gem_new()
1389 if (!omap_obj->vaddr) { in omap_gem_new()
1390 kfree(omap_obj); in omap_gem_new()
1399 list_add(&omap_obj->mm_list, &priv->obj_list); in omap_gem_new()
1402 omap_obj->flags = flags; in omap_gem_new()
1405 omap_obj->width = gsize.tiled.width; in omap_gem_new()
1406 omap_obj->height = gsize.tiled.height; in omap_gem_new()