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();

Reply via email to