Lines Matching refs:dmem

112 	struct nouveau_dmem *dmem = chunk->drm->dmem;
114 spin_lock(&dmem->lock);
115 page->zone_device_data = dmem->free_pages;
116 dmem->free_pages = page;
124 spin_unlock(&dmem->lock);
164 if (drm->dmem->migrate.copy_func(drm, 1, NOUVEAU_APER_HOST, *dma_addr,
183 struct nouveau_dmem *dmem = drm->dmem;
212 nouveau_fence_new(dmem->migrate.chan, false, &fence);
274 mutex_lock(&drm->dmem->mutex);
275 list_add(&chunk->list, &drm->dmem->chunks);
276 mutex_unlock(&drm->dmem->mutex);
280 spin_lock(&drm->dmem->lock);
282 page->zone_device_data = drm->dmem->free_pages;
283 drm->dmem->free_pages = page;
287 spin_unlock(&drm->dmem->lock);
313 spin_lock(&drm->dmem->lock);
314 if (drm->dmem->free_pages) {
315 page = drm->dmem->free_pages;
316 drm->dmem->free_pages = page->zone_device_data;
319 spin_unlock(&drm->dmem->lock);
321 spin_unlock(&drm->dmem->lock);
345 if (drm->dmem == NULL)
348 mutex_lock(&drm->dmem->mutex);
349 list_for_each_entry(chunk, &drm->dmem->chunks, list) {
354 mutex_unlock(&drm->dmem->mutex);
362 if (drm->dmem == NULL)
365 mutex_lock(&drm->dmem->mutex);
366 list_for_each_entry(chunk, &drm->dmem->chunks, list)
368 mutex_unlock(&drm->dmem->mutex);
376 if (drm->dmem == NULL)
379 mutex_lock(&drm->dmem->mutex);
381 list_for_each_entry_safe(chunk, tmp, &drm->dmem->chunks, list) {
391 mutex_unlock(&drm->dmem->mutex);
399 struct nvif_push *push = drm->dmem->migrate.chan->chan.push;
472 struct nvif_push *push = drm->dmem->migrate.chan->chan.push;
532 drm->dmem->migrate.copy_func = nvc0b5_migrate_copy;
533 drm->dmem->migrate.clear_func = nvc0b5_migrate_clear;
534 drm->dmem->migrate.chan = drm->ttm.chan;
551 if (!(drm->dmem = kzalloc(sizeof(*drm->dmem), GFP_KERNEL)))
554 drm->dmem->drm = drm;
555 mutex_init(&drm->dmem->mutex);
556 INIT_LIST_HEAD(&drm->dmem->chunks);
557 mutex_init(&drm->dmem->mutex);
558 spin_lock_init(&drm->dmem->lock);
563 kfree(drm->dmem);
564 drm->dmem = NULL;
590 if (drm->dmem->migrate.copy_func(drm, 1,
595 if (drm->dmem->migrate.clear_func(drm, page_size(dpage),
631 nouveau_fence_new(drm->dmem->migrate.chan, false, &fence);
663 if (drm->dmem == NULL)