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