I've been trying to figure out how come X wouldn't load when I have
two of the new drm-core type drivers loaded. Then if finally occurred
to me to load the old drivers and see what X does, it fails too.

I have an AGP radeon and PCI r128. modprobe in radeon and r128. I'll
attach my xconf.

Now start X. It won't start.

In programs/Xserver/GL/dri/dri.c

static int lockRefCount=0;

void
DRILock(ScreenPtr pScreen, int flags)
{
    DRIScreenPrivPtr pDRIPriv = DRI_SCREEN_PRIV(pScreen);
    if(!pDRIPriv) return;

    if (!lockRefCount)
        DRM_LOCK(pDRIPriv->drmFD, pDRIPriv->pSAREA, pDRIPriv->myContext, flags);
    lockRefCount++;
}

How is this going to work with two DRI devices?

The error is that the first DRILock on the kernel context is never
set. Right before this DRM is not called with a request for a lock
when there should be one. I haven't got an X server put together for
debugging yet, but this sure looks like the likely culprit for why the
lock call isn't being made.

-- 
Jon Smirl
[EMAIL PROTECTED]

Attachment: xorg.dual
Description: Binary data

Reply via email to