On Wed, Jun 11, 2003 at 08:44:31PM +0200, Martin Spott wrote: > On Wed, Jun 11, 2003 at 07:25:06PM +0100, José Fonseca wrote: > > > How can't see how the above two logs match. Which driver version are you > > using, the latest? > > The base I'm running tests on is the XFree86-4.3.0 update to SuSE-8.1 > (which I have a backup of ;-) > > Then I'm running 'make World' in a copy of the current CVS 'xc'-tree which I > 'make install' over the actual /usr/X11R6/. The second step consists of > building the kernel modules inside the kernel tree - I use to maintain a > kernel patch from sources and headers I pick from > xc/programs/Xserver/hw/xfree86/os-support/[linux,shared]/drm/kernel/ > > This used to work pretty fine for at least one year now. As the mentioned > change to the CVS trunk did not add or remove source files (aside from > headers) I'm quite shure I did not mess with the Makefile. > > The rest is quite simple: I remove the old kernel modules, I install new > kernel modules ('depmod -a' is without errors or warnings) and afterwards I > restart the X server. > > At the moment everything is from today's CVS - except the 'radeon' kernel > module - and everything works fine (aside from the known bugs). When I load > the 'radeon' kernel module built from today's CVS, I encounter the situation > described in my previous posting. > > It's quite obvious that the mentioned patch is responsible for the breakage, > although I did not yet try to revert the patch by every single file. Does > anyone have a useful suggestion where to start digging ?
The only relevant change in that commit is that the AGP initialization in drm_drv:drm_init() was broke in two calls: one per module named DRM(agp_init)() call) which requests the "drm_agp" symbol from the AGPGART module, and another per-device named DRM(agp_init_dev)() which setups the AGP related data in the device. (Both functions are defined in drm_agp_tmp.h). >From the X server log, the DRM(agp_aquire)() is failing, but that shouldn't be happen, according with the sys log. Since it's easy for you to rebuild the kernel module, try the attached patch which adds a debug output line. That line should appear, and both pointers should be non-NULL. José Fonseca
Index: drm_agp_tmp.h =================================================================== RCS file: /cvsroot/dri/xc/xc/programs/Xserver/hw/xfree86/os-support/linux/drm/kernel/drm_agp_tmp.h,v retrieving revision 1.4 diff -u -r1.4 drm_agp_tmp.h --- drm_agp_tmp.h 7 Jun 2003 12:45:55 -0000 1.4 +++ drm_agp_tmp.h 11 Jun 2003 23:08:33 -0000 @@ -62,6 +62,7 @@ */ int DRM(agp_acquire)(void) { + DRM_DEBUG("drm_agp = 0x%lx drm_agp->acquire = 0x%lx\n", drm_agp, drm_agp ? drm_agp->acquire : 0); if (!drm_agp || !drm_agp->acquire) return -EINVAL; return drm_agp->acquire();