Lines Matching defs:dev
38 struct etna_device *dev;
51 dev = calloc(sizeof(*dev), 1);
52 if (!dev) {
56 dev->drm_version = ETNA_DRM_VERSION(version->version_major,
62 if (!dev)
65 p_atomic_set(&dev->refcnt, 1);
66 dev->fd = fd;
67 dev->handle_table = _mesa_hash_table_create(NULL, _mesa_hash_u32, _mesa_key_u32_equal);
68 dev->name_table = _mesa_hash_table_create(NULL, _mesa_hash_u32, _mesa_key_u32_equal);
69 etna_bo_cache_init(&dev->bo_cache);
71 ret = drmCommandWriteRead(dev->fd, DRM_ETNAVIV_GET_PARAM, &req, sizeof(req));
75 list_inithead(&dev->zombie_list);
76 util_vma_heap_init(&dev->address_space, req.value, _4GB - req.value);
77 dev->use_softpin = 1;
80 return dev;
88 struct etna_device *dev = etna_device_new(dup_fd);
90 if (dev)
91 dev->closefd = 1;
95 return dev;
98 struct etna_device *etna_device_ref(struct etna_device *dev)
100 p_atomic_inc(&dev->refcnt);
102 return dev;
105 static void etna_device_del_impl(struct etna_device *dev)
107 etna_bo_cache_cleanup(&dev->bo_cache, 0);
109 if (dev->use_softpin) {
110 etna_bo_kill_zombies(dev);
111 util_vma_heap_finish(&dev->address_space);
114 _mesa_hash_table_destroy(dev->handle_table, NULL);
115 _mesa_hash_table_destroy(dev->name_table, NULL);
117 if (dev->closefd)
118 close(dev->fd);
120 free(dev);
123 void etna_device_del_locked(struct etna_device *dev)
127 if (!p_atomic_dec_zero(&dev->refcnt))
130 etna_device_del_impl(dev);
133 void etna_device_del(struct etna_device *dev)
135 if (!p_atomic_dec_zero(&dev->refcnt))
139 etna_device_del_impl(dev);
143 int etna_device_fd(struct etna_device *dev)
145 return dev->fd;
148 bool etnaviv_device_softpin_capable(struct etna_device *dev)
150 return !!dev->use_softpin;
153 uint32_t etnaviv_device_version(struct etna_device *dev)
155 return dev->drm_version;