summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'x11-drivers/ati-drivers/files/8.42.3/ati-drivers-2.6.23-2.patch')
-rw-r--r--x11-drivers/ati-drivers/files/8.42.3/ati-drivers-2.6.23-2.patch277
1 files changed, 0 insertions, 277 deletions
diff --git a/x11-drivers/ati-drivers/files/8.42.3/ati-drivers-2.6.23-2.patch b/x11-drivers/ati-drivers/files/8.42.3/ati-drivers-2.6.23-2.patch
deleted file mode 100644
index 5f1a34f..0000000
--- a/x11-drivers/ati-drivers/files/8.42.3/ati-drivers-2.6.23-2.patch
+++ /dev/null
@@ -1,277 +0,0 @@
-diff -urN common/lib/modules/fglrx/build_mod/firegl_public.c~ common/lib/modules/fglrx/build_mod/firegl_public.c
---- common/lib/modules/fglrx/build_mod/firegl_public.c~ 2007-10-22 11:30:01.000000000 -0500
-+++ common/lib/modules/fglrx/build_mod/firegl_public.c 2007-10-24 13:31:08.000000000 -0500
-@@ -796,7 +796,7 @@
-
- // since privdev->pcidev is acquired in X server, use pdev
- // directly here to allow suspend/resume without X server start.
-- firegl_pci_save_state(pdev, privdev);
-+ firegl_pci_save_state((__ke_pci_dev_t*)pdev, privdev);
- pci_disable_device(pdev);
- PMSG_EVENT(pdev->dev.power.power_state) = state;
- }
-@@ -838,7 +838,7 @@
-
- // PCI config space needs to be restored very early, in particular
- // before pci_set_master!
-- firegl_pci_restore_state(pdev, privdev);
-+ firegl_pci_restore_state((__ke_pci_dev_t*)pdev, privdev);
-
- if (pci_enable_device(pdev))
- {
-@@ -2016,7 +2016,11 @@
-
- __ke_pci_dev_t* ATI_API_CALL __ke_pci_find_device (unsigned int vendor, unsigned int dev, __ke_pci_dev_t* from)
- {
-- return (__ke_pci_dev_t*)pci_find_device( vendor, dev, (struct pci_dev *)(void *)from );
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,21)
-+ return (__ke_pci_dev_t*)pci_get_device( vendor, dev, (struct pci_dev *)(void *)from );
-+#else
-+ return (__ke_pci_dev_t*)pci_find_device( vendor, dev, (struct pci_dev *)(void *)from );
-+#endif
- }
-
- void* ATI_API_CALL __ke_malloc(__ke_size_t size)
-@@ -2487,16 +2491,80 @@
- }
-
- #ifndef ptep_clear_flush_dirty
--#define ptep_clear_flush_dirty(__vma, __address, __ptep) \
--({ \
-- int __dirty = ptep_test_and_clear_dirty(__ptep); \
-- if (__dirty) \
-- flush_tlb_page(__vma, __address); \
-- __dirty; \
--})
-+/** \brief Test and clear the "dirty" bit in the page table entry
-+ *
-+ * \param vma Pointer to the memory region structure
-+ * \param addr Virtual address covered by vma
-+ * \param ptep Pointer to the table entry structure
-+ *
-+ * \return Old value of the "dirty" flag
-+ *
-+ */
-+static inline int ptep_clear_flush_dirty(struct vm_area_struct *vma, unsigned long addr, pte_t *ptep)
-+{
-+ int ret = 0;
-+
-+ DBG_ENTER("0x%08X, 0x%08X, 0x%08X->0x%08X", vma, addr, ptep, *ptep);
-+
-+ if (pte_dirty(*ptep))
-+ {
-+#ifdef __x86_64__
-+ DBG_TRACE("Test and clear bit %d in 0x%08X", _PAGE_BIT_DIRTY, ptep->pte);
-+ ret = test_and_clear_bit(_PAGE_BIT_DIRTY, &ptep->pte);
-+#else
-+ DBG_TRACE("Test and clear bit %d in 0x%08X", _PAGE_BIT_DIRTY, ptep->pte_low);
-+ ret = test_and_clear_bit(_PAGE_BIT_DIRTY, &ptep->pte_low);
-+
-+ // Since we modify PTE directly, it needs to inform the hypervisor
-+ if (ret)
-+ {
-+ pte_update(vma->vm_mm, addr, ptep);
-+ }
-+#endif
-+ }
-+
-+ DBG_TRACE("0x%08X->0x%08X", ptep, *ptep);
-+
-+ // Flush Translation Lookaside Buffers
-+ if (ret)
-+ {
-+ flush_tlb_page(vma, addr);
-+ }
-+
-+ DBG_LEAVE("%d", ret);
-+
-+ return ret;
-+}
-+#endif
-+
-+#ifdef pte_offset_atomic
-+#define PTE_OFFSET_FUNC pte_offset_atomic
-+#define PTE_UNMAP_FUNC(p) pte_kunmap(p)
-+#else
-+#ifdef pte_offset_map
-+#define PTE_OFFSET_FUNC pte_offset_map
-+#define PTE_UNMAP_FUNC(p) pte_unmap(p)
-+#else
-+#ifdef pte_offset_kernel
-+#define PTE_OFFSET_FUNC pte_offset_kernel
-+#define PTE_UNMAP_FUNC(p) do {} while (0)
-+#else
-+#define PTE_OFFSET_FUNC pte_offset
-+#define PTE_UNMAP_FUNC(p) do {} while (0)
-+#endif
-+#endif
- #endif
-
--int ATI_API_CALL __ke_vm_test_and_clear_dirty(struct mm_struct* mm, unsigned long virtual_addr)
-+/** \brief Test and clear the "dirty" bit in the page table entry referred by
-+ * the virtual address
-+ *
-+ * \param mm Pointer to the memory descriptor structure
-+ * \param virtual_addr Virtual address
-+ *
-+ * \return Old value of the "dirty" flag on success or negative on error
-+ *
-+ */
-+int ATI_API_CALL KCL_TestAndClearPageDirtyFlag(struct mm_struct* mm, unsigned long virtual_addr)
- {
- int ret = -1; // init with page not present
- pgd_t* pgd_p;
-@@ -2530,37 +2598,16 @@
- }
- __KE_DEBUG("pmd_p=0x%08lx\n", (unsigned long)pmd_p);
-
--#ifdef pte_offset_atomic
-- pte_p = pte_offset_atomic(pmd_p, virtual_addr);
-- if (pte_present(*pte_p))
-- ret = (ptep_clear_flush_dirty(vma, virtual_addr, pte_p) ? 1 : 0);
-- else
-- __KE_DEBUG("page not exists!\n");
-- pte_kunmap(pte_p);
--#else
--#ifdef pte_offset_map
-- pte_p = pte_offset_map(pmd_p, virtual_addr);
-- if (pte_present(*pte_p))
-- ret = (ptep_clear_flush_dirty(vma, virtual_addr, pte_p) ? 1 : 0);
-- else
-- __KE_DEBUG("page not exists!\n");
-- pte_unmap(pte_p);
--#else
--#ifdef pte_offset_kernel
-- pte_p = pte_offset_kernel(pmd_p, virtual_addr);
-- if (pte_present(*pte_p))
-- ret = (ptep_clear_flush_dirty(vma, virtual_addr, pte_p) ? 1 : 0);
-- else
-- __KE_DEBUG("page not exists!\n");
--#else
-- pte_p = pte_offset(pmd_p, virtual_addr);
-+ pte_p = PTE_OFFSET_FUNC(pmd_p, virtual_addr);
- if (pte_present(*pte_p))
-+ {
- ret = (ptep_clear_flush_dirty(vma, virtual_addr, pte_p) ? 1 : 0);
-+ }
- else
-+ {
- __KE_DEBUG("page not exists!\n");
--#endif
--#endif
--#endif
-+ }
-+ PTE_UNMAP_FUNC(pte_p);
-
- if (debuglevel > 2)
- {
-@@ -2946,20 +2993,35 @@
- #else
- static void ATI_API_CALL (*irq_handler_func)(int, void*, void*); /* function pointer variable */
-
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
- static irqreturn_t ke_irq_handler_wrap(int irq, void *arg1, struct pt_regs *regs)
- {
- irq_handler_func(irq, arg1, regs);
- return IRQ_HANDLED;
- }
--
--int ATI_API_CALL __ke_request_irq(unsigned int irq,
-+#else
-+static irqreturn_t ke_irq_handler_wrap(int irq, void *arg1)
-+{
-+ irq_handler_func(irq, arg1, (void *)0);
-+ return IRQ_HANDLED;
-+}
-+#endif
-+
-+int ATI_API_CALL __ke_request_irq(unsigned int irq,
- void (*ATI_API_CALL handler)(int, void *, void *),
- const char *dev_name, void *dev_id)
- {
- irq_handler_func = handler;
-- return request_irq(irq,
-+ return request_irq(
-+ irq,
- ke_irq_handler_wrap,
-- SA_SHIRQ, dev_name, dev_id);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
-+ SA_SHIRQ,
-+#else
-+ IRQF_SHARED,
-+#endif
-+ dev_name,
-+ dev_id);
- }
-
- void ATI_API_CALL __ke_free_irq(unsigned int irq, void *dev_id)
-@@ -3530,12 +3592,10 @@
- #else
- *phys_address = pte_val(pte) & (u64)((u64)PAGE_MASK | (u64)0xf<<32);
- #endif
-- sprintf(buf, "0x%Lx %c%c%c%c%c%c\n",
-+ sprintf(buf, "0x%Lx %c%c%c%c\n",
- *phys_address,
- pte_present (pte) ? 'p' : '-',
-- pte_read (pte) ? 'r' : '-',
- pte_write (pte) ? 'w' : '-',
-- pte_exec (pte) ? 'x' : '-',
- pte_dirty (pte) ? 'd' : '-',
- pte_young (pte) ? 'a' : '-');
- }
-@@ -5436,7 +5496,11 @@
- /** \brief Type definition of the structure describing Slab Cache object */
- typedef struct tag_kasSlabCache_t
- {
-- kmem_cache_t* cache; /* OS slab cache object */
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)
-+ struct kmem_cache *cache; /* OS slab cache object */
-+#else
-+ kmem_cache_t *cache; /* OS slab cache object */
-+#endif
- spinlock_t lock; /* OS spinlock object protecting the cache */
- unsigned int routine_type; /* Type of routine the cache might be accessed from */
- char name[14]; /* Cache object name (kernel 2.4 restricts its length to 19 chars) */
-@@ -5482,8 +5546,12 @@
- DBG_TRACE("creating slab object '%s'", slabcache_obj->name);
-
- if ((slabcache_obj->cache =
-- kmem_cache_create(slabcache_obj->name, iEntrySize, 0, 0, NULL, NULL)))
-- {
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
-+ kmem_cache_create(slabcache_obj->name, iEntrySize, 0, 0, NULL, NULL)))
-+#else
-+ kmem_cache_create(slabcache_obj->name, iEntrySize, 0, 0, NULL)))
-+#endif
-+{
- ret = 1;
- }
-
-diff -urN common/lib/modules/fglrx/build_mod/firegl_public.h~ common/lib/modules/fglrx/build_mod/firegl_public.h
---- common/lib/modules/fglrx/build_mod/firegl_public.h~ 2007-10-22 11:30:01.000000000 -0500
-+++ common/lib/modules/fglrx/build_mod/firegl_public.h 2007-10-24 13:31:08.000000000 -0500
-@@ -241,9 +241,14 @@
- /*****************************************************************************/
-
- typedef unsigned long __ke_dev_t;
--typedef unsigned long __ke_size_t;
- typedef unsigned long __ke_off_t;
-+#ifdef __x86_64__
- typedef long __ke_ssize_t;
-+typedef unsigned long __ke_size_t;
-+#else
-+typedef int __ke_ssize_t;
-+typedef unsigned int __ke_size_t;
-+#endif
- typedef unsigned char __ke_u8;
- typedef unsigned short __ke_u16;
- typedef unsigned int __ke_u32;
-@@ -594,7 +599,7 @@
- extern char* ATI_API_CALL __ke_strchr(const char *s, int c);
- extern int ATI_API_CALL __ke_sprintf(char* buf, const char* fmt, ...);
- extern int ATI_API_CALL __ke_snprintf(char* buf, size_t size, const char* fmt, ...);
--extern int ATI_API_CALL __ke_vm_test_and_clear_dirty(struct mm_struct* mm, unsigned long virtual_addr);
-+extern int ATI_API_CALL KCL_TestAndClearPageDirtyFlag(struct mm_struct* mm, unsigned long virtual_addr);
- extern unsigned long ATI_API_CALL __ke_do_mmap(struct file * file, unsigned long addr, unsigned long len, unsigned long pgoff);
- extern int ATI_API_CALL __ke_do_munmap(unsigned long addr, unsigned long len);
- extern void* ATI_API_CALL __ke_vmap(unsigned long *pagelist, unsigned int count);