Deleted Added
full compact
33c33
< __FBSDID("$FreeBSD: stable/10/sys/dev/drm2/ttm/ttm_agp_backend.c 247835 2013-03-05 09:49:34Z kib $");
---
> __FBSDID("$FreeBSD: stable/10/sys/dev/drm2/ttm/ttm_agp_backend.c 275408 2014-12-02 14:09:54Z tijl $");
44c44,45
< struct agp_memory *mem;
---
> vm_offset_t offset;
> vm_page_t *pages;
54,55c55
< struct agp_memory *mem;
< int ret, cached = (bo_mem->placement & TTM_PL_FLAG_CACHED);
---
> int ret;
58,62d57
< mem = agp_alloc_memory(agp_be->bridge, AGP_USER_MEMORY, ttm->num_pages);
< if (unlikely(mem == NULL))
< return -ENOMEM;
<
< mem->page_count = 0;
69c64
< mem->pages[mem->page_count++] = page;
---
> agp_be->pages[i] = page;
71d65
< agp_be->mem = mem;
73,76c67,69
< mem->is_flushed = 1;
< mem->type = (cached) ? AGP_USER_CACHED_MEMORY : AGP_USER_MEMORY;
<
< ret = agp_bind_memory(mem, node->start);
---
> agp_be->offset = node->start * PAGE_SIZE;
> ret = -agp_bind_pages(agp_be->bridge, agp_be->pages,
> ttm->num_pages << PAGE_SHIFT, agp_be->offset);
78c71
< pr_err("AGP Bind memory failed\n");
---
> printf("[TTM] AGP Bind memory failed\n");
87,93c80,81
< if (agp_be->mem) {
< if (agp_be->mem->is_bound)
< return agp_unbind_memory(agp_be->mem);
< agp_free_memory(agp_be->mem);
< agp_be->mem = NULL;
< }
< return 0;
---
> return -agp_unbind_pages(agp_be->bridge, ttm->num_pages << PAGE_SHIFT,
> agp_be->offset);
100,101d87
< if (agp_be->mem)
< ttm_agp_unbind(ttm);
102a89
> free(agp_be->pages, M_TTM_AGP);
121d107
< agp_be->mem = NULL;
125a112
> free(agp_be, M_TTM_AGP);
128a116,119
> agp_be->offset = 0;
> agp_be->pages = malloc(agp_be->ttm.num_pages * sizeof(*agp_be->pages),
> M_TTM_AGP, M_WAITOK);
>