Lines Matching defs:dev
59 panfrost_bo_alloc(struct panfrost_device *dev, size_t size,
66 if (dev->kernel_version->version_major > 1 ||
67 dev->kernel_version->version_minor >= 1) {
74 ret = drmIoctl(dev->fd, DRM_IOCTL_PANFROST_CREATE_BO, &create_bo);
80 bo = pan_lookup_bo(dev, create_bo.handle);
87 bo->dev = dev;
98 ret = drmIoctl(bo->dev->fd, DRM_IOCTL_GEM_CLOSE, &gem_close);
140 ret = drmIoctl(bo->dev->fd, DRM_IOCTL_PANFROST_WAIT_BO, &req);
176 pan_bucket(struct panfrost_device *dev, unsigned size)
178 return &dev->bo_cache.buckets[pan_bucket_index(size)];
187 panfrost_bo_cache_fetch(struct panfrost_device *dev,
191 pthread_mutex_lock(&dev->bo_cache.lock);
192 struct list_head *bucket = pan_bucket(dev, size);
217 ret = drmIoctl(dev->fd, DRM_IOCTL_PANFROST_MADVISE, &madv);
227 pthread_mutex_unlock(&dev->bo_cache.lock);
233 panfrost_bo_cache_evict_stale_bos(struct panfrost_device *dev)
239 &dev->bo_cache.lru, lru_link) {
263 struct panfrost_device *dev = bo->dev;
265 if (bo->flags & PAN_BO_SHARED || dev->debug & PAN_DBG_NO_CACHE)
269 pthread_mutex_lock(&dev->bo_cache.lock);
271 struct list_head *bucket = pan_bucket(dev, MAX2(bo->size, 4096));
279 drmIoctl(dev->fd, DRM_IOCTL_PANFROST_MADVISE, &madv);
285 list_addtail(&bo->lru_link, &dev->bo_cache.lru);
292 panfrost_bo_cache_evict_stale_bos(dev);
298 pthread_mutex_unlock(&dev->bo_cache.lock);
310 struct panfrost_device *dev)
312 pthread_mutex_lock(&dev->bo_cache.lock);
313 for (unsigned i = 0; i < ARRAY_SIZE(dev->bo_cache.buckets); ++i) {
314 struct list_head *bucket = &dev->bo_cache.buckets[i];
323 pthread_mutex_unlock(&dev->bo_cache.lock);
335 ret = drmIoctl(bo->dev->fd, DRM_IOCTL_PANFROST_MMAP_BO, &mmap_bo);
342 bo->dev->fd, mmap_bo.offset);
347 bo->ptr.cpu, (long long)bo->size, bo->dev->fd,
367 panfrost_bo_create(struct panfrost_device *dev, size_t size,
389 bo = panfrost_bo_cache_fetch(dev, size, flags, label, true);
391 bo = panfrost_bo_alloc(dev, size, flags, label);
393 bo = panfrost_bo_cache_fetch(dev, size, flags, label, false);
411 if (dev->debug & (PAN_DBG_TRACE | PAN_DBG_SYNC)) {
440 struct panfrost_device *dev = bo->dev;
442 pthread_mutex_lock(&dev->bo_map_lock);
451 if (dev->debug & (PAN_DBG_TRACE | PAN_DBG_SYNC))
461 pthread_mutex_unlock(&dev->bo_map_lock);
465 panfrost_bo_import(struct panfrost_device *dev, int fd)
472 ret = drmPrimeFDToHandle(dev->fd, fd, &gem_handle);
475 pthread_mutex_lock(&dev->bo_map_lock);
476 bo = pan_lookup_bo(dev, gem_handle);
478 if (!bo->dev) {
480 ret = drmIoctl(dev->fd, DRM_IOCTL_PANFROST_GET_BO_OFFSET, &get_bo_offset);
483 bo->dev = dev;
491 pthread_mutex_unlock(&dev->bo_map_lock);
513 pthread_mutex_unlock(&dev->bo_map_lock);
526 int ret = drmIoctl(bo->dev->fd, DRM_IOCTL_PRIME_HANDLE_TO_FD, &args);