]> git.pld-linux.org Git - packages/X11-driver-firegl.git/commitdiff
- fix building on kernel 2.6.11 (http://ati.cchtml.com/show_bug.cgi?id=110)
authorSÅ‚awomir Paszkiewicz <paszczus@pld-linux.org>
Sun, 13 Mar 2005 10:34:44 +0000 (10:34 +0000)
committercvs2git <feedback@pld-linux.org>
Sun, 24 Jun 2012 12:13:13 +0000 (12:13 +0000)
Changed files:
    X11-driver-firegl-kernel-2_6_11.patch -> 1.1

X11-driver-firegl-kernel-2_6_11.patch [new file with mode: 0644]

diff --git a/X11-driver-firegl-kernel-2_6_11.patch b/X11-driver-firegl-kernel-2_6_11.patch
new file mode 100644 (file)
index 0000000..61f0270
--- /dev/null
@@ -0,0 +1,213 @@
+--- X11-driver-firegl-8.10.19/lib/modules/fglrx/build_mod/agpgart_be.c.orig    2005-01-31 19:50:00.000000000 +0200
++++ X11-driver-firegl-8.10.19/lib/modules/fglrx/build_mod/agpgart_be.c 2005-03-02 22:19:25.000000000 +0200
+@@ -261,6 +261,12 @@
+ #define firegl_pci_find_class(class,from) pci_find_class(class,from)
+ #endif
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,11) 
++#define firegl_pci_find_class(class,from) pci_get_class(class,from)
++#else
++#define firegl_pci_find_class(class,from) pci_find_class(class,from)
++#endif
++
+ int agp_backend_acquire(void)
+ {
+       if (agp_bridge.type == NOT_SUPPORTED) {
+@@ -4075,6 +4081,13 @@
+                       }
+               }
+       }
++
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,11) 
++            // the reference count has been increased in agp_backend_initialize.
++        if (device)
++            pci_dev_put(device); 
++#endif
++
+       /*
+        * PASS3: Figure out the 8X/4X setting and enable the
+        *        target (our motherboard chipset).
+@@ -5283,6 +5296,12 @@
+             pci_dev_put(device); 
+ #endif
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,11) 
++            // the reference count has been increased in agp_backend_initialize.
++        if (device)
++            pci_dev_put(device); 
++#endif
++
+     return(0); /* success */
+ }
+@@ -7428,6 +7447,11 @@
+               return rc;
+       }
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,11)
++        // decrease the reference count.
++        pci_dev_put(agp_bridge.dev);
++#endif
++
+       if (agp_bridge.needs_scratch_page == TRUE) {
+               agp_bridge.scratch_page = agp_bridge.agp_alloc_page();
+--- X11-driver-firegl-8.10.19/lib/modules/fglrx/build_mod/firegl_public.c.orig 2005-02-10 04:15:00.000000000 +0200
++++ X11-driver-firegl-8.10.19/lib/modules/fglrx/build_mod/firegl_public.c      2005-03-02 22:21:42.000000000 +0200
+@@ -1664,13 +1664,22 @@
+ {
+     unsigned long pte_linear;
+     pgd_t* pgd_p;
++#if LINUX_VERSION_CODE > 0x02060a     /* KERNEL_VERSION(2,6,11) */
++    pud_t* pud_p;
++#endif
+     pmd_t* pmd_p;
+     pte_t* pte_p;
+     pte_t  pte;
+     pte_linear = VMALLOC_VMADDR(virtual_addr);  // convert to pte linear address (x86 => nop)
+     pgd_p = pgd_offset(mm, pte_linear);
++#if LINUX_VERSION_CODE > 0x02060a     /* KERNEL_VERSION(2,6,11) */
++    pud_p = pud_offset(pgd_p, pte_linear);
++    pmd_p = pmd_offset(pud_p, pte_linear);
++#else
+     pmd_p = pmd_offset(pgd_p, pte_linear);
++#endif
++
+ #ifndef FGL_ATOMIC_PTE
+ #if LINUX_VERSION_CODE > 0x020500
+     pte_p = pte_offset_kernel(pmd_p, pte_linear);
+@@ -2100,6 +2109,9 @@
+                                                    unsigned long address)
+ {
+     pgd_t* pgd_p;
++#if LINUX_VERSION_CODE > 0x02060a     /* KERNEL_VERSION(2,6,11) */
++    pud_t* pud_p;
++#endif
+     pmd_t* pmd_p;
+     pte_t* pte_p;
+     pte_t  pte;
+@@ -2200,7 +2212,12 @@
+         /* alternatively we could generate a NOPAGE_OOM "out of memory" */
+     }
+     /*  locate medium level page table (x86 => nop) */
++#if LINUX_VERSION_CODE > 0x02060a     /* KERNEL_VERSION(2,6,11) */
++    pud_p = pud_offset(pgd_p, pte_linear);
++    pmd_p = pmd_offset(pud_p, pte_linear);
++#else
+     pmd_p = pmd_offset(pgd_p, pte_linear);
++#endif
+     if (!pmd_present(*pmd_p))
+     {
+         __KE_ERROR("FATAL ERROR: User queue buffer not present! (pmd)\n");
+@@ -2564,13 +2581,21 @@
+ {
+     unsigned long pte_linear;
+     pgd_t* pgd_p;
++#if LINUX_VERSION_CODE > 0x02060a     /* KERNEL_VERSION(2,6,11) */
++    pud_t* pud_p;
++#endif
+     pmd_t* pmd_p;
+     pte_t* pte_p;
+     pte_t  pte;
+     pte_linear = VMALLOC_VMADDR(virtual_addr);  // convert to pte linear address (x86 => nop)
+     pgd_p = pgd_offset(vma->vm_mm, pte_linear);
++#if LINUX_VERSION_CODE > 0x02060a     /* KERNEL_VERSION(2,6,11) */
++    pud_p = pud_offset(pgd_p, pte_linear);
++    pmd_p = pmd_offset(pud_p, pte_linear);
++#else
+     pmd_p = pmd_offset(pgd_p, pte_linear);
++#endif
+ #ifndef FGL_ATOMIC_PTE
+ #if LINUX_VERSION_CODE > 0x020500
+     pte_p = pte_offset_kernel(pmd_p, pte_linear);
+@@ -2719,13 +2744,13 @@
+ #endif /* __ia64__ */
+                 vma->vm_flags |= VM_IO; /* not in core dump */
+             }
+-            if (remap_page_range(FGL_VMA_API_PASS
++            if (remap_pfn_range(FGL_VMA_API_PASS
+                                  vma->vm_start,
+-                                 __ke_vm_offset(vma),
++                                 __ke_vm_offset(vma) >> PAGE_SHIFT,
+                                  vma->vm_end - vma->vm_start,
+                                  vma->vm_page_prot))
+             {
+-                __KE_DEBUG("remap_page_range failed\n");
++                __KE_DEBUG("remap_pfn_range failed\n");
+                 return -EAGAIN;
+             }
+             vma->vm_flags |= VM_SHM | VM_RESERVED; /* Don't swap */
+@@ -2786,13 +2811,13 @@
+                       {
+                               if (__ke_vm_offset(vma) >= __pa(high_memory))
+                                       vma->vm_flags |= VM_IO; /* not in core dump */
+-                              if (remap_page_range(FGL_VMA_API_PASS
++                              if (remap_pfn_range(FGL_VMA_API_PASS
+                                                                        vma->vm_start,
+-                                                                       __ke_vm_offset(vma),
++                                                                       __ke_vm_offset(vma) >> PAGE_SHIFT,
+                                                                        vma->vm_end - vma->vm_start,
+                                                                        vma->vm_page_prot))
+                               {
+-                                      __KE_DEBUG("remap_page_range failed\n");
++                                      __KE_DEBUG("remap_pfn_range failed\n");
+                                       return -EAGAIN;
+                               }
+ #ifdef __x86_64__
+@@ -2823,13 +2848,13 @@
+                       {
+                               if (__ke_vm_offset(vma) >= __pa(high_memory))
+                                       vma->vm_flags |= VM_IO; /* not in core dump */
+-                              if (remap_page_range(FGL_VMA_API_PASS
++                              if (remap_pfn_range(FGL_VMA_API_PASS
+                                                                        vma->vm_start,
+-                                                                       __ke_vm_offset(vma),
++                                                                       __ke_vm_offset(vma) >> PAGE_SHIFT,
+                                                                        vma->vm_end - vma->vm_start,
+                                                                        vma->vm_page_prot))
+                               {
+-                                      __KE_DEBUG("remap_page_range failed\n");
++                                      __KE_DEBUG("remap_pfn_range failed\n");
+                                       return -EAGAIN;
+                               }
+ #ifdef __x86_64__
+@@ -2873,6 +2898,37 @@
+ #if LINUX_VERSION_CODE >= 0x020400
++#if LINUX_VERSION_CODE >= 0x02060b
++
++typedef struct {
++       void                    (*free_memory)(struct agp_memory *);
++       struct agp_memory *     (*allocate_memory)(size_t, u32);
++       int                     (*bind_memory)(struct agp_memory *, off_t);
++       int                     (*unbind_memory)(struct agp_memory *);
++       void                    (*enable)(u32);
++       int                     (*acquire)(void);
++       void                    (*release)(void);
++       int                     (*copy_info)(struct agp_kern_info *);
++} drm_agp_t;
++
++static const drm_agp_t drm_agp = {
++       &agp_free_memory,
++       &agp_allocate_memory,
++       &agp_bind_memory,
++       &agp_unbind_memory,
++       &agp_enable,
++       &agp_backend_acquire,
++       &agp_backend_release,
++       &agp_copy_info
++};
++#undef DRM_AGP_MODULE_GET
++#undef DRM_AGP_MODULE_PUT
++
++#define DRM_AGP_MODULE_GET      &drm_agp
++#define DRM_AGP_MODULE_PUT 
++
++#endif
++
+ static const drm_agp_t  *drm_agp_module_stub = NULL;
+ #define AGP_FUNCTIONS         8
This page took 0.099656 seconds and 4 git commands to generate.