Hello all;

While the changes I suggested earlier plus the hga driver allow X -configure
to create a multiheaded isa configuration, it probably isn't a surprise that it crashes
during initialization. The crash happens at the bottom of setAccess in xf86Bus.c:


/*
* If device is not under access control it is enabled.
* If it needs bus routing do it here as it isn't bus
* type specific. Any conflicts should be checked at this
* stage
*/
if (!pEnt->access->pAccess
&& (pEnt->entityProp & (state == SETUP ? NEED_VGA_ROUTED_SETUP :
NEED_VGA_ROUTED)))
((BusAccPtr)pEnt->busAcc)->set_f(pEnt->busAcc);
}


The crash happens because pEnt->busAcc is NULL for isa devices. Since pAccess
is explicitly cleared up above, the question is should there be a test for pEnt->busAcc
being NULL or should the VGA_ROUTED properties be turned off?


The code that sets the properties is in checkRoutingForScreens (also in xf86Bus.c)
and looks like this:


                     vga = pEnt->busAcc;
                     pEnt->entityProp |= (state == SETUP
                           ? NEED_VGA_ROUTED_SETUP : NEED_VGA_ROUTED);
                       if (state == OPERATING) {
                           if (pAcc->val.type & ResMem)
                               pEnt->entityProp |= NEED_VGA_MEM;
                           else
                               pEnt->entityProp |= NEED_VGA_IO;
                       }

Since I'm dealing with a real, pure isa machine and specifying exclusive resources, the
concept of routing sounds wrong to me. Testing vga against NULL before turning on the
VGA_ROUTED properties sounds right to me. With that test added, my server works for
vesa (orchid fahrenheit) with hga and ati (vga wonder) with hga.
Any thoughts?
Enjoy
Lee


_______________________________________________
Devel mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/devel

Reply via email to