File 0001-Rename-agp_memory.memory-to-pages.patch of Package psb
From 1d00a190d1d2d80b8e3c1665c9e919201cce783d Mon Sep 17 00:00:00 2001
From: Lubomir Rintel <lkundrak@v3.sk>
Date: Sun, 8 Nov 2009 04:13:55 +0100
Subject: [PATCH 1/3] Rename agp_memory.memory to pages
Sync with upstream kernel commit
07613ba2f464f59949266f4337b75b91eb610795
---
drm_agpsupport.c | 4 ++++
drm_memory.c | 4 ++++
drm_vm.c | 8 ++++++++
3 files changed, 16 insertions(+), 0 deletions(-)
diff --git a/drm_agpsupport.c b/drm_agpsupport.c
index 5808e21..4b7b6f8 100644
--- a/drm_agpsupport.c
+++ b/drm_agpsupport.c
@@ -524,7 +524,11 @@ static int drm_agp_populate(struct drm_ttm_backend *backend,
DRM_DEBUG("Current page count is %ld\n", (long) mem->page_count);
mem->page_count = 0;
for (cur_page = pages; cur_page < last_page; ++cur_page)
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31)
mem->memory[mem->page_count++] = phys_to_gart(page_to_phys(*cur_page));
+#else
+ mem->pages[mem->page_count++] = phys_to_gart(page_to_phys(*cur_page));
+#endif
agp_be->mem = mem;
return 0;
}
diff --git a/drm_memory.c b/drm_memory.c
index becca1e..7837a88 100644
--- a/drm_memory.c
+++ b/drm_memory.c
@@ -264,7 +264,11 @@ static void *agp_remap(unsigned long offset, unsigned long size,
return NULL;
phys_addr_map =
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31)
agpmem->memory->memory + (offset - agpmem->bound) / PAGE_SIZE;
+#else
+ agpmem->memory->pages + (offset - agpmem->bound) / PAGE_SIZE;
+#endif
for (i = 0; i < num_pages; ++i)
page_map[i] = pfn_to_page(phys_addr_map[i] >> PAGE_SHIFT);
addr = vmap(page_map, num_pages, VM_IOREMAP, PAGE_AGP);
diff --git a/drm_vm.c b/drm_vm.c
index 5baefee..367c214 100644
--- a/drm_vm.c
+++ b/drm_vm.c
@@ -145,13 +145,21 @@ static int drm_do_vm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
* Get the page, inc the use count, and return it
*/
offset = (baddr - agpmem->bound) >> PAGE_SHIFT;
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31))
page = virt_to_page(__va(agpmem->memory->memory[offset]));
+#else
+ page = virt_to_page(__va(agpmem->memory->pages[offset]));
+#endif
get_page(page);
vmf->page = page;
DRM_DEBUG
("baddr = 0x%lx page = 0x%p, offset = 0x%lx, count=%d\n",
+#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,31))
baddr, __va(agpmem->memory->memory[offset]), offset,
+#else
+ baddr, __va(agpmem->memory->pages[offset]), offset,
+#endif
page_count(page));
return 0;
}
--
1.6.4.2