![]() |
|
|
#1 | Advertisement (Guests Only)
Login or Register to remove this ad
|
|
The Knows Mister
Join Date: Dec 2002
Location:
Slovenia, Europe
Posts: 3,711
|
In this thread all the patches needed will be collected. If you feel any other should be here go ahead. To use them simply copy&paste the text and save it as whatever.patch. Then just copy it to /lib/modules/fglrx and execute: Code:
cd /lib/modules/fglrx/build_mod patch -p1 < ../PATCH_NAME.patch VMALLOC: Code:
diff -ruN build_mod.orig/firegl_public.c build_mod/firegl_public.c
--- build_mod.orig/firegl_public.c 2003-09-05 00:45:33.539384168 +0200
+++ build_mod/firegl_public.c 2003-09-05 00:47:13.193234480 +0200
@@ -129,7 +129,9 @@
#define pte_offset pte_offset_map
#endif
#endif
-
+#ifndef VMALLOC_VMADDR
+#define VMALLOC_VMADDR(x) ((unsigned long)(x))
+#endif
// ============================================================
#ifndef TRUE
#define TRUE 1
Code:
--- firegl_public.c_orig 2004-01-23 12:38:00.000000000 +0000
+++ firegl_public.c 2004-01-23 12:51:13.000000000 +0000
@@ -3120,7 +3120,7 @@
int __ke_amd_adv_spec_cache_feature(void)
{
-#if ( (PAGE_ATTR_FIX == 1) || (LINUX_VERSION_CODE == KERNEL_VERSION(2,4,19)) )
+#if ( (PAGE_ATTR_FIX == 1) || (LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,19)) )
/* the kernel already does provide a fix for the AMD Athlon
big page attribute / cache flush data consistency system bug on its own.
(AMD claimed that CPU cache behaviour for such pages is not specified.)
Code:
diff -Nurp ../fglrx-orig/build_mod/firegl_public.c build_mod/firegl_public.c
--- ../fglrx-orig/build_mod/firegl_public.c 2003-07-11 11:42:06.000000000 +0000
+++ build_mod/firegl_public.c 2003-08-03 16:15:57.447117216 +0000
@@ -3050,33 +3050,6 @@ static int __init have_cpuid_p(void)
int __ke_amd_adv_spec_cache_feature(void)
{
- char vendor_id[16];
- int ident;
- int family, model;
-
- /* Must have CPUID */
- if(!have_cpuid_p())
- goto donthave;
- if(cpuid_eax(0)<1)
- goto donthave;
-
- /* Must be x86 architecture */
- cpuid(0, &ident,
- (int *)&vendor_id[0],
- (int *)&vendor_id[8],
- (int *)&vendor_id[4]);
-
- if (memcmp(vendor_id, "AuthenticAMD", 12))
- goto donthave;
-
- ident = cpuid_eax(1);
- family = (ident >> 8) & 0xf;
- model = (ident >> 4) & 0xf;
- if (((family == 6) && (model >= 6)) || (family == 15)) {
- return 1;
- }
-
-donthave:
return 0;
}
Code:
--- ATITVOExtensions.c.orig 2003-11-11 17:32:14.000000000 +0000
+++ ATITVOExtensions.c 2003-12-29 19:09:46.790701616 +0000
@@ -33,68 +33,15 @@
#include <stdlib.h>
#include "ATITVOExtensions.h"
-#include "Radeon_extension_tvout.h"
+#include "TVOExt.h"
static XExtensionInfo _atitvo_info_data;
-static XExtensionInfo *atitvo_info = &_atitvo_info_data;
-static char *atitvo_extension_name = ATITVOUT_EXTENSION_NAME;
-
//////////////////////////////////////////////////////////////////////////////
// private functions
XExtDisplayInfo *info;
-// X shutdown hook function that will cleanup the opened extension
-static XEXT_GENERATE_CLOSE_DISPLAY (close_display_atitvo,
- atitvo_info)
-
-// table with X hooks
-static /* const */ XExtensionHooks atitvo_extension_hooks = {
- NULL, /* create_gc */
- NULL, /* copy_gc */
- NULL, /* flush_gc */
- NULL, /* free_gc */
- NULL, /* create_font */
- NULL, /* free_font */
- close_display_atitvo, /* close_display */
- NULL, /* wire_to_event */
- NULL, /* event_to_wire */
- NULL, /* error */
- NULL, /* error_string */
-};
-
-// find_display_atitvo - get the display info block for atitvo extension
-static XEXT_GENERATE_FIND_DISPLAY (find_display_atitvo,
- atitvo_info,
- atitvo_extension_name,
- &atitvo_extension_hooks,
- ATITVOUT_NUMBER_EVENTS,
- NULL)
-
-
-
-static int
-answerisyes(char *s)
-{
- if (s[0] == '\'') /* For fools that type the ' literally. */
- return tolower(s[1]) == 'y';
- return tolower(s[0]) == 'y';
-}
-
-
-static void
-getstring(char *s)
-{
- char *cp;
- fgets(s, 80, stdin);
- cp = strchr(s, '\n');
- if (cp)
- *cp=0;
-}
-
-
-
//////////////////////////////////////////////////////////////////////////////
// type defines
Code:
--- Makefile_orig 2004-01-24 00:00:41.000000000 +0000 +++ Makefile 2004-01-23 23:59:29.000000000 +0000 @@ -44,7 +44,7 @@ else ifneq ($(findstring $(PLATFORMTYPE), i386 i486 i586 i686), ) LIBQT_STATIC = libqt.a -LIBQT_DYN = qt +LIBQT_DYN = qt-mt LIB_DIR = lib else ifeq ($(PLATFORMTYPE), x86_64) Apply it with: Code:
cd /lib/modules/fglrx/build_mod; patch -p1 < /path/to/fglrx-3.7.6-regparm.patch This patch is needed to compile 3.7.6 with regparm patch applied and gcc-3.4.0: Code:
--- ../build_mod/firegl_public.h 2004-05-09 01:42:38.000000000 +0300 +++ firegl_public.h 2004-05-09 02:23:21.000000000 +0300 @@ -146,7 +146,7 @@ extern int IP_LINKAGE __ke_signal_pendin extern void IP_LINKAGE __ke_set_current_state_task_interruptible(void); extern void IP_LINKAGE __ke_set_current_state_task_running(void); extern void IP_LINKAGE __ke_configure_sigmask(__ke_sigset_t *pSigMask); -extern void IP_LINKAGE __ke_block_all_signals(int (*IP_LINKAGE notifier)(void *priv), void *pPriv, __ke_sigset_t *pSigMask); +extern void IP_LINKAGE __ke_block_all_signals(int (* notifier)(void *priv), void *pPriv, __ke_sigset_t *pSigMask); extern void IP_LINKAGE __ke_unblock_all_signals(void); extern unsigned long IP_LINKAGE __ke__cmpxchg(volatile void *ptr, unsigned long old, @@ -318,7 +318,7 @@ extern int IP_LINKAGE __ke_in(unsigned s extern void IP_LINKAGE __ke_enable_irq(int irq); extern void IP_LINKAGE __ke_disable_irq(int irq); -extern int IP_LINKAGE __ke_request_irq(unsigned int irq, void (*IP_LINKAGE handler)(int, void *, void *), const char *dev_name, void *dev_id); +extern int IP_LINKAGE __ke_request_irq(unsigned int irq, void (* handler)(int, void *, void *), const char *dev_name, void *dev_id); extern void IP_LINKAGE __ke_free_irq(unsigned int irq, void *dev_id); /*****************************************************************************/ @@ -395,7 +395,7 @@ unsigned long IP_LINKAGE __ke_agp_memory int IP_LINKAGE __ke_is_athlon(void); int IP_LINKAGE __ke_has_PSE(void); int IP_LINKAGE __ke_amd_adv_spec_cache_feature(void); -void IP_LINKAGE __ke_smp_call_function( void (*IP_LINKAGE func)(void *info) ); +void IP_LINKAGE __ke_smp_call_function( void (* func)(void *info) ); int IP_LINKAGE __ke_smp_processor_id(void); /*****************************************************************************/ Code:
diff -uprN build_mod-mreg_new/agpgart_be.c build_mod-mreg_new-mm/agpgart_be.c
--- build_mod-mreg_new/agpgart_be.c 2004-05-15 03:45:48.000000000 +0300
+++ build_mod-mreg_new-mm/agpgart_be.c 2004-05-15 03:18:30.000000000 +0300
@@ -1402,7 +1402,8 @@ unsigned long agp_generic_alloc_page(voi
}
#endif
- atomic_inc(&page->count);
+ //atomic_inc(&page->count);
+ get_page(page);
set_bit(PG_locked, &page->flags);
atomic_inc(&agp_bridge.current_memory_agp);
@@ -4413,7 +4414,8 @@ static unsigned long ali_alloc_page(void
if (page == NULL)
return 0;
- atomic_inc(&page->count);
+ //atomic_inc(&page->count);
+ get_page(page);
set_bit(PG_locked, &page->flags);
atomic_inc(&agp_bridge.current_memory_agp);
diff -uprN build_mod-mreg_new/firegl_public.c build_mod-mreg_new-mm/firegl_public.c
--- build_mod-mreg_new/firegl_public.c 2004-05-15 03:45:06.000000000 +0300
+++ build_mod-mreg_new-mm/firegl_public.c 2004-05-15 03:25:13.000000000 +0300
@@ -2066,7 +2066,8 @@ static vm_nopage_ret_t vm_shm_nopage(str
pMmPage = virt_to_page(kaddr);
#endif /* LINUX_VERSION_CODE < 0x020400 */
- atomic_inc(&(pMmPage->count)); /* inc usage count of page */
+ //atomic_inc(&(pMmPage->count)); /* inc usage count of page */
+ get_page(pMmPage);
#if LINUX_VERSION_CODE >= 0x020400
// __KE_DEBUG3("vm-address 0x%08lx => kernel-page-address 0x%p\n",
Code:
diff -u --recursive build_mod.old/agp.h build_mod/agp.h
--- build_mod.old/agp.h 2004-03-17 23:00:29.000000000 +0100
+++ build_mod/agp.h 2004-07-26 10:52:04.737992976 +0200
@@ -656,6 +656,9 @@
#ifndef PCI_DEVICE_ID_INTEL_865_G_1
#define PCI_DEVICE_ID_INTEL_865_G_1 0x2572 // alternate macro
#endif
+ #ifndef PCI_DEVICE_ID_INTEL_875_P_0
+ #define PCI_DEVICE_ID_INTEL_875_P_0 0x2578
+ #endif
#ifndef PCI_DEVICE_ID_INTEL_875_G_0
#define PCI_DEVICE_ID_INTEL_875_G_0 0x2578
#endif
diff -u --recursive build_mod.old/agp_backend.h build_mod/agp_backend.h
--- build_mod.old/agp_backend.h 2004-03-17 23:00:29.000000000 +0100
+++ build_mod/agp_backend.h 2004-07-26 10:52:04.737992976 +0200
@@ -119,6 +119,7 @@
_X(INTEL_I820),
_X(INTEL_I830_M),
_X(INTEL_I865_G),
+ _X(INTEL_I875_P),
_X(INTEL_I875_G),
_X(INTEL_I840),
_X(INTEL_I845),
diff -u --recursive build_mod.old/agpgart_be.c build_mod/agpgart_be.c
--- build_mod.old/agpgart_be.c 2004-07-26 10:49:19.054180744 +0200
+++ build_mod/agpgart_be.c 2004-07-26 10:52:04.739992672 +0200
@@ -5800,6 +5800,12 @@
"Intel",
"i865G",
intel_845_setup },
+ { PCI_DEVICE_ID_INTEL_875_P_0,
+ PCI_VENDOR_ID_INTEL,
+ INTEL_I875_P,
+ "Intel(R)",
+ "875P",
+ intel_845_setup },
{ PCI_DEVICE_ID_INTEL_875_G_1,
PCI_VENDOR_ID_INTEL,
INTEL_I875_G,
__________________
Other hardware: MacBook Pro 2.53GHz 13", Xbox360, iPhone 3GS 32GB
Last edited by WhO_KnOwS : Jul 26, 2004 at 04:57 AM. |
|
|
|
|
|
|
#2 |
|
Don't worry - Be happy!
Join Date: Oct 2003
Location: Crete, Hellas
Posts: 1,909
|
The AMD patch you have is the old one. Now I think that for the AMD problem you only have to apply the following: --- firegl_public.c_orig 2004-01-22 17:21:18.000000000 +0000 +++ firegl_public.c 2004-01-22 17:22:17.000000000 +0000 @@ -3120,7 +3120,7 @@ int __ke_amd_adv_spec_cache_feature(void) { -#if ( (PAGE_ATTR_FIX == 1) || (LINUX_VERSION_CODE == KERNEL_VERSION(2,4,19)) ) +#if ( (PAGE_ATTR_FIX == 1) || (LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,19)) ) /* the kernel already does provide a fix for the AMD Athlon big page attribute / cache flush data consistency system bug on its own. (AMD claimed that CPU cache behaviour for such pages is not specified.) Edit: Also maybe we should say that in case someone wants to reverse a patch, he has to use -R option.
__________________
Radeon 9500 PRO - Mobility Radeon X700 - fglrx Beta driver - Xorg head CVS Linux Santorini 2.6.16-rc2 GCC-4.1 CVS Branch In real life Papadakos Panagiotis Last edited by Mythos : Jan 22, 2004 at 10:29 AM. |
|
|
|
|
|
#3 |
|
The Knows Mister
Join Date: Dec 2002
Location:
Slovenia, Europe
Posts: 3,711
|
Done
__________________
Other hardware: MacBook Pro 2.53GHz 13", Xbox360, iPhone 3GS 32GB
|
|
|
|
| Advertisement (Guests Only) |
|
Login or Register to remove this ad
|
|
|
#4 |
|
K to the max!™
Join Date: Nov 2002
Location:
Athens, Hellas
Posts: 15,502
|
I will leave it sticky for a while and then I will add it to the important threads of this forum post. Thx guys ![]() |
|
|
|
|
|
#5 |
|
Don't worry - Be happy!
Join Date: Oct 2003
Location: Crete, Hellas
Posts: 1,909
|
The previous AMD patch wasn't applying cleanly, here is another one from a clean 3.7 firegl_public.c: Code:
--- firegl_public.c_orig 2004-01-23 12:38:00.000000000 +0000
+++ firegl_public.c 2004-01-23 12:51:13.000000000 +0000
@@ -3120,7 +3120,7 @@
int __ke_amd_adv_spec_cache_feature(void)
{
-#if ( (PAGE_ATTR_FIX == 1) || (LINUX_VERSION_CODE == KERNEL_VERSION(2,4,19)) )
+#if ( (PAGE_ATTR_FIX == 1) || (LINUX_VERSION_CODE >= KERNEL_VERSION(2,4,19)) )
/* the kernel already does provide a fix for the AMD Athlon
big page attribute / cache flush data consistency system bug on its own.
(AMD claimed that CPU cache behaviour for such pages is not specified.)
__________________
Radeon 9500 PRO - Mobility Radeon X700 - fglrx Beta driver - Xorg head CVS Linux Santorini 2.6.16-rc2 GCC-4.1 CVS Branch In real life Papadakos Panagiotis |
|
|
|
|
|
#6 |
|
The Knows Mister
Join Date: Dec 2002
Location:
Slovenia, Europe
Posts: 3,711
|
Replaced, although I don't see the difference Must be going blind...
__________________
Other hardware: MacBook Pro 2.53GHz 13", Xbox360, iPhone 3GS 32GB
|
|
|
|
|
|
#7 | |
|
Don't worry - Be happy!
Join Date: Oct 2003
Location: Crete, Hellas
Posts: 1,909
|
Quote:
Old: Code:
--- firegl_public.c_orig 2004-01-22 17:21:18.000000000 +0000 +++ firegl_public.c 2004-01-22 17:22:17.000000000 +0000 Code:
--- firegl_public.c_orig 2004-01-23 12:38:00.000000000 +0000 +++ firegl_public.c 2004-01-23 12:51:13.000000000 +0000 ![]()
__________________
Radeon 9500 PRO - Mobility Radeon X700 - fglrx Beta driver - Xorg head CVS Linux Santorini 2.6.16-rc2 GCC-4.1 CVS Branch In real life Papadakos Panagiotis Last edited by Mythos : Jan 23, 2004 at 09:35 AM. |
|
|
|
|
|
|
#8 |
|
Don't worry - Be happy!
Join Date: Oct 2003
Location: Crete, Hellas
Posts: 1,909
|
Also found http://gentoo.kems.net/gentoo-x86-po...includes.patch It is for fglrx_panel_sources.tgz in /usr/src/ATI and it fixes a compilation problem of 3.7.0. Needs patch -p0...
__________________
Radeon 9500 PRO - Mobility Radeon X700 - fglrx Beta driver - Xorg head CVS Linux Santorini 2.6.16-rc2 GCC-4.1 CVS Branch In real life Papadakos Panagiotis |
|
|
|
|
|
#9 | |
|
Don't worry - Be happy!
Join Date: Oct 2003
Location: Crete, Hellas
Posts: 1,909
|
Quote:
libqt.so Code:
--- Makefile_orig 2004-01-24 00:00:41.000000000 +0000 +++ Makefile 2004-01-23 23:59:29.000000000 +0000 @@ -44,7 +44,7 @@ else ifneq ($(findstring $(PLATFORMTYPE), i386 i486 i586 i686), ) LIBQT_STATIC = libqt.a -LIBQT_DYN = qt +LIBQT_DYN = qt-mt LIB_DIR = lib else ifeq ($(PLATFORMTYPE), x86_64)
__________________
Radeon 9500 PRO - Mobility Radeon X700 - fglrx Beta driver - Xorg head CVS Linux Santorini 2.6.16-rc2 GCC-4.1 CVS Branch In real life Papadakos Panagiotis |
|
|
|
|
|
|
#10 |
|
Newbie
Join Date: Mar 2004
Posts: 2
|
(I originally posted this here.) If you're getting the "bad address" error when loading fglrx.ko like I was, this might help. Download this patch, and apply it to the /lib/modules/fglrx/build_mod directory with: Code:
cd /lib/modules/fglrx/build_mod; patch -p1 < /path/to/fglrx-3.7.6-regparm.patch (The patch just defines all functions that are called to or from the binary part with __attribute__((__regparm__(0))), to ensure they use the right calling convention whether or not -mregparm=3 is being used. There's also a trivial fix to make.sh so it actually stops if the build fails.) |
|
|
|
|
|
#11 |
|
The Knows Mister
Join Date: Dec 2002
Location:
Slovenia, Europe
Posts: 3,711
|
Added to the first post.
__________________
Other hardware: MacBook Pro 2.53GHz 13", Xbox360, iPhone 3GS 32GB
|
|
|
|
|
|
#12 |
|
Radeon HD 4550
Join Date: Mar 2004
Posts: 26
|
Using the patch from Anders for 2.6.x kernels with the REGPARM optimization, the patch was back ported to the fglrx 3.2.8 driver. It can be obtained here. Do not use with any other driver other than 3.2.8 or kernel 2.6.x |
|
|
|
|
|
#13 |
|
Don't worry - Be happy!
Join Date: Oct 2003
Location: Crete, Hellas
Posts: 1,909
|
This patch is needed to compile 3.7.6 with regparm patch applied and gcc-3.4.0: Code:
--- ../build_mod/firegl_public.h 2004-05-09 01:42:38.000000000 +0300 +++ firegl_public.h 2004-05-09 02:23:21.000000000 +0300 @@ -146,7 +146,7 @@ extern int IP_LINKAGE __ke_signal_pendin extern void IP_LINKAGE __ke_set_current_state_task_interruptible(void); extern void IP_LINKAGE __ke_set_current_state_task_running(void); extern void IP_LINKAGE __ke_configure_sigmask(__ke_sigset_t *pSigMask); -extern void IP_LINKAGE __ke_block_all_signals(int (*IP_LINKAGE notifier)(void *priv), void *pPriv, __ke_sigset_t *pSigMask); +extern void IP_LINKAGE __ke_block_all_signals(int (* notifier)(void *priv), void *pPriv, __ke_sigset_t *pSigMask); extern void IP_LINKAGE __ke_unblock_all_signals(void); extern unsigned long IP_LINKAGE __ke__cmpxchg(volatile void *ptr, unsigned long old, @@ -318,7 +318,7 @@ extern int IP_LINKAGE __ke_in(unsigned s extern void IP_LINKAGE __ke_enable_irq(int irq); extern void IP_LINKAGE __ke_disable_irq(int irq); -extern int IP_LINKAGE __ke_request_irq(unsigned int irq, void (*IP_LINKAGE handler)(int, void *, void *), const char *dev_name, void *dev_id); +extern int IP_LINKAGE __ke_request_irq(unsigned int irq, void (* handler)(int, void *, void *), const char *dev_name, void *dev_id); extern void IP_LINKAGE __ke_free_irq(unsigned int irq, void *dev_id); /*****************************************************************************/ @@ -395,7 +395,7 @@ unsigned long IP_LINKAGE __ke_agp_memory int IP_LINKAGE __ke_is_athlon(void); int IP_LINKAGE __ke_has_PSE(void); int IP_LINKAGE __ke_amd_adv_spec_cache_feature(void); -void IP_LINKAGE __ke_smp_call_function( void (*IP_LINKAGE func)(void *info) ); +void IP_LINKAGE __ke_smp_call_function( void (* func)(void *info) ); int IP_LINKAGE __ke_smp_processor_id(void); /*****************************************************************************/
__________________
Radeon 9500 PRO - Mobility Radeon X700 - fglrx Beta driver - Xorg head CVS Linux Santorini 2.6.16-rc2 GCC-4.1 CVS Branch In real life Papadakos Panagiotis |
|
|
|
|
|
#14 |
|
Don't worry - Be happy!
Join Date: Oct 2003
Location: Crete, Hellas
Posts: 1,909
|
This is with the regparm applied but you should be able to apply it also without it... Code:
diff -uprN build_mod-mreg_new/agpgart_be.c build_mod-mreg_new-mm/agpgart_be.c
--- build_mod-mreg_new/agpgart_be.c 2004-05-15 03:45:48.000000000 +0300
+++ build_mod-mreg_new-mm/agpgart_be.c 2004-05-15 03:18:30.000000000 +0300
@@ -1402,7 +1402,8 @@ unsigned long agp_generic_alloc_page(voi
}
#endif
- atomic_inc(&page->count);
+ //atomic_inc(&page->count);
+ get_page(page);
set_bit(PG_locked, &page->flags);
atomic_inc(&agp_bridge.current_memory_agp);
@@ -4413,7 +4414,8 @@ static unsigned long ali_alloc_page(void
if (page == NULL)
return 0;
- atomic_inc(&page->count);
+ //atomic_inc(&page->count);
+ get_page(page);
set_bit(PG_locked, &page->flags);
atomic_inc(&agp_bridge.current_memory_agp);
diff -uprN build_mod-mreg_new/firegl_public.c build_mod-mreg_new-mm/firegl_public.c
--- build_mod-mreg_new/firegl_public.c 2004-05-15 03:45:06.000000000 +0300
+++ build_mod-mreg_new-mm/firegl_public.c 2004-05-15 03:25:13.000000000 +0300
@@ -2066,7 +2066,8 @@ static vm_nopage_ret_t vm_shm_nopage(str
pMmPage = virt_to_page(kaddr);
#endif /* LINUX_VERSION_CODE < 0x020400 */
- atomic_inc(&(pMmPage->count)); /* inc usage count of page */
+ //atomic_inc(&(pMmPage->count)); /* inc usage count of page */
+ get_page(pMmPage);
#if LINUX_VERSION_CODE >= 0x020400
// __KE_DEBUG3("vm-address 0x%08lx => kernel-page-address 0x%p\n",
__________________
Radeon 9500 PRO - Mobility Radeon X700 - fglrx Beta driver - Xorg head CVS Linux Santorini 2.6.16-rc2 GCC-4.1 CVS Branch In real life Papadakos Panagiotis Last edited by Mythos : Aug 3, 2004 at 08:10 PM. |
|
|
|
|
|
#15 |
|
A replica of me
Join Date: Dec 2003
Location:
Sol [0,0], Poland, Kraków
Posts: 487
|
I have recently found this patch at Gentoo forums. It fixes compile problems with 2.6.6-mm2 kernel tree. Code:
--- agpgart_be.c.orig 2004-05-14 21:39:19.943584512 +0000
+++ agpgart_be.c 2004-05-14 21:39:28.140338416 +0000
@@ -1402,7 +1402,7 @@ unsigned long agp_generic_alloc_page(voi
}
#endif
- atomic_inc(&page->count);
+ get_page(page);
set_bit(PG_locked, &page->flags);
atomic_inc(&agp_bridge.current_memory_agp);
@@ -4413,7 +4413,7 @@ static unsigned long ali_alloc_page(void
if (page == NULL)
return 0;
- atomic_inc(&page->count);
+ get_page(page);
set_bit(PG_locked, &page->flags);
atomic_inc(&agp_bridge.current_memory_agp);
--- firegl_public.c.orig 2004-05-14 21:38:53.296635464 +0000
+++ firegl_public.c 2004-05-14 21:40:28.492163544 +0000
@@ -2052,7 +2052,7 @@ static vm_nopage_ret_t vm_shm_nopage(str
pMmPage = virt_to_page(kaddr);
#endif /* LINUX_VERSION_CODE < 0x020400 */
- atomic_inc(&(pMmPage->count)); /* inc usage count of page */
+ get_page(pMmPage); /* inc usage count of page */
#if LINUX_VERSION_CODE >= 0x020400
// __KE_DEBUG3("vm-address 0x%08lx => kernel-page-address 0x%p\n",
__________________
Projektowanie stron WWW | RLU #137109 | Moonspell fan! Gentoo Linux 2.6.19-beyond2 :: nVidia FX 5200 @ X.org 7.1 :: I fold, too! Physics is like sex. Of course it can give some practical results, but that's not why we do it. (Richard Feynman) |
|
|
|
|
|
#16 |
|
Don't worry - Be happy!
Join Date: Oct 2003
Location: Crete, Hellas
Posts: 1,909
|
It is the same as the one I posted, don't you think? The only difference is that I have putted in comments the code that should be removed! ![]()
__________________
Radeon 9500 PRO - Mobility Radeon X700 - fglrx Beta driver - Xorg head CVS Linux Santorini 2.6.16-rc2 GCC-4.1 CVS Branch In real life Papadakos Panagiotis |
|
|
|
|
|
#17 |
|
A replica of me
Join Date: Dec 2003
Location:
Sol [0,0], Poland, Kraków
Posts: 487
|
Ups, I have missed it!? I had to be blind or such... Sorry Mythos!
__________________
Projektowanie stron WWW | RLU #137109 | Moonspell fan! Gentoo Linux 2.6.19-beyond2 :: nVidia FX 5200 @ X.org 7.1 :: I fold, too! Physics is like sex. Of course it can give some practical results, but that's not why we do it. (Richard Feynman) |
|
|
|
|
|
#18 |
|
The Knows Mister
Join Date: Dec 2002
Location:
Slovenia, Europe
Posts: 3,711
|
Added the patches to the first post. Sorry for the delay guys (I was, am and will be lurking until further notice )
__________________
Other hardware: MacBook Pro 2.53GHz 13", Xbox360, iPhone 3GS 32GB
|
|
|
|
|
|
#19 |
|
Don't worry - Be happy!
Join Date: Oct 2003
Location: Crete, Hellas
Posts: 1,909
|
The above patch for mm kernels, will also be needed to compile the driver for 2.6.7!
__________________
Radeon 9500 PRO - Mobility Radeon X700 - fglrx Beta driver - Xorg head CVS Linux Santorini 2.6.16-rc2 GCC-4.1 CVS Branch In real life Papadakos Panagiotis |
|
|
|
|
|
#20 |
|
Newbie
Join Date: Jun 2004
Posts: 2
|
Sorry for sounding so stupid, but I can't seem to get the 3d acceleration working. I have a fresh install of FC2, and I can't find any drivers for my Radeon 9600. I've tried to force the ATI drivers to install, but the kernel module won't build. Running 'sh make.sh' gives me the following : " ATI module generator V 2.0 ========================== initializing... Error: XFree86 drm includes at /lib/modules/2.6.5-1.358/build/include/../drivers/char/drm do not fit this driver. This driver is designed to only work with X4.1.0 or higher. You can match this by getting Linux kernel 2.4.8 or higher. " Could somebody please help me ? Thanks. |
|
|
|
|
|
#21 |
|
Radeon HD 4600
Join Date: Jan 2004
Posts: 68
|
Last edited by mroy : Jul 26, 2004 at 06:29 PM. |
|
|
|
|
|
#22 |
|
Radeon HD 4870 X2
Join Date: Mar 2004
Posts: 580
|
Hi while surfing the gentoo-forums i encounterd that the internal agpgart does not support i875p, instead it treats it as an i875g (with integrated graphics). So i used google and found one person who had backported 2.6 i875p support to 2.4 agpgart. http://jrfonseca.dyndns.org/misc/pat...gart-i875p.txt http://jrfonseca.dyndns.org/misc/pat...art-i875p.diff I did take a look on the patch and adopted it for fglrx (as it has 2.4 agpgart). i haven't tested it, as i don't have an intel-chipset. So please could someone with an i875p test this patch ? if it works people will be able to play nwn without an memleak with an i875p ;-). Code:
diff -u --recursive build_mod.old/agp.h build_mod/agp.h
--- build_mod.old/agp.h 2004-03-17 23:00:29.000000000 +0100
+++ build_mod/agp.h 2004-07-26 12:41:26.361474584 +0200
@@ -656,6 +656,9 @@
#ifndef PCI_DEVICE_ID_INTEL_865_G_1
#define PCI_DEVICE_ID_INTEL_865_G_1 0x2572 // alternate macro
#endif
+ #ifndef PCI_DEVICE_ID_INTEL_875_P_0
+ #define PCI_DEVICE_ID_INTEL_875_P_0 0x2578
+ #endif
#ifndef PCI_DEVICE_ID_INTEL_875_G_0
#define PCI_DEVICE_ID_INTEL_875_G_0 0x2578
#endif
diff -u --recursive build_mod.old/agp_backend.h build_mod/agp_backend.h
--- build_mod.old/agp_backend.h 2004-03-17 23:00:29.000000000 +0100
+++ build_mod/agp_backend.h 2004-07-26 12:41:26.389470328 +0200
@@ -119,6 +119,7 @@
_X(INTEL_I820),
_X(INTEL_I830_M),
_X(INTEL_I865_G),
+ _X(INTEL_I875_P),
_X(INTEL_I875_G),
_X(INTEL_I840),
_X(INTEL_I845),
diff -u --recursive build_mod.old/agpgart_be.c build_mod/agpgart_be.c
--- build_mod.old/agpgart_be.c 2004-07-26 12:41:01.540247984 +0200
+++ build_mod/agpgart_be.c 2004-07-26 12:41:26.390470176 +0200
@@ -5800,6 +5800,12 @@
"Intel",
"i865G",
intel_845_setup },
+ { PCI_DEVICE_ID_INTEL_875_P_0,
+ PCI_VENDOR_ID_INTEL,
+ INTEL_I875_P,
+ "Intel(R)",
+ "875P",
+ intel_845_setup },
{ PCI_DEVICE_ID_INTEL_875_G_1,
PCI_VENDOR_ID_INTEL,
INTEL_I875_G,
Only in build_mod.old/: firegl_public.c.orig
Last edited by JonSvenJonsson : Jul 26, 2004 at 05:48 AM. Reason: typo in patch ?! |
|
|
|
|
|
#23 |
|
Radeon HD 4600
Join Date: Jan 2004
Posts: 68
|
Here is a patch to make the 3.11.1 ATI driver compile with Fedora Core 2 and its 2.6.7-1.494.2.2 official kernel: Code:
diff -Nru build_mod.orig/2.6.x/Makefile build_mod/2.6.x/Makefile
--- build_mod.orig/2.6.x/Makefile 2004-08-05 23:06:07.709571464 +0200
+++ build_mod/2.6.x/Makefile 2004-08-05 23:06:35.673320328 +0200
@@ -11,7 +11,7 @@
endif
EXTRA_CFLAGS += \
- -Idrivers/char/drm/ \
+ -I$(DRMINCLUDES) \
-D__AGP__ \
-DFGL \
-DFGL_LINUX \
diff -Nru build_mod.orig/make.sh build_mod/make.sh
--- build_mod.orig/make.sh 2004-08-05 23:06:07.708571616 +0200
+++ build_mod/make.sh 2004-08-05 23:06:37.253080168 +0200
@@ -180,6 +180,11 @@
drmincludes=${linuxincludes}/../drivers/char/drm
#drmincludes=/usr/local/src/dripkg/drm
+# Fedora Core 2 work around
+if [ ! -e "/usr/src/linux" ] && [ -d "/usr/src/linux-${uname_r}" ]; then
+ drmincludes=/usr/src/linux-${uname_r}/drivers/char/drm
+fi
+
# since kernel 2.4.8 the X4.1.0 drm kernel module headers are part
# of the kernel build environment - check dir and expected files.
@@ -993,7 +998,7 @@
if [ $kernel_is_26x -gt 0 ]; then
echo "doing Makefile based build for kernel 2.6.x and higher" | tee -a $logfile
cd 2.6.x
- make PAGE_ATTR_FIX=$PAGE_ATTR_FIX 2>&1 | tee -a $logfile
+ make PAGE_ATTR_FIX=$PAGE_ATTR_FIX DRMINCLUDES=$drmincludes 2>&1 | tee -a $logfile
res=$?
cd ..
if [ $res -eq 0 ]; then
|
|
|
|
|
|
#24 |
|
Newbie
Join Date: Aug 2004
Posts: 9
|
Hey anders i just downloaded the patch at the following like and attempted to compile the module it gave me a hunks error which looked like this: Code:
patching file firegl_public.c Hunk #48 succeeded at 2195 with fuzz 2 (offset 61 lines). Hunk #50 succeeded at 2231 (offset 61 lines). Hunk #52 succeeded at 2311 (offset 61 lines). Hunk #54 succeeded at 2337 (offset 61 lines). Hunk #56 succeeded at 2652 (offset 61 lines). Hunk #58 succeeded at 2783 (offset 61 lines). Hunk #60 succeeded at 2828 (offset 61 lines). Hunk #62 succeeded at 2852 (offset 61 lines). Hunk #64 succeeded at 2874 (offset 61 lines). Hunk #66 succeeded at 2902 (offset 61 lines). Hunk #68 succeeded at 2944 (offset 61 lines). Hunk #70 succeeded at 3041 (offset 61 lines). Hunk #72 succeeded at 3073 (offset 61 lines). Hunk #74 succeeded at 3196 (offset 61 lines). patching file firegl_public.h Hunk #2 succeeded at 77 (offset 4 lines). Hunk #3 FAILED at 107. Hunk #5 succeeded at 200 (offset 4 lines). Hunk #7 succeeded at 340 (offset 4 lines). Hunk #8 FAILED at 377. 2 out of 8 hunks FAILED -- saving rejects to file firegl_public.h.rej patching file make.sh Hunk #1 FAILED at 993. 1 out of 1 hunk FAILED -- saving rejects to file make.sh.rej |
|
|
|
|
|
#25 |
|
Don't worry - Be happy!
Join Date: Oct 2003
Location: Crete, Hellas
Posts: 1,909
|
EDIT: I am not able to insert the patch correctly with the tags. There seems to be a problem because of the many tabs... Try and download it from either http://homepages.pathfinder.gr/mytho...3.14.1-mm.diff or http://www.oalex.net/~ernstp/fglrx-3.14.1-mm.diff which was kindly uploaded by ernstp. I would suggest the second link... Code:
Common subdirectories: build_mod/2.6.x and build_mod-mm/2.6.x
diff -u build_mod/agpgart_be.c build_mod-mm/agpgart_be.c
--- build_mod/agpgart_be.c 2004-10-03 13:18:54.000000000 +0000
+++ build_mod-mm/agpgart_be.c 2004-10-08 00:48:53.000000000 +0000
@@ -718,7 +718,7 @@
* AGP devices and collect their data.
*/
- while ((device = pci_find_class(PCI_CLASS_DISPLAY_VGA << 8,
+ while ((device = pci_get_class(PCI_CLASS_DISPLAY_VGA << 8,
device)) != NULL) {
pci_read_config_dword(device, 0x04, &scratch);
@@ -839,7 +839,7 @@
* command registers.
*/
- while ((device = pci_find_class(PCI_CLASS_DISPLAY_VGA << 8,
+ while ((device = pci_get_class(PCI_CLASS_DISPLAY_VGA << 8,
device)) != NULL) {
pci_read_config_dword(device, 0x04, &scratch);
@@ -5068,7 +5068,7 @@
* AGP devices and collect their data.
*/
- while ((device = pci_find_class(PCI_CLASS_DISPLAY_VGA << 8,
+ while ((device = pci_get_class(PCI_CLASS_DISPLAY_VGA << 8,
device)) != NULL) {
pci_read_config_dword(device, 0x04, &scratch);
@@ -5166,7 +5166,7 @@
* command registers.
*/
- while ((device = pci_find_class(PCI_CLASS_DISPLAY_VGA << 8,
+ while ((device = pci_get_class(PCI_CLASS_DISPLAY_VGA << 8,
device)) != NULL) {
pci_read_config_dword(device, 0x04, &scratch);
@@ -6418,7 +6418,7 @@
struct pci_dev *dev = NULL;
// locate host bridge device
- if ((dev = pci_find_class(PCI_CLASS_BRIDGE_HOST << 8, NULL)) == NULL)
+ if ((dev = pci_get_class(PCI_CLASS_BRIDGE_HOST << 8, NULL)) == NULL)
return -ENODEV;
agp_bridge.dev = dev;
@@ -6935,7 +6935,7 @@
&agp_bridge.mode);
return hp_zx1_setup(dev);
}
- dev = pci_find_class(PCI_CLASS_BRIDGE_HOST << 8, dev);
+ dev = pci_get_class(PCI_CLASS_BRIDGE_HOST << 8, dev);
} while (dev);
return -ENODEV;
}
Only in build_mod: fglrx.ko
diff -u build_mod/firegl_public.c build_mod-mm/firegl_public.c
--- build_mod/firegl_public.c 2004-08-21 15:25:05.000000000 +0000
+++ build_mod-mm/firegl_public.c 2004-10-08 00:36:00.000000000 +0000
@@ -2577,13 +2577,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),
+ vma->vm_pgoff,
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 */
@@ -2642,15 +2642,15 @@
#else
// else
{
- if (__ke_vm_offset(vma) >= __pa(high_memory))
+ if (vma->vm_pgoff >= __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),
+ vma->vm_pgoff,
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__
@@ -2679,15 +2679,15 @@
// else
#else
{
- if (__ke_vm_offset(vma) >= __pa(high_memory))
+ if (vma->vm_pgoff >= __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),
+ vma->vm_pgoff,
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__
Only in build_mod: make.log
Common subdirectories: build_mod/patch and build_mod-mm/patch
__________________
Radeon 9500 PRO - Mobility Radeon X700 - fglrx Beta driver - Xorg head CVS Linux Santorini 2.6.16-rc2 GCC-4.1 CVS Branch In real life Papadakos Panagiotis Last edited by Mythos : Oct 8, 2004 at 07:24 AM. |
|
|
|
|
|
#26 |
|
Radeon HD 4600
Join Date: Aug 2004
Location: Phildalphia, Pennsylvania
Posts: 80
|
Is there a patch for 3.14.1 on Fedora Core 2? |
|
|
|
|
|
#27 | |
|
Don't worry - Be happy!
Join Date: Oct 2003
Location: Crete, Hellas
Posts: 1,909
|
Quote:
__________________
Radeon 9500 PRO - Mobility Radeon X700 - fglrx Beta driver - Xorg head CVS Linux Santorini 2.6.16-rc2 GCC-4.1 CVS Branch In real life Papadakos Panagiotis |
|
|
|
|
|
|
#28 |
|
Newbie
Join Date: Mar 2005
Posts: 2
|
Hi all, Looking for a patch to compile 3.12.0 with a 2.6.11 kernel. Need the 3.12 version for a Pundit-R to be able to use TV-OUT. It now says: --------------------- XFree86 drm includes at /lib/modules/2.6.11drm/build/include/../drivers/char/drm do not fit this driver. This driver is designed to only work with X4.1.0 or higher. You can match this by getting Linux kernel 2.4.8 or higher. ------------------- Henk Schoneveld |
|
|
|
|
|
#29 |
|
Newbie
Join Date: Apr 2005
Posts: 2
|
Hi, I just managed it to install the new drivers on my system with 2.6.11 kernel and hope I can help others too. I took the two patches for 8.10.19 (p1.patch and p2.patch) which can be found here too. p1.patch could stay as it was, in p2.patch the line numbers had to be changed. p1.patch : Code:
--- or.c
+++ agpgart_be.c
@@ -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();
Code:
--- 2.c
+++ firegl_public.c
@@ -1663,13 +1663,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);
@@ -2099,6 +2108,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;
@@ -2199,7 +2211,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");
@@ -2563,13 +2580,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);
@@ -2718,13 +2743,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 */
@@ -2785,13 +2810,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__
@@ -2822,13 +2847,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__
@@ -2872,6 +2897,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
|
|
|
|
|
|
#30 |
|
Radeon HD 4350
Join Date: Mar 2005
Posts: 19
|
Jenseitsmaschine, sorry, your patches didn't work for me. [root@localhost build_mod]# patch -p0 < p1.patch patching file agpgart_be.c Hunk #1 succeeded at 261 with fuzz 1. Hunk #2 FAILED at 4081. Hunk #4 FAILED at 7447. 2 out of 4 hunks FAILED -- saving rejects to file agpgart_be.c.rej [root@localhost build_mod]# patch -p0 < p2.patch patching file firegl_public.c Hunk #6 FAILED at 2810. Hunk #7 FAILED at 2847. Hunk #8 succeeded at 2897 with fuzz 1. 2 out of 8 hunks FAILED -- saving rejects to file firegl_public.c.rej Vanilla kernel 2.6.11. |
|
|
|