Displaying 4 results from an estimated 4 matches for "nouveau_mem_free_block".
2008 Mar 09
0
[PATCH 3/4] nouveau: move nouveau_map_block() call to nouveau_addmap()
...k->map);
+ int err;
+
+ err = drm_addmap(dev, block->start, block->size, type, 0, &block->map);
+ if (err)
+ return err;
+
+ return nouveau_map_block(dev, block);
}
static int nouveau_addmap_pci(struct drm_device *dev, struct mem_block *block)
@@ -646,11 +651,6 @@ alloc_ok:
nouveau_mem_free_block(block);
return NULL;
}
-
- if (!nouveau_map_block(dev, block)) {
- nouveau_mem_free_block(block);
- return NULL;
- }
}
DRM_DEBUG("allocated %lld bytes at 0x%llx type=0x%08x\n", block->size, block->start, block->flags);
2008 Mar 09
0
[PATCH 4/4] nouveau: clean up nouveau_mem_alloc function
...= nouveau_addmap_agp(dev, block);
+ break;
+ case NOUVEAU_MEM_FB:
+ err = nouveau_addmap_fb(dev, block);
+ break;
+ case NOUVEAU_MEM_PCI:
+ err = nouveau_addmap_pci(dev, block);
+ break;
+ default:
+ err = -EINVAL;
+ break;
+ };
+ if (err)
+ goto error;
+
+ return block;
+error:
+ nouveau_mem_free_block(block);
+ return NULL;
+}
+
+static struct mem_block *
+nouveau_mem_alloc_pci(struct drm_device *dev, uint64_t size, int alignment,
+ int flags, struct drm_file *file_priv)
+{
+ struct drm_nouveau_private *dev_priv = dev->dev_private;
+
+ return __nouveau_mem_alloc(dev, NOUVEAU_MEM_PCI, d...
2008 Mar 09
0
[PATCH 1/4] nouveau: add nouveau_addmap_{agp, fb, pci} functions
...DRM_FRAME_BUFFER,
- 0, &block->map);
+ ret = nouveau_addmap_fb(dev, block);
else if (type == NOUVEAU_MEM_PCI)
- ret = drm_addmap(dev, block->start, block->size,
- _DRM_SCATTER_GATHER, 0, &block->map);
+ ret = nouveau_addmap_pci(dev, block);
if (ret) {
nouveau_mem_free_block(block);
2008 Mar 09
0
[PATCH 2/4] nouveau: add nouveau_map_block function
...nt ret = 0;
- block->flags|=NOUVEAU_MEM_MAPPED;
if (type == NOUVEAU_MEM_AGP)
ret = nouveau_addmap_agp(dev, block);
@@ -635,12 +647,10 @@ alloc_ok:
return NULL;
}
- entry = drm_find_matching_map(dev, block->map);
- if (!entry) {
+ if (!nouveau_map_block(dev, block)) {
nouveau_mem_free_block(block);
return NULL;
}
- block->map_handle = entry->user_token;
}
DRM_DEBUG("allocated %lld bytes at 0x%llx type=0x%08x\n", block->size, block->start, block->flags);