struct drm_gem_object *pscnv_gem_new(struct drm_device *dev, uint64_t size, uint32_t flags, uint32_t tile_flags, uint32_t cookie, uint32_t *user) { int i; struct drm_gem_object *obj; struct pscnv_bo *vo; vo = pscnv_mem_alloc(dev, size, flags, tile_flags, cookie); if (!vo) return 0; obj = drm_gem_object_alloc(dev, vo->size); if (!obj) { pscnv_mem_free(vo); return 0; } obj->driver_private = vo; vo->gem = obj; if (user) for (i = 0; i < ARRAY_SIZE(vo->user); i++) vo->user[i] = user[i]; else for (i = 0; i < ARRAY_SIZE(vo->user); i++) vo->user[i] = 0; return obj; }
struct drm_gem_object *pscnv_gem_new(struct drm_device *dev, uint64_t size, uint32_t flags, uint32_t tile_flags, uint32_t cookie, uint32_t *user) { int i; struct drm_gem_object *obj; struct pscnv_bo *vo; vo = pscnv_mem_alloc(dev, size, flags, tile_flags, cookie); if (!vo) return 0; obj = drm_gem_object_alloc(dev, vo->size); if (!obj) { pscnv_mem_free(vo); return 0; } #ifndef PSCNV_KAPI_DRM_GEM_OBJECT_HANDLE_COUNT atomic_inc(&obj->handle_count); #endif obj->driver_private = vo; vo->gem = obj; if (user) for (i = 0; i < ARRAY_SIZE(vo->user); i++) vo->user[i] = user[i]; else for (i = 0; i < ARRAY_SIZE(vo->user); i++) vo->user[i] = 0; return obj; }