Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=kernel2624.git;a=commitdiff;h=00f38ee7aa987c186a5a3c8d4c004566b88a907f
commit 00f38ee7aa987c186a5a3c8d4c004566b88a907f Author: Miklos Vajna <[EMAIL PROTECTED]> Date: Tue Jan 29 01:17:28 2008 +0100 fglrx-8.42.3-8-i686 updated fglrx-firegl_public.c.patch to build with kernel-2.6.24 diff --git a/source/x11-extra/fglrx/FrugalBuild b/source/x11-extra/fglrx/FrugalBuild index 40dfa50..e62ca34 100644 --- a/source/x11-extra/fglrx/FrugalBuild +++ b/source/x11-extra/fglrx/FrugalBuild @@ -4,7 +4,7 @@ pkgname=fglrx pkgver=8.42.3 -pkgrel=7 +pkgrel=8 pkgdesc="Hardware Accelerated ATi driver for xorg" url="http://www.ati.com/" # libstdc++5: no hardware acceleration without it @@ -28,12 +28,12 @@ install=$pkgname.install up2date=$pkgver source=(https://a248.e.akamai.net/f/674/9206/0/www2.ati.com/drivers/linux/ati-driver-installer-$pkgver-x86.x86_64.run \ README.Frugalware libGL.la \ - fglrx-firegl_public.c-2.6.23.patch) + fglrx-firegl_public.c-2.6.24.patch) options=([EMAIL PROTECTED] 'nodocs') sha1sums=('b8e878e846e0971d49339ee5957acc6482329510' \ 'b64a2303c77f84f5e5db13c9c8fd55f43fa9699b' \ '650973d708466f5c4c21e70c1f1f6c118b27e614' \ - '57eab429062d6cf64b19e67f2097ef2ce525edeb') + '5c88075b135bbc6700301d29736a74177b6df860') Xversion=x710 @@ -51,7 +51,7 @@ build() { cp -r $Fsrcdir/ATi/common/* $Fsrcdir/ || Fdie - patch -p0 < $Fsrcdir/fglrx-firegl_public.c-2.6.23.patch || Fdie + patch -p0 < $Fsrcdir/fglrx-firegl_public.c-2.6.24.patch || Fdie # building kernel module Fcd /lib/modules/fglrx/build_mod diff --git a/source/x11-extra/fglrx/fglrx-firegl_public.c-2.6.23.patch b/source/x11-extra/fglrx/fglrx-firegl_public.c-2.6.23.patch deleted file mode 100644 index 468f9c9..0000000 --- a/source/x11-extra/fglrx/fglrx-firegl_public.c-2.6.23.patch +++ /dev/null @@ -1,86 +0,0 @@ ---- lib/modules/fglrx/build_mod/firegl_public.c.orig 2007-08-10 23:59:21.000000000 +0200 -+++ lib/modules/fglrx/build_mod/firegl_public.c 2007-08-13 20:00:26.000000000 +0200 -@@ -214,6 +214,56 @@ - #define preempt_enable() - #endif - -+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,22) -+#if defined(__i386__) -+#define ptep_test_and_clear_dirty(vma, addr, ptep) ({ \ -+ int __ret = 0; \ -+ if (pte_dirty(*(ptep))) \ -+ __ret = test_and_clear_bit(_PAGE_BIT_DIRTY, \ -+ &(ptep)->pte_low); \ -+ if (__ret) \ -+ pte_update((vma)->vm_mm, addr, ptep); \ -+ __ret; \ -+}) -+ -+static inline int pte_read(pte_t pte) { return (pte).pte_low & _PAGE_USER; } -+static inline int pte_user(pte_t pte) { return (pte).pte_low & _PAGE_USER; } -+#ifdef CONFIG_X86_PAE -+/* -+ * Is the pte executable? -+ */ -+static inline int pte_x(pte_t pte) -+{ -+ return !(pte_val(pte) & _PAGE_NX); -+} -+ -+/* -+ * All present user-pages with !NX bit are user-executable: -+ */ -+static inline int pte_exec(pte_t pte) -+{ -+ return pte_user(pte) && pte_x(pte); -+} -+#else -+static inline int pte_exec(pte_t pte) -+{ -+ return pte_user(pte); -+} -+#endif /* PAE */ -+ -+#elif defined(__x86_64__) -+static inline int ptep_test_and_clear_dirty(struct vm_area_struct *vma, -+ unsigned long addr, pte_t *ptep) -+{ -+ if (!pte_dirty(*ptep)) -+ return 0; -+ return test_and_clear_bit(_PAGE_BIT_DIRTY, &ptep->pte); -+} -+static inline int pte_read(pte_t pte) { return pte_val(pte) & _PAGE_USER; } -+static inline int pte_exec(pte_t pte) { return !(pte_val(pte) & _PAGE_NX); } -+#endif -+#endif -+ - // ============================================================ - /* globals */ - -@@ -2356,7 +2406,7 @@ void ATI_API_CALL __ke_put_vm_page_table - #ifndef ptep_clear_flush_dirty - #define ptep_clear_flush_dirty(__vma, __address, __ptep) \ - ({ \ -- int __dirty = ptep_test_and_clear_dirty(__ptep); \ -+ int __dirty = ptep_test_and_clear_dirty(__vma, __address, __ptep); \ - if (__dirty) \ - flush_tlb_page(__vma, __address); \ - __dirty; \ -@@ -5303,7 +5353,7 @@ unsigned int ATI_API_CALL KAS_Spinlock_R - /** \brief Type definition of the structure describing Slab Cache object */ - typedef struct tag_kasSlabCache_t - { -- kmem_cache_t* cache; /* OS slab cache object */ -+ struct kmem_cache *cache; /* OS slab cache object */ - 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) */ -@@ -5349,7 +5399,7 @@ unsigned int ATI_API_CALL KAS_SlabCache_ - DBG_TRACE("creating slab object '%s'", slabcache_obj->name); - - if ((slabcache_obj->cache = -- kmem_cache_create(slabcache_obj->name, iEntrySize, 0, 0, NULL, NULL))) -+ kmem_cache_create(slabcache_obj->name, iEntrySize, 0, 0, NULL))) - { - ret = 1; - } diff --git a/source/x11-extra/fglrx/fglrx-firegl_public.c-2.6.24.patch b/source/x11-extra/fglrx/fglrx-firegl_public.c-2.6.24.patch new file mode 100644 index 0000000..740eb1f --- /dev/null +++ b/source/x11-extra/fglrx/fglrx-firegl_public.c-2.6.24.patch @@ -0,0 +1,104 @@ +--- lib/modules/fglrx/build_mod/firegl_public.c.orig 2007-08-10 23:59:21.000000000 +0200 ++++ lib/modules/fglrx/build_mod/firegl_public.c 2007-08-13 20:00:26.000000000 +0200 +@@ -214,6 +214,56 @@ + #define preempt_enable() + #endif + ++#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,22) ++#if defined(__i386__) ++#define ptep_test_and_clear_dirty(vma, addr, ptep) ({ \ ++ int __ret = 0; \ ++ if (pte_dirty(*(ptep))) \ ++ __ret = test_and_clear_bit(_PAGE_BIT_DIRTY, \ ++ &(ptep)->pte_low); \ ++ if (__ret) \ ++ pte_update((vma)->vm_mm, addr, ptep); \ ++ __ret; \ ++}) ++ ++static inline int pte_read(pte_t pte) { return (pte).pte_low & _PAGE_USER; } ++static inline int pte_user(pte_t pte) { return (pte).pte_low & _PAGE_USER; } ++#ifdef CONFIG_X86_PAE ++/* ++ * Is the pte executable? ++ */ ++static inline int pte_x(pte_t pte) ++{ ++ return !(pte_val(pte) & _PAGE_NX); ++} ++ ++/* ++ * All present user-pages with !NX bit are user-executable: ++ */ ++static inline int pte_exec(pte_t pte) ++{ ++ return pte_user(pte) && pte_x(pte); ++} ++#else ++static inline int pte_exec(pte_t pte) ++{ ++ return pte_user(pte); ++} ++#endif /* PAE */ ++ ++#elif defined(__x86_64__) ++static inline int ptep_test_and_clear_dirty(struct vm_area_struct *vma, ++ unsigned long addr, pte_t *ptep) ++{ ++ if (!pte_dirty(*ptep)) ++ return 0; ++ return test_and_clear_bit(_PAGE_BIT_DIRTY, &ptep->pte); ++} ++static inline int pte_read(pte_t pte) { return pte_val(pte) & _PAGE_USER; } ++static inline int pte_exec(pte_t pte) { return !(pte_val(pte) & _PAGE_NX); } ++#endif ++#endif ++ + // ============================================================ + /* globals */ + +@@ -2356,7 +2406,7 @@ void ATI_API_CALL __ke_put_vm_page_table + #ifndef ptep_clear_flush_dirty + #define ptep_clear_flush_dirty(__vma, __address, __ptep) \ + ({ \ +- int __dirty = ptep_test_and_clear_dirty(__ptep); \ ++ int __dirty = ptep_test_and_clear_dirty(__vma, __address, __ptep); \ + if (__dirty) \ + flush_tlb_page(__vma, __address); \ + __dirty; \ +@@ -2986,7 +2986,7 @@ + { + return request_irq(irq, + (void(*)(int, void *, struct pt_regs *))handler, +- SA_SHIRQ, dev_name, dev_id); ++ IRQF_SHARED, dev_name, dev_id); + } + + void ATI_API_CALL __ke_free_irq(unsigned int irq, void *dev_id) +@@ -3009,7 +3009,7 @@ + irq_handler_func = handler; + return request_irq(irq, + ke_irq_handler_wrap, +- SA_SHIRQ, dev_name, dev_id); ++ IRQF_SHARED, dev_name, dev_id); + } + + void ATI_API_CALL __ke_free_irq(unsigned int irq, void *dev_id) +@@ -5303,7 +5353,7 @@ unsigned int ATI_API_CALL KAS_Spinlock_R + /** \brief Type definition of the structure describing Slab Cache object */ + typedef struct tag_kasSlabCache_t + { +- kmem_cache_t* cache; /* OS slab cache object */ ++ struct kmem_cache *cache; /* OS slab cache object */ + 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) */ +@@ -5349,7 +5399,7 @@ unsigned int ATI_API_CALL KAS_SlabCache_ + DBG_TRACE("creating slab object '%s'", slabcache_obj->name); + + if ((slabcache_obj->cache = +- kmem_cache_create(slabcache_obj->name, iEntrySize, 0, 0, NULL, NULL))) ++ kmem_cache_create(slabcache_obj->name, iEntrySize, 0, 0, NULL))) + { + ret = 1; + } _______________________________________________ Frugalware-git mailing list [email protected] http://frugalware.org/mailman/listinfo/frugalware-git
