/* Initialize the embedded gem-object. We return a single gem-reference
* to the caller, instead of a normal nouveau_bo ttm reference. */
ret = drm_gem_object_init(dev, &nvbo->bo.base, size); if (ret) {
drm_gem_object_release(&nvbo->bo.base);
kfree(nvbo);
obj = ERR_PTR(-ENOMEM); goto unlock;
}
ret = nouveau_bo_init(nvbo, size, align, NOUVEAU_GEM_DOMAIN_GART,
sg, robj); if (ret) {
obj = ERR_PTR(ret); goto unlock;
}
obj = &nvbo->bo.base;
unlock:
dma_resv_unlock(robj); return obj;
}
int nouveau_gem_prime_pin(struct drm_gem_object *obj)
{ struct nouveau_bo *nvbo = nouveau_gem_object(obj); int ret;
/* pin buffer into GTT */
ret = nouveau_bo_pin_locked(nvbo, NOUVEAU_GEM_DOMAIN_GART, false); if (ret)
ret = -EINVAL;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.