summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'x11-drivers/ati-drivers/files')
-rw-r--r--x11-drivers/ati-drivers/files/09ati2
-rw-r--r--x11-drivers/ati-drivers/files/8.8.25-smp.patch12
-rw-r--r--x11-drivers/ati-drivers/files/8.8.25-via-amd64.patch37
-rw-r--r--x11-drivers/ati-drivers/files/digest-ati-drivers-8.14.13-r22
-rw-r--r--x11-drivers/ati-drivers/files/digest-ati-drivers-8.14.13-r32
-rw-r--r--x11-drivers/ati-drivers/files/digest-ati-drivers-8.14.13-r42
-rw-r--r--x11-drivers/ati-drivers/files/digest-ati-drivers-8.14.13-r52
-rw-r--r--x11-drivers/ati-drivers/files/digest-ati-drivers-8.16.202
-rw-r--r--x11-drivers/ati-drivers/files/digest-ati-drivers-8.16.20-r12
-rw-r--r--x11-drivers/ati-drivers/files/digest-ati-drivers-8.18.62
-rw-r--r--x11-drivers/ati-drivers/files/digest-ati-drivers-8.18.6-r12
-rw-r--r--x11-drivers/ati-drivers/files/digest-ati-drivers-8.18.82
-rw-r--r--x11-drivers/ati-drivers/files/digest-ati-drivers-8.18.8-r12
-rw-r--r--x11-drivers/ati-drivers/files/fglrx-2.6.12-inter_module_get.patch23
-rw-r--r--x11-drivers/ati-drivers/files/fglrx-2.6.12-pci_name.patch71
-rw-r--r--x11-drivers/ati-drivers/files/fglrx-2.6.14-access_ok.patch16
-rw-r--r--x11-drivers/ati-drivers/files/fglrx-2.6.14-compat_ioctl.patch104
-rw-r--r--x11-drivers/ati-drivers/files/fglrx-8.14.13-alt-2.6.12-agp.patch98
-rw-r--r--x11-drivers/ati-drivers/files/ioctl32.patch14
-rw-r--r--x11-drivers/ati-drivers/files/p1.patch53
20 files changed, 450 insertions, 0 deletions
diff --git a/x11-drivers/ati-drivers/files/09ati b/x11-drivers/ati-drivers/files/09ati
new file mode 100644
index 000000000000..4b0639956072
--- /dev/null
+++ b/x11-drivers/ati-drivers/files/09ati
@@ -0,0 +1,2 @@
+PATH=/opt/ati/bin
+ROOTPATH=/opt/ati/bin \ No newline at end of file
diff --git a/x11-drivers/ati-drivers/files/8.8.25-smp.patch b/x11-drivers/ati-drivers/files/8.8.25-smp.patch
new file mode 100644
index 000000000000..9914a8d9fde0
--- /dev/null
+++ b/x11-drivers/ati-drivers/files/8.8.25-smp.patch
@@ -0,0 +1,12 @@
+--- firegl_public.c.bak 2004-12-10 11:35:14.091477807 +0100
++++ firegl_public.c 2004-12-10 11:07:12.000000000 +0100
+@@ -32,6 +32,9 @@
+ // ============================================================
+ #include <linux/version.h>
+ #include <linux/autoconf.h>
++#ifdef CONFIG_SMP
++#define __SMP__
++#endif
+
+ #if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,71)
+ #define EXPORT_SYMTAB 1
diff --git a/x11-drivers/ati-drivers/files/8.8.25-via-amd64.patch b/x11-drivers/ati-drivers/files/8.8.25-via-amd64.patch
new file mode 100644
index 000000000000..78473847404d
--- /dev/null
+++ b/x11-drivers/ati-drivers/files/8.8.25-via-amd64.patch
@@ -0,0 +1,37 @@
+--- agpgart_be.c 2005-01-18 15:02:14.639429632 +0100
++++ agpgart_be.c 2005-01-18 14:54:34.000000000 +0100
+@@ -6167,6 +6167,22 @@
+ "Via",
+ "Apollo P4M266",
+ via_generic_setup },
++
++ { PCI_DEVICE_ID_VIA_8380_0,
++ PCI_VENDOR_ID_VIA,
++ AMD_8151,
++ "AMD",
++ "On-CPU GART",
++ amd_8151_setup },
++
++ { PCI_DEVICE_ID_VIA_8385_0,
++ PCI_VENDOR_ID_VIA,
++ AMD_8151,
++ "AMD",
++ "On-CPU GART",
++ amd_8151_setup },
++
++
+ { 0,
+ PCI_VENDOR_ID_VIA,
+ VIA_GENERIC,
+--- agp.h 2005-01-18 15:02:14.644428872 +0100
++++ agp.h 2005-01-18 14:55:33.000000000 +0100
+@@ -202,6 +202,9 @@
+ #define SIS_GENERIC _X(SIS_GENERIC)
+ #define AMD_GENERIC _X(AMD_GENERIC)
+ #define AMD_IRONGATE _X(AMD_IRONGATE)
++ #define PCI_DEVICE_ID_VIA_8380_0 0x0204
++ #define PCI_DEVICE_ID_VIA_8385_0 0x3188
++
+ // #define AMD_IGD4 _X(AMD_IGD4)
+ // #define AMD_IGD4_2P _X(AMD_IGD4_2P)
+ #define AMD_761 _X(AMD_761)
diff --git a/x11-drivers/ati-drivers/files/digest-ati-drivers-8.14.13-r2 b/x11-drivers/ati-drivers/files/digest-ati-drivers-8.14.13-r2
new file mode 100644
index 000000000000..5c1bc0c5f191
--- /dev/null
+++ b/x11-drivers/ati-drivers/files/digest-ati-drivers-8.14.13-r2
@@ -0,0 +1,2 @@
+MD5 5187698cee2edf3dee89bc3eee5729c1 fglrx_6_8_0-8.14.13-1.i386.rpm 8765541
+MD5 fc6c39cdf856955359c6f7087a78581c fglrx64_6_8_0-8.14.13-1.x86_64.rpm 14977136
diff --git a/x11-drivers/ati-drivers/files/digest-ati-drivers-8.14.13-r3 b/x11-drivers/ati-drivers/files/digest-ati-drivers-8.14.13-r3
new file mode 100644
index 000000000000..5c1bc0c5f191
--- /dev/null
+++ b/x11-drivers/ati-drivers/files/digest-ati-drivers-8.14.13-r3
@@ -0,0 +1,2 @@
+MD5 5187698cee2edf3dee89bc3eee5729c1 fglrx_6_8_0-8.14.13-1.i386.rpm 8765541
+MD5 fc6c39cdf856955359c6f7087a78581c fglrx64_6_8_0-8.14.13-1.x86_64.rpm 14977136
diff --git a/x11-drivers/ati-drivers/files/digest-ati-drivers-8.14.13-r4 b/x11-drivers/ati-drivers/files/digest-ati-drivers-8.14.13-r4
new file mode 100644
index 000000000000..5c1bc0c5f191
--- /dev/null
+++ b/x11-drivers/ati-drivers/files/digest-ati-drivers-8.14.13-r4
@@ -0,0 +1,2 @@
+MD5 5187698cee2edf3dee89bc3eee5729c1 fglrx_6_8_0-8.14.13-1.i386.rpm 8765541
+MD5 fc6c39cdf856955359c6f7087a78581c fglrx64_6_8_0-8.14.13-1.x86_64.rpm 14977136
diff --git a/x11-drivers/ati-drivers/files/digest-ati-drivers-8.14.13-r5 b/x11-drivers/ati-drivers/files/digest-ati-drivers-8.14.13-r5
new file mode 100644
index 000000000000..5c1bc0c5f191
--- /dev/null
+++ b/x11-drivers/ati-drivers/files/digest-ati-drivers-8.14.13-r5
@@ -0,0 +1,2 @@
+MD5 5187698cee2edf3dee89bc3eee5729c1 fglrx_6_8_0-8.14.13-1.i386.rpm 8765541
+MD5 fc6c39cdf856955359c6f7087a78581c fglrx64_6_8_0-8.14.13-1.x86_64.rpm 14977136
diff --git a/x11-drivers/ati-drivers/files/digest-ati-drivers-8.16.20 b/x11-drivers/ati-drivers/files/digest-ati-drivers-8.16.20
new file mode 100644
index 000000000000..1f351a19affd
--- /dev/null
+++ b/x11-drivers/ati-drivers/files/digest-ati-drivers-8.16.20
@@ -0,0 +1,2 @@
+MD5 db413c61d9d00a96c6a103fe9cf697d5 fglrx_6_8_0-8.16.20-1.i386.rpm 11463523
+MD5 71524b4690b1df108c2cc5d37f945856 fglrx64_6_8_0-8.16.20-1.x86_64.rpm 16328353
diff --git a/x11-drivers/ati-drivers/files/digest-ati-drivers-8.16.20-r1 b/x11-drivers/ati-drivers/files/digest-ati-drivers-8.16.20-r1
new file mode 100644
index 000000000000..1f351a19affd
--- /dev/null
+++ b/x11-drivers/ati-drivers/files/digest-ati-drivers-8.16.20-r1
@@ -0,0 +1,2 @@
+MD5 db413c61d9d00a96c6a103fe9cf697d5 fglrx_6_8_0-8.16.20-1.i386.rpm 11463523
+MD5 71524b4690b1df108c2cc5d37f945856 fglrx64_6_8_0-8.16.20-1.x86_64.rpm 16328353
diff --git a/x11-drivers/ati-drivers/files/digest-ati-drivers-8.18.6 b/x11-drivers/ati-drivers/files/digest-ati-drivers-8.18.6
new file mode 100644
index 000000000000..b9a1b3a7e463
--- /dev/null
+++ b/x11-drivers/ati-drivers/files/digest-ati-drivers-8.18.6
@@ -0,0 +1,2 @@
+MD5 7d7b2397e5423ce6584b2efe7730754e fglrx_6_8_0-8.18.6-1.i386.rpm 12102933
+MD5 4d2a647586cfac6734a8903d563fd8b0 fglrx64_6_8_0-8.18.6-1.x86_64.rpm 17028932
diff --git a/x11-drivers/ati-drivers/files/digest-ati-drivers-8.18.6-r1 b/x11-drivers/ati-drivers/files/digest-ati-drivers-8.18.6-r1
new file mode 100644
index 000000000000..c59c131d4be8
--- /dev/null
+++ b/x11-drivers/ati-drivers/files/digest-ati-drivers-8.18.6-r1
@@ -0,0 +1,2 @@
+MD5 fbe9d229241a496bd6b4786b17a6cb5f ati-driver-installer-8.18.6-i386.run 62368301
+MD5 b1ab61da644117028b1d911ac20ba709 ati-driver-installer-8.18.6-x86_64.run 53491900
diff --git a/x11-drivers/ati-drivers/files/digest-ati-drivers-8.18.8 b/x11-drivers/ati-drivers/files/digest-ati-drivers-8.18.8
new file mode 100644
index 000000000000..3b61133f0845
--- /dev/null
+++ b/x11-drivers/ati-drivers/files/digest-ati-drivers-8.18.8
@@ -0,0 +1,2 @@
+MD5 0618d75904a4b2dd3a2dc822c093a116 ati-driver-installer-8.18.8-i386.run 62367182
+MD5 71da0e3a3f01b401017d85c3cf16d715 ati-driver-installer-8.18.8-x86_64.run 53490938
diff --git a/x11-drivers/ati-drivers/files/digest-ati-drivers-8.18.8-r1 b/x11-drivers/ati-drivers/files/digest-ati-drivers-8.18.8-r1
new file mode 100644
index 000000000000..3b61133f0845
--- /dev/null
+++ b/x11-drivers/ati-drivers/files/digest-ati-drivers-8.18.8-r1
@@ -0,0 +1,2 @@
+MD5 0618d75904a4b2dd3a2dc822c093a116 ati-driver-installer-8.18.8-i386.run 62367182
+MD5 71da0e3a3f01b401017d85c3cf16d715 ati-driver-installer-8.18.8-x86_64.run 53490938
diff --git a/x11-drivers/ati-drivers/files/fglrx-2.6.12-inter_module_get.patch b/x11-drivers/ati-drivers/files/fglrx-2.6.12-inter_module_get.patch
new file mode 100644
index 000000000000..47433de8fae7
--- /dev/null
+++ b/x11-drivers/ati-drivers/files/fglrx-2.6.12-inter_module_get.patch
@@ -0,0 +1,23 @@
+--- build_mod.orig/firegl_public.c 2005-06-19 21:37:23.000000000 +0200
++++ build_mod/firegl_public.c 2005-06-19 21:22:49.000000000 +0200
+@@ -343,17 +343,17 @@
+ struct firegl_drm_stub_info_t *firegl_stub_pointer = NULL;
+ #define inter_module_put(x)
+ #define inter_module_unregister(x)
+-#define inter_module_get(x) firegl_stub_pointer
++#define inter_module_get_request(x,y) firegl_stub_pointer
+ #define inter_module_register(x,y,z) do { firegl_stub_pointer = z; } while (0)
+ /* This is a kludge for backward compatibility that is only useful in DRM(stub_open) */
+ #define fops_put(fops) MOD_DEC_USE_COUNT
+ #define fops_get(fops) (fops); MOD_INC_USE_COUNT
+ #endif // LINUX_VERSION_CODE < 0x020400
+
+-#define DRM_MODULE_GET (firegl_drm_stub_info_t *)inter_module_get("drm")
++#define DRM_MODULE_GET (firegl_drm_stub_info_t *)inter_module_get_request("drm", "drm")
+ #define DRM_MODULE_PUT inter_module_put("drm")
+
+-#define DRM_AGP_MODULE_GET (drm_agp_t *)inter_module_get("drm_agp")
++#define DRM_AGP_MODULE_GET (drm_agp_t *)inter_module_get_request("drm_agp","drm_agp")
+ #define DRM_AGP_MODULE_PUT inter_module_put("drm_agp")
+
+ unsigned long ATI_API_CALL __ke_cpu_to_le32(unsigned long _u)
diff --git a/x11-drivers/ati-drivers/files/fglrx-2.6.12-pci_name.patch b/x11-drivers/ati-drivers/files/fglrx-2.6.12-pci_name.patch
new file mode 100644
index 000000000000..03197a9748cb
--- /dev/null
+++ b/x11-drivers/ati-drivers/files/fglrx-2.6.12-pci_name.patch
@@ -0,0 +1,71 @@
+--- build_mod.orig/agpgart_be.c 2005-06-19 15:59:55.000000000 +0200
++++ build_mod/agpgart_be.c 2005-06-19 15:58:59.000000000 +0200
+ #if (LINUX_VERSION_CODE >= 0x020400)
+ #define FGL_PM_PRESENT
+ #else
+@@ -7083,7 +7087,7 @@
+ if ( agp_bridge.capndx )
+ {
+ printk(KERN_INFO PFX "Detected HP ZX1 AGP "
+- "chipset at %s\n", dev->slot_name);
++ "chipset at %s\n", pci_name(dev));
+ agp_bridge.type = HP_ZX1;
+ agp_bridge.dev = dev;
+ /* fill in the mode register */
+@@ -7149,7 +7153,7 @@
+ if( cap_ptr )
+ {
+ printk(KERN_INFO PFX "Detected a Via Apollo KT400 chipset in AGP v3 mode "
+- "at %s\n", dev->slot_name);
++ "at %s\n", pci_name(dev));
+
+ agp_bridge.type = VIA_APOLLO_KT400;
+ agp_bridge.dev = dev;
+@@ -7169,12 +7173,12 @@
+ if( cap_ptr )
+ {
+ printk(KERN_DEBUG PFX "Detected a Via Apollo KT400 chipset in AGP v2 compat mode "
+- "at %s\n", dev->slot_name);
++ "at %s\n", pci_name(dev));
+ }
+ else
+ {
+ printk(KERN_ERR PFX "Detected a Via Apollo KT400 chipset but no AGPv2/v3 caps found "
+- "at %s\n", dev->slot_name);
++ "at %s\n", pci_name(dev));
+ }
+ }
+ break;
+@@ -7200,7 +7204,7 @@
+ if( cap_ptr )
+ {
+ printk(KERN_INFO PFX "Detected a Via P4X400 chipset in AGP v3 mode "
+- "at %s\n", dev->slot_name);
++ "at %s\n", pci_name(dev));
+
+ agp_bridge.type = VIA_APOLLO_P4X400;
+ agp_bridge.dev = dev;
+@@ -7220,7 +7224,7 @@
+ if( cap_ptr )
+ {
+ printk(KERN_INFO PFX "Detected a Via P4X400 chipset with AGP v3.x caps in AGP v2 compatibility mode "
+- "at %s\n", dev->slot_name);
++ "at %s\n", pci_name(dev));
+
+ agp_bridge.type = VIA_APOLLO_P4X400;
+ agp_bridge.dev = dev;
+@@ -7240,12 +7244,12 @@
+ if( cap_ptr )
+ {
+ printk(KERN_DEBUG PFX "Detected a Via P4X400 chipset with AGP v2 caps in true AGP v2 mode "
+- "at %s\n", dev->slot_name);
++ "at %s\n", pci_name(dev));
+ }
+ else
+ {
+ printk(KERN_ERR PFX "Detected a Via P4X400 chipset but no AGPv2/v3 caps found "
+- "at %s\n", dev->slot_name);
++ "at %s\n", pci_name(dev));
+ }
+ }
+ break;
diff --git a/x11-drivers/ati-drivers/files/fglrx-2.6.14-access_ok.patch b/x11-drivers/ati-drivers/files/fglrx-2.6.14-access_ok.patch
new file mode 100644
index 000000000000..50f1944fe05f
--- /dev/null
+++ b/x11-drivers/ati-drivers/files/fglrx-2.6.14-access_ok.patch
@@ -0,0 +1,16 @@
+--- build_mod.orig/firegl_public.c 2005-10-22 10:35:00.000000000 +0200
++++ build_mod/firegl_public.c 2005-10-29 11:13:21.000000000 +0200
+
+@@ -1590,7 +1595,11 @@
+
+ int ATI_API_CALL __ke_verify_area(int type, const void * addr, unsigned long size)
+ {
+- return verify_area(type, addr, size);
++#ifdef access_ok
++ return access_ok(type,addr,size) ? 0 : -EFAULT;
++#else
++ return verify_area(type, addr, size);
++#endif
+ }
+
+ int ATI_API_CALL __ke_get_pci_device_info(__ke_pci_dev_t* dev, __ke_pci_device_info_t *pinfo)
diff --git a/x11-drivers/ati-drivers/files/fglrx-2.6.14-compat_ioctl.patch b/x11-drivers/ati-drivers/files/fglrx-2.6.14-compat_ioctl.patch
new file mode 100644
index 000000000000..b333b5b5dff3
--- /dev/null
+++ b/x11-drivers/ati-drivers/files/fglrx-2.6.14-compat_ioctl.patch
@@ -0,0 +1,104 @@
+--- build_mod.orig/firegl_public.c 2005-11-02 20:29:43.535048712 -0800
++++ build_mod/firegl_public.c 2005-11-02 20:27:19.013019400 -0800
+@@ -122,7 +122,6 @@
+
+ #ifdef __x86_64__
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,12)
+-#include "linux/ioctl32.h"
+ #else
+ #include "asm/ioctl32.h"
+ #endif
+@@ -191,6 +190,16 @@ _syscall3( int, modify_ldt, int, func, v
+ // ============================================================
+ /* globals */
+
++int register_ioctl32_conversion(unsigned int cmd, int (*handler)(unsigned int, unsigned int, unsigned long, struct file*));
++long realHandler_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg);
++void unregister_ioctl32_conversion(unsigned int cmd);
++struct HandlerList {
++ unsigned int cmd;
++ void *handler;
++ struct HandlerList *next;
++};
++struct HandlerList *HandlerListHead = 0x0;
++
+ char* firegl = NULL;
+ int __ke_debuglevel = 0;
+ int __ke_moduleflags = 0;
+@@ -258,6 +267,7 @@ static struct file_operations firegl_fop
+ open: ip_firegl_open,
+ release: ip_firegl_release,
+ ioctl: ip_firegl_ioctl,
++ compat_ioctl: realHandler_compat_ioctl,
+ mmap: ip_firegl_mmap,
+ };
+
+@@ -2220,10 +2230,68 @@ int ATI_API_CALL __ke_register_ioctl32_c
+ return register_ioctl32_conversion(cmd, handler);
+ }
+
++
++ int register_ioctl32_conversion(unsigned int cmd, int (*handler)(unsigned int, unsigned int, unsigned long, struct file*))
++ {
++ sizeof(struct HandlerList);
++ struct HandlerList *newHandler = kmalloc(sizeof(struct HandlerList), 0);
++ newHandler->cmd = cmd;
++ newHandler->handler = handler;
++ newHandler->next = HandlerListHead;
++ HandlerListHead = newHandler;
++ return 0;
++ }
++
++ long realHandler_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
++ {
++ int fd;
++ int (*handler)(unsigned int, unsigned int, unsigned long, struct file*);
++ struct fdtable *fdt;
++ struct HandlerList *HandlerEntry = HandlerListHead;
++
++ while(HandlerEntry->cmd != cmd){
++ if(HandlerEntry->next == 0x0){
++ return -1;
++ }
++ HandlerEntry = HandlerEntry->next;
++ }
++ handler = HandlerEntry->handler;
++ fdt = files_fdtable(current->files);
++ for(fd=0;fd<fdt->max_fds;fd++){
++ if(fdt->fd[fd] == filp){
++ return handler(fd, cmd, arg, filp);
++ }
++ }
++ return -1;
++}
++
++
++
+ void ATI_API_CALL __ke_unregister_ioctl32_conversion(unsigned int cmd)
+ {
+ unregister_ioctl32_conversion(cmd);
+ }
++
++ void unregister_ioctl32_conversion(unsigned int cmd)
++ {
++ struct HandlerList *ahead, *behind;
++ if(HandlerListHead == 0x0) return;
++ behind = HandlerListHead;
++ ahead = HandlerListHead->next;
++ if(behind->cmd == cmd){
++ HandlerListHead = ahead;
++ kfree(behind);
++ return;
++ }
++ while(ahead->cmd != cmd){
++ behind = ahead;
++ ahead = ahead->next;
++ }
++ behind->next = ahead->next;
++ kfree(ahead);
++ return;
++ }
++
+ #endif
+
+ /* agp_memory related routine for IGP */
diff --git a/x11-drivers/ati-drivers/files/fglrx-8.14.13-alt-2.6.12-agp.patch b/x11-drivers/ati-drivers/files/fglrx-8.14.13-alt-2.6.12-agp.patch
new file mode 100644
index 000000000000..beda866414f5
--- /dev/null
+++ b/x11-drivers/ati-drivers/files/fglrx-8.14.13-alt-2.6.12-agp.patch
@@ -0,0 +1,98 @@
+--- build_mod/firegl_public.c.alt-2.6.12-agp 2005-06-26 19:35:34 +0400
++++ build_mod/firegl_public.c 2005-06-26 19:41:28 +0400
+@@ -1002,8 +1002,16 @@ void* ATI_API_CALL __ke_high_memory(void
+ return high_memory;
+ }
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,12)
++/* Saved pci_dev pointer for the new agpgart API */
++static struct pci_dev *fglrx_pci_dev;
++#endif
++
+ int ATI_API_CALL __ke_pci_enable_device(__ke_pci_dev_t* dev)
+ {
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,12)
++ fglrx_pci_dev = (struct pci_dev *)dev;
++#endif
+ return (pci_enable_device( (struct pci_dev*)(void *)dev ));
+ }
+
+@@ -2865,6 +2873,68 @@ typedef struct {
+ int (*copy_info)(struct agp_kern_info *);
+ } drm_agp_t;
+
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,12)
++/*
++ * Kernel 2.6.12 has new agpgart API with support for multiple AGP bridges, but
++ * the fglrx core does not know about this yet. For now, just emulate the old
++ * API.
++ */
++
++static struct agp_bridge_data *fglrx_agp_bridge;
++
++static int fglrx_compat_agp_backend_acquire(void)
++{
++ fglrx_agp_bridge = agp_backend_acquire(fglrx_pci_dev);
++ if (!fglrx_agp_bridge)
++ return -ENODEV;
++ return 0;
++}
++
++static void fglrx_compat_agp_backend_release(void)
++{
++ agp_backend_release(fglrx_agp_bridge);
++}
++
++static struct agp_memory *fglrx_compat_agp_allocate_memory(size_t page_count,
++ u32 type)
++{
++ return agp_allocate_memory(fglrx_agp_bridge, page_count, type);
++}
++
++static void fglrx_compat_agp_enable(u32 mode)
++{
++ agp_enable(fglrx_agp_bridge, mode);
++}
++
++static int fglrx_compat_agp_copy_info(struct agp_kern_info *info)
++{
++ if (!fglrx_agp_bridge) {
++ fglrx_agp_bridge = agp_find_bridge(fglrx_pci_dev);
++ if (!fglrx_agp_bridge) {
++ memset(info, 0, sizeof(struct agp_kern_info));
++ info->chipset = NOT_SUPPORTED;
++ return -ENODEV;
++ }
++ }
++ return agp_copy_info(fglrx_agp_bridge, info);
++}
++
++static const drm_agp_t drm_agp = {
++ &agp_free_memory,
++ &fglrx_compat_agp_allocate_memory,
++ &agp_bind_memory,
++ &agp_unbind_memory,
++ &fglrx_compat_agp_enable,
++ &fglrx_compat_agp_backend_acquire,
++ &fglrx_compat_agp_backend_release,
++ &fglrx_compat_agp_copy_info
++};
++
++#else /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,12) */
++/*
++ * For 2.6.11 we can just use the agpgart functions directly.
++ */
++
+ static const drm_agp_t drm_agp = {
+ &agp_free_memory,
+ &agp_allocate_memory,
+@@ -2875,6 +2945,9 @@ static const drm_agp_t drm_agp = {
+ &agp_backend_release,
+ &agp_copy_info
+ };
++
++#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,12) */
++
+ #undef DRM_AGP_MODULE_GET
+ #undef DRM_AGP_MODULE_PUT
+
diff --git a/x11-drivers/ati-drivers/files/ioctl32.patch b/x11-drivers/ati-drivers/files/ioctl32.patch
new file mode 100644
index 000000000000..f5ba9bd60982
--- /dev/null
+++ b/x11-drivers/ati-drivers/files/ioctl32.patch
@@ -0,0 +1,14 @@
+--- firegl_public.c.orig 2005-06-18 17:42:41.000000000 -0300
++++ firegl_public.c 2005-06-18 17:43:46.000000000 -0300
+@@ -116,7 +116,11 @@
+ #endif
+
+ #ifdef __x86_64__
++#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,12)
++#include "asm/ioctl.h"
++#else
+ #include "asm/ioctl32.h"
++#endif
+ #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,2)
+ #include "linux/syscalls.h"
+ #endif
diff --git a/x11-drivers/ati-drivers/files/p1.patch b/x11-drivers/ati-drivers/files/p1.patch
new file mode 100644
index 000000000000..0d25d6ba8cdf
--- /dev/null
+++ b/x11-drivers/ati-drivers/files/p1.patch
@@ -0,0 +1,53 @@
+
+
+2005-03-02 22:32 diff -lu or.c agpgart_be.c Page 1
+
+
+--- or.c 2005-01-31 19:50:00.000000000 +0200
++++ agpgart_be.c 2005-03-02 22:19:25.000000000 +0200
+@@ -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();
+
+
+
+
+
+
+
+