Displaying 2 results from an estimated 2 matches for "nouveau_bo_kalloc".
Did you mean:
nouveau_bo_alloc
2009 Dec 24
1
[PATCH] nouveau: when nouveau_bo_map fails you expect it to not be mapped
...vbo || bo->map)
+ if (!nvbo)
return -EINVAL;
+ /* People should not double map, let's make sure they will notice. */
+ if (bo->map) {
+ ret = -EINVAL;
+ goto out;
+ }
+
if (!nouveau_bo_allocated(nvbo)) {
if (nvbo->flags & (NOUVEAU_BO_VRAM | NOUVEAU_BO_GART)) {
ret = nouveau_bo_kalloc(nvbo, NULL);
if (ret)
- return ret;
+ goto out;
}
if (!nouveau_bo_allocated(nvbo)) {
ret = nouveau_bo_ualloc(nvbo);
if (ret)
- return ret;
+ goto out;
}
}
@@ -439,19 +445,22 @@ nouveau_bo_map_range(struct nouveau_bo *bo, uint32_t delta, uint32_t size,
} else...
2010 Jan 17
0
[PATCH] libdrm/nouveau: Support nested bo mapping
...elta, uint32_t size,
struct nouveau_bo_priv *nvbo = nouveau_bo(bo);
int ret;
- if (!nvbo || bo->map)
+ if (!nvbo)
return -EINVAL;
+ if(nvbo->map_count++)
+ return 0;
+
if (!nouveau_bo_allocated(nvbo)) {
if (nvbo->flags & (NOUVEAU_BO_VRAM | NOUVEAU_BO_GART)) {
ret = nouveau_bo_kalloc(nvbo, NULL);
@@ -470,6 +473,9 @@ nouveau_bo_unmap(struct nouveau_bo *bo)
{
struct nouveau_bo_priv *nvbo = nouveau_bo(bo);
+ if(--nvbo->map_count)
+ return 0;
+
if (bo->map && !nvbo->sysmem) {
struct nouveau_device_priv *nvdev = nouveau_device(bo->device);
struct dr...