Skip to contentSkip to conversation

Next round of AGPGART fixes.

DISCUSSION Dave Jones 5 participants 9 messages Dec 20, 2002 – Dec 25, 2002

lore
Share & tools
lore

Dave Jones

author
#0 lore raw

Linus,
Please pull from bk://linux-dj.bkbits.net/agpgart to get at the
following fixes..

- AGP 3.0 now compiles as a module too.
- beginnings of VIA KT400 AGP 3.0 support.
(Not functional yet, more work needed).
- corrected handling of AGP capability bit in PCI headers for chipset drivers. This should fix the problems on I815 and similar chipsets.
- small cleanups (making functions static, making things __initdata etc)
- Hopefully fix AMD K8 GART driver
- Fix module exit routine in backend
- Unmark some things __init (The cause of many modules bugs)
- agp_generic_agp_3_0_enable() now returns FALSE to the chipset driver if it can't configure in 3.0 mode instead of falling back to generic 2.0 routines.
- Export agp_generic_agp_3_0_enable() to work as module.
- Missing HP ZX1/Intel I460 fixes from David Mosberger (My bad)
- Changed I7505 driver to handle new agp_generic_agp_3_0_enable semantics.
- Renamed some VIA chipsets.

 Makefile      |    2 
 agp.h         |    4 +
 ali-agp.c     |   21 +++++----
 amd-k7-agp.c  |   26 +++++------
 amd-k8-agp.c  |   18 +++++--
 backend.c     |   27 +++--------
 frontend.c    |    2 
 generic-3.0.c |   14 ++----
 hp-agp.c      |   18 +++----
 i460-agp.c    |   35 ++++++++-------
 i7x05-agp.c   |   32 +++++++------
 intel-agp.c   |  134 ++++++++++++++++++++++++++++------------------------------
 sis-agp.c     |   27 +++++------
 sworks-agp.c  |   59 ++++++++-----------------
 via-agp.c     |   99 +++++++++++++++++++++++++++++++++++-------
 15 files changed, 283 insertions(+), 235 deletions(-)

GNU diff for those who care (against Linus' bk tree) is at ftp.kernel.org/pub/linux/kernel/people/davej/patches/2.5/2.5.52/agpgart-fixes-1.diff

Dave

Signature · 2 lines
| Dave Jones.        http://www.codemonkey.org.uk
| SuSE Labs
#1 lore raw

Am Freitag 20 Dezember 2002 13:41 schrieb Dave Jones:

Quoted 9 lines

Linus,
Please pull from bk://linux-dj.bkbits.net/agpgart to get at the
following fixes..

- AGP 3.0 now compiles as a module too.
- beginnings of VIA KT400 AGP 3.0 support.
(Not functional yet, more work needed).
- corrected handling of AGP capability bit in PCI headers for chipset drivers. This should fix the problems on I815 and similar chipsets.

[...]

Quoted 1 line

Dave

I am running 2.5.52bk5 with you GNU patch. Doesn't help. I do a modprobe i810 and I get:

FATAL: Error inserting i810 (/lib/modules/2.5.52bk5/kernel/drivers/char/drm/i810.ko): Cannot allocate memory

This is from dmesg:
[drm:drm_init] *ERROR* Cannot initialize the agpgart module. Uninitialised timer!
This is just a warning. Your computer is OK function=0x00000000, data=0x0

Call Trace:
 [<c01208a2>] check_timer_failed+0x42/0x50
 [<c0120cd7>] del_timer+0x17/0x80
 [<c4990dc5>] i810_takedown+0x45/0x3b0 [i810]
 [<c49952d6>] i810_stub_unregister+0x36/0x3d [i810]
 [<c49720e6>] 0xc49720e6
 [<c4997cc0>] +0x840/0x2720 [i810]
 [<c4997ca2>] +0x822/0x2720 [i810]
 [<c012a782>] sys_init_module+0xfe/0x178
 [<c0108d73>] syscall_call+0x7/0xb

thanks
have fun
Felix

#2 lore raw

Am Freitag 20 Dezember 2002 15:42 schrieb Felix Seeger:

Quoted 13 lines

Am Freitag 20 Dezember 2002 13:41 schrieb Dave Jones:

Quoted 9 lines

Linus,
Please pull from bk://linux-dj.bkbits.net/agpgart to get at the
following fixes..

- AGP 3.0 now compiles as a module too.
- beginnings of VIA KT400 AGP 3.0 support.
(Not functional yet, more work needed).
- corrected handling of AGP capability bit in PCI headers for chipset drivers. This should fix the problems on I815 and similar chipsets.

[...]

Quoted 9 lines
Quoted 1 line

Dave

I am running 2.5.52bk5 with you GNU patch. Doesn't help. I do a modprobe i810 and I get:

FATAL: Error inserting i810 (/lib/modules/2.5.52bk5/kernel/drivers/char/drm/i810.ko): Cannot allocate memory

Mhm, I compiled all in the kernel and it works now, maybe I've done something wrong.

thanks
have fun
Felix

author
#3 lore raw
Quoted 9 lines · Felix Seeger
Quoted 7 lines

I am running 2.5.52bk5 with you GNU patch. Doesn't help. I do a modprobe i810 and I get:

FATAL: Error inserting i810 (/lib/modules/2.5.52bk5/kernel/drivers/char/drm/i810.ko): Cannot allocate memory

Mhm, I compiled all in the kernel and it works now, maybe I've done something wrong.

More likely there are more modules related thinkos in the code. I'll look it over again later.

Dave

Signature · 1 line
| Dave Jones.        http://www.codemonkey.org.uk
#4 lore raw
In reply to Dave Jones
Quoted 4 lines · Dave Jones

- AGP 3.0 now compiles as a module too.
- beginnings of VIA KT400 AGP 3.0 support.
(Not functional yet, more work needed).

And with AGP 3 disabled, things do not even compile

	In function `via_kt400_enable':
	undefined reference to `agp_generic_agp_3_0_enable'

Hmm.

Linus

author
#5 lore raw
Quoted 8 lines · Linus Torvalds
Quoted 3 lines

- AGP 3.0 now compiles as a module too.
- beginnings of VIA KT400 AGP 3.0 support.
(Not functional yet, more work needed).

And with AGP 3 disabled, things do not even compile

	In function `via_kt400_enable':
	undefined reference to `agp_generic_agp_3_0_enable'

Hmm.

Blehh, I'll fix it up later, along with the strange 'unsafe modules' bug reported.

Dave

Signature · 1 line
| Dave Jones.        http://www.codemonkey.org.uk
#6 lore raw
In reply to Dave Jones
Quoted 3 lines · Dave Jones

Linus,
Please pull from bk://linux-dj.bkbits.net/agpgart to get at the
following fixes..

[snip]

Quoted 2 lines

GNU diff for those who care (against Linus' bk tree) is at ftp.kernel.org/pub/linux/kernel/people/davej/patches/2.5/2.5.52/agpgart-fixes-1.diff

I'm using bk7 which contains all your patch except via* stuff which I'm not interested in.
Agpgart and sis-agp compiled as modules. Modprobe agpgart succeeds, modprobe sis-agp oopses:

agpgart: Detected SiS 735 chipset

Unable to handle kernel paging request at virtual address 1f000207
 printing eip:
e085400c
*pde = 00000000
Oops: 0000
CPU:    0
EIP:    0060:[<e085400c>]    Not tainted
EFLAGS: 00010282

EIP is at 0xe085400c
eax: c15f5c80 ebx: 000000c0 ecx: 00000000 edx: 1f000207
esi: 00000000 edi: 00000000 ebp: e0992408 esp: df9c7ec4
ds: 0068 es: 0068 ss: 0068
Process modprobe (pid: 498, threadinfo=df9c6000 task=dd0bb900)

Stack: e08720c8 df9c7ee4 00000246 c15df740 000000c0 c15f5c00 00000000 e08722d0 
       c15f5c00 000000c0 c15f5c00 000000c0 e099424a c15f5c00 00000000 000000c4 
       e0875090 c15f5c00 e09923e0 c02391fe c15f5c00 e09943c0 c15f5c4c e0992408 
Call Trace:
 [<e08720c8>] agp_backend_initialize+0x18/0x190 [agpgart]
 [<e08722d0>] agp_register_driver+0x20/0xc0 [agpgart]
 [<e099424a>] agp_sis_probe+0x7a/0x90 [sis_agp]
 [<e0875090>] +0x30/0xa8 [agpgart]
 [<e09923e0>] agp_sis_pci_driver+0x0/0xa0 [sis_agp]
 [<c02391fe>] pci_device_probe+0x5e/0x70
 [<e09943c0>] agp_sis_pci_table+0x0/0x38 [sis_agp]
 [<e0992408>] agp_sis_pci_driver+0x28/0xa0 [sis_agp]
 [<c0273f05>] bus_match+0x45/0x80
 [<e0992408>] agp_sis_pci_driver+0x28/0xa0 [sis_agp]
 [<c027401e>] driver_attach+0x5e/0x80
 [<e0992408>] agp_sis_pci_driver+0x28/0xa0 [sis_agp]
 [<e0992424>] agp_sis_pci_driver+0x44/0xa0 [sis_agp]
 [<e0992408>] agp_sis_pci_driver+0x28/0xa0 [sis_agp]
 [<c0274317>] bus_add_driver+0xa7/0xd0
 [<e0992408>] agp_sis_pci_driver+0x28/0xa0 [sis_agp]
 [<e0992424>] agp_sis_pci_driver+0x44/0xa0 [sis_agp]
 [<c027479f>] driver_register+0x2f/0x40
 [<e0992408>] agp_sis_pci_driver+0x28/0xa0 [sis_agp]
 [<c0239337>] pci_register_driver+0x47/0x60
 [<e0992408>] agp_sis_pci_driver+0x28/0xa0 [sis_agp]
 [<e0994273>] agp_sis_init+0x13/0x60 [sis_agp]
 [<e09923e0>] agp_sis_pci_driver+0x0/0xa0 [sis_agp]
 [<c012f500>] sys_init_module+0x1b0/0x1d0
 [<c010af0b>] syscall_call+0x7/0xb

Code: 69 32 63 5f 63 6f 72 65 00 00 00 00 00 00 00 00 00 00 00 00 

If it matters, the compiler is:

bear:~# gcc-3.2 -v
Reading specs from /usr/lib/gcc-lib/i386-linux/3.2.2/specs
Configured with: ../src/configure -v --enable-languages=c,c++,java,f77,proto,pascal,objc,ada --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-gxx-include-dir=/usr/include/c++/3.2 --enable-shared --with-system-zlib --enable-nls --without-included-gettext --enable-__cxa_atexit --enable-clocale=gnu --enable-java-gc=boehm --enable-objc-gc i386-linux
Thread model: posix
gcc version 3.2.2 20021212 (Debian prerelease)

Cheers,
florin

Signature · 1 line
"If it's not broken, let's fix it till it is."
#7 lore raw
Quoted 8 lines · Florin Iucha
Quoted 3 lines · Dave Jones

Linus,
Please pull from bk://linux-dj.bkbits.net/agpgart to get at the
following fixes..

[snip]

Quoted 2 lines

GNU diff for those who care (against Linus' bk tree) is at ftp.kernel.org/pub/linux/kernel/people/davej/patches/2.5/2.5.52/agpgart-fixes-1.diff

Quoted 6 lines

I'm using bk7 which contains all your patch except via* stuff which I'm not interested in.
Agpgart and sis-agp compiled as modules. Modprobe agpgart succeeds, modprobe sis-agp oopses:

agpgart: Detected SiS 735 chipset

[snip oops]

With agpgart and sis-agp built in the kernel (non-modular) it works fine - I have direct rendering enabled in X.

Cheers,
florin

Signature · 1 line
"If it's not broken, let's fix it till it is."
#8 lore raw
Quoted 16 lines · Florin Iucha
Quoted 8 lines · Florin Iucha
Quoted 3 lines · Dave Jones

Linus,
Please pull from bk://linux-dj.bkbits.net/agpgart to get at the
following fixes..

[snip]

Quoted 2 lines

GNU diff for those who care (against Linus' bk tree) is at ftp.kernel.org/pub/linux/kernel/people/davej/patches/2.5/2.5.52/agpgart-fixes-1.diff

Quoted 6 lines

I'm using bk7 which contains all your patch except via* stuff which I'm not interested in.
Agpgart and sis-agp compiled as modules. Modprobe agpgart succeeds, modprobe sis-agp oopses:

agpgart: Detected SiS 735 chipset

Quoted 7 lines

[snip oops]

With agpgart and sis-agp built in the kernel (non-modular) it works fine - I have direct rendering enabled in X.

Cheers,
florin

I also had this problem with 2.5.51 and 2.5.52. Just tried 2.5.53 last night and now /dev/agpgart works fine again (static kernel, no modules). Thanks.

/alfred

Signature · 3 lines
/**
 * Alfred E. Heggestad - Coder
 */