--- old/r128_probe.c Mon Nov 5 18:37:50 2001 +++ new/r128_probe.c Sat Sep 7 11:27:30 2002 @@ -231,12 +231,53 @@ foundScreen = TRUE; + pEnt = xf86GetEntityInfo(usedChips[i]); + + /* VE/M6 card support Dual-Head, mark the entity as sharable*/ + /* not sure which r128 cards are dual-head capable, so I chose just the mobilities*/ + if(pEnt->chipset == PCI_CHIP_RAGE128LE || + pEnt->chipset == PCI_CHIP_RAGE128LF || + pEnt->chipset == PCI_CHIP_RAGE128MF || + pEnt->chipset == PCI_CHIP_RAGE128ML) + { + static int instance = 0; + DevUnion* pPriv; + + xf86SetEntitySharable(usedChips[i]); + xf86SetEntityInstanceForScreen(pScrn, + pScrn->entityList[0], instance); + + if(gR128EntityIndex < 0) + { + gR128EntityIndex = xf86AllocateEntityPrivateIndex(); + pPriv = xf86GetEntityPrivate(pScrn->entityList[0], + gR128EntityIndex); + + if (!pPriv->ptr) + { + R128EntPtr pR128Ent; + pPriv->ptr = xnfcalloc(sizeof(R128EntRec), 1); + pR128Ent = pPriv->ptr; + pR128Ent->IsDRIEnabled = FALSE; + pR128Ent->BypassSecondary = FALSE; + pR128Ent->HasSecondary = FALSE; + pR128Ent->IsSecondaryRestored = FALSE; + } + } + instance++; + } + xfree(pEnt); + } + +/* not sure if this is needed xf86ConfigActivePciEntity(pScrn, usedChips[i], R128PciChipsets, 0, 0, 0, 0, 0); } xfree(pEnt); } +*/ + xfree(usedChips); xfree(devSections);