Missing declaration GFP_DMA32

This forum is for all Parhelia based cards (Millenium P650, P690, P750, QID, Parhelia 256, APVe, ...) that need the mtx driver to run properly.

Missing declaration GFP_DMA32

Postby frank » Mon Jul 02, 2007 11:23 pm

While compiling the mtx.ko I receive the following error:
Code: Select all
  CC [M]  /root/matroxdriver_mtx-x86_32-1.4.4.9/kernel/src/mtx_dev.o
  CC [M]  /root/matroxdriver_mtx-x86_32-1.4.4.9/kernel/src/mtx_ctx.o
  CC [M]  /root/matroxdriver_mtx-x86_32-1.4.4.9/kernel/src/mtx_mem.o
/root/matroxdriver_mtx-x86_32-1.4.4.9/kernel/src/mtx_mem.c: In function `mtx_mem_alloc':
/root/matroxdriver_mtx-x86_32-1.4.4.9/kernel/src/mtx_mem.c:84: warning: assignment makes integer from pointer without a cast
/root/matroxdriver_mtx-x86_32-1.4.4.9/kernel/src/mtx_mem.c: In function `mtx_mem_alloc_pci':
/root/matroxdriver_mtx-x86_32-1.4.4.9/kernel/src/mtx_mem.c:167: error: `GFP_DMA32' undeclared (first use in this function)
/root/matroxdriver_mtx-x86_32-1.4.4.9/kernel/src/mtx_mem.c:167: error: (Each undeclared identifier is reported only once
/root/matroxdriver_mtx-x86_32-1.4.4.9/kernel/src/mtx_mem.c:167: error: for each function it appears in.)
make[4]: *** [/root/matroxdriver_mtx-x86_32-1.4.4.9/kernel/src/mtx_mem.o] Error 1
make[3]: *** [_module_/root/matroxdriver_mtx-x86_32-1.4.4.9/kernel/src] Error 2
make[2]: *** [modules] Error 2
make[1]: *** [modules] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.11.4-21.15-obj/i386/default'
make: *** [default] Error 2

What is the problem? I have search for this declaration and found, that it had to do with 64bit-systems. However I use the 32bit-version.
My system data: P650 AGP, SuSE 9.3, Kernel 2.6.11, X 6.8.2
Regards, frank
frank
Private
Private
 
Posts: 5
Joined: Mon Jul 02, 2007 10:43 pm

Postby tuxx-home.at » Tue Jul 03, 2007 7:22 am

What is the problem?


That shouldn't happen. The sourcecode of mtx_drv.h was configured to
include gfp.h (which declares GFP_DMA32) for all kernel versions below
2.6.18 and as you're using 2.6.11 it should get included automatically.

Please have a look at the include file "include/linux/gfp.h" to see if it declares
GFP_DMA32 correctly.

Code: Select all
sh-3.1$ grep GFP_DMA32 /lib/modules/$(uname -r)/build/include/linux/gfp.h
#define __GFP_DMA32     ((__force gfp_t)0x04u)
#define GFP_DMA32       __GFP_DMA32
        if (flags & __GFP_DMA32)
sh-3.1$


As you can see in the above example, my gfp.h (2.6.21.5) contains the
appropriate definition for GFP_DMA32.

Althogh, GFP_DMA32 is not used anymore and in the newest official Matrox
driver it has also been discarded so you might want to give the latest
official mtx driver a try (as it seems to be more recent than the latest
unofficial driver version, but currently I'm not really sure about that):

[http://matrox.tuxx-home.at/viewtopic.php?t=270]
User avatar
tuxx-home.at
Supreme Commander
Supreme Commander
 
Posts: 2199
Joined: Mon Jan 01, 2007 12:51 pm
Location: Vassach - Austria - Europe

Postby tuxx-home.at » Tue Jul 03, 2007 7:36 am

Alright, update. Seems to be my fault. I downloaded 2.6.11 and found out
that gfp.h really doesn't include this definition.
So it seems as if 1.4.4.9 is broken for older kernels. You could now either
try to add the above quoted lines

Code: Select all
#define __GFP_DMA32     ((__force gfp_t)0x04u)
#define GFP_DMA32       __GFP_DMA32


to mtx_drv.h (available when you run the installer with the --extract-only
parameter) and try to install it again or you give the official 1.4.5 driver
a try.
User avatar
tuxx-home.at
Supreme Commander
Supreme Commander
 
Posts: 2199
Joined: Mon Jan 01, 2007 12:51 pm
Location: Vassach - Austria - Europe

Postby frank » Tue Jul 03, 2007 11:22 pm

Thanks for your quick help. The GFP_DMA32-problem is solved, but the next error is occured during compilation. gfp_t is unknown:
Code: Select all
/root/matroxdriver_mtx-x86_32-1.4.4.9/kernel/src/mtx_mem.c: In function `mtx_mem_alloc':
/root/matroxdriver_mtx-x86_32-1.4.4.9/kernel/src/mtx_mem.c:84: warning: assignment makes integer from pointer without a cast
/root/matroxdriver_mtx-x86_32-1.4.4.9/kernel/src/mtx_mem.c: In function `mtx_mem_alloc_pci':
/root/matroxdriver_mtx-x86_32-1.4.4.9/kernel/src/mtx_mem.c:167: error: `gfp_t' undeclared (first use in this function)
/root/matroxdriver_mtx-x86_32-1.4.4.9/kernel/src/mtx_mem.c:167: error: (Each undeclared identifier is reported only once
/root/matroxdriver_mtx-x86_32-1.4.4.9/kernel/src/mtx_mem.c:167: error: for each function it appears in.)
/root/matroxdriver_mtx-x86_32-1.4.4.9/kernel/src/mtx_mem.c:167: error: syntax error before numeric constant
make[4]: *** [/root/matroxdriver_mtx-x86_32-1.4.4.9/kernel/src/mtx_mem.o] Error 1
make[3]: *** [_module_/root/matroxdriver_mtx-x86_32-1.4.4.9/kernel/src] Error 2
make[2]: *** [modules] Error 2
make[1]: *** [modules] Error 2
make[1]: Leaving directory `/usr/src/linux-2.6.11.4-21.15-obj/i386/default'
make: *** [default] Error 2

The official driver works, but I would try your driver. The reason of it, I get no Live-TV from the tv-card in different applications. It seems, the Matrox-driver has some problems.
frank
Private
Private
 
Posts: 5
Joined: Mon Jul 02, 2007 10:43 pm

Postby tuxx-home.at » Wed Jul 04, 2007 9:18 am

The official driver works, but I would try your driver. The reason of it, I get
no Live-TV from the tv-card in different applications. It seems, the
Matrox-driver has some problems.


You should definetly give the 1.4.5 driver a try as the Xorg mtx driver is
closed source and I never changed it. The only thing I changed is the open
source kernel module in terms of compatibility, small bugfixes, etc.

1.4.5 should be safe for your needs, with 1.4.4.9 you won't see any
improvements with your live-TV applications, infact, it is more likely that
1.4.5 fixes some things up which 1.4.4 wasn't able to.
User avatar
tuxx-home.at
Supreme Commander
Supreme Commander
 
Posts: 2199
Joined: Mon Jan 01, 2007 12:51 pm
Location: Vassach - Austria - Europe


Return to Matrox P-Series Cards

Who is online

Users browsing this forum: No registered users and 4 guests

cron