RAC: AccessEnable() and AccessDisable() are mandatory.
This commit is contained in:
parent
9c5fc7762e
commit
51fcb58f45
|
@ -60,7 +60,10 @@ int xf86NumEntities = 0;
|
||||||
static int xf86EntityPrivateCount = 0;
|
static int xf86EntityPrivateCount = 0;
|
||||||
BusAccPtr xf86BusAccInfo = NULL;
|
BusAccPtr xf86BusAccInfo = NULL;
|
||||||
|
|
||||||
xf86AccessRec AccessNULL = {NULL,NULL,NULL};
|
static void
|
||||||
|
noopEnableDisable(void *arg) { }
|
||||||
|
|
||||||
|
xf86AccessRec AccessNULL = { noopEnableDisable, noopEnableDisable, NULL };
|
||||||
|
|
||||||
xf86CurrentAccessRec xf86CurrentAccess = {NULL,NULL};
|
xf86CurrentAccessRec xf86CurrentAccess = {NULL,NULL};
|
||||||
|
|
||||||
|
@ -170,10 +173,8 @@ xf86EntityInit(void)
|
||||||
((BusAccPtr)xf86Entities[i]->access->busAcc)->set_f
|
((BusAccPtr)xf86Entities[i]->access->busAcc)->set_f
|
||||||
(xf86Entities[i]->access->busAcc);
|
(xf86Entities[i]->access->busAcc);
|
||||||
pacc = xf86Entities[i]->access->fallback;
|
pacc = xf86Entities[i]->access->fallback;
|
||||||
if (pacc->AccessEnable)
|
|
||||||
pacc->AccessEnable(pacc->arg);
|
pacc->AccessEnable(pacc->arg);
|
||||||
xf86Entities[i]->entityInit(i,xf86Entities[i]->private);
|
xf86Entities[i]->entityInit(i,xf86Entities[i]->private);
|
||||||
if (pacc->AccessDisable)
|
|
||||||
pacc->AccessDisable(pacc->arg);
|
pacc->AccessDisable(pacc->arg);
|
||||||
/* remove init resources after init is processed */
|
/* remove init resources after init is processed */
|
||||||
pprev_next = &Acc;
|
pprev_next = &Acc;
|
||||||
|
@ -213,10 +214,8 @@ EntityEnter(void)
|
||||||
((BusAccPtr)xf86Entities[i]->access->busAcc)->set_f
|
((BusAccPtr)xf86Entities[i]->access->busAcc)->set_f
|
||||||
(xf86Entities[i]->access->busAcc);
|
(xf86Entities[i]->access->busAcc);
|
||||||
pacc = xf86Entities[i]->access->fallback;
|
pacc = xf86Entities[i]->access->fallback;
|
||||||
if (pacc->AccessEnable)
|
|
||||||
pacc->AccessEnable(pacc->arg);
|
pacc->AccessEnable(pacc->arg);
|
||||||
xf86Entities[i]->entityEnter(i,xf86Entities[i]->private);
|
xf86Entities[i]->entityEnter(i,xf86Entities[i]->private);
|
||||||
if (pacc->AccessDisable)
|
|
||||||
pacc->AccessDisable(pacc->arg);
|
pacc->AccessDisable(pacc->arg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -233,10 +232,8 @@ EntityLeave(void)
|
||||||
((BusAccPtr)xf86Entities[i]->access->busAcc)->set_f
|
((BusAccPtr)xf86Entities[i]->access->busAcc)->set_f
|
||||||
(xf86Entities[i]->access->busAcc);
|
(xf86Entities[i]->access->busAcc);
|
||||||
pacc = xf86Entities[i]->access->fallback;
|
pacc = xf86Entities[i]->access->fallback;
|
||||||
if (pacc->AccessEnable)
|
|
||||||
pacc->AccessEnable(pacc->arg);
|
pacc->AccessEnable(pacc->arg);
|
||||||
xf86Entities[i]->entityLeave(i,xf86Entities[i]->private);
|
xf86Entities[i]->entityLeave(i,xf86Entities[i]->private);
|
||||||
if (pacc->AccessDisable)
|
|
||||||
pacc->AccessDisable(pacc->arg);
|
pacc->AccessDisable(pacc->arg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -358,10 +355,10 @@ xf86RemoveEntityFromScreen(ScrnInfoPtr pScrn, int entityIndex)
|
||||||
peacc = xf86Entities[pScrn->entityList[i]]->access;
|
peacc = xf86Entities[pScrn->entityList[i]]->access;
|
||||||
(*ptr) = peacc->next;
|
(*ptr) = peacc->next;
|
||||||
/* disable entity: call disable func */
|
/* disable entity: call disable func */
|
||||||
if (peacc->pAccess && peacc->pAccess->AccessDisable)
|
if (peacc->pAccess)
|
||||||
peacc->pAccess->AccessDisable(peacc->pAccess->arg);
|
peacc->pAccess->AccessDisable(peacc->pAccess->arg);
|
||||||
/* also disable fallback - just in case */
|
/* also disable fallback - just in case */
|
||||||
if (peacc->fallback && peacc->fallback->AccessDisable)
|
if (peacc->fallback)
|
||||||
peacc->fallback->AccessDisable(peacc->fallback->arg);
|
peacc->fallback->AccessDisable(peacc->fallback->arg);
|
||||||
for (i++; i < pScrn->numEntities; i++)
|
for (i++; i < pScrn->numEntities; i++)
|
||||||
pScrn->entityList[i-1] = pScrn->entityList[i];
|
pScrn->entityList[i-1] = pScrn->entityList[i];
|
||||||
|
@ -391,10 +388,10 @@ xf86ClearEntityListForScreen(int scrnIndex)
|
||||||
xf86Entities[entityIndex]->inUse = FALSE;
|
xf86Entities[entityIndex]->inUse = FALSE;
|
||||||
/* disable resource: call the disable function */
|
/* disable resource: call the disable function */
|
||||||
peacc = xf86Entities[entityIndex]->access;
|
peacc = xf86Entities[entityIndex]->access;
|
||||||
if (peacc->pAccess && peacc->pAccess->AccessDisable)
|
if (peacc->pAccess)
|
||||||
peacc->pAccess->AccessDisable(peacc->pAccess->arg);
|
peacc->pAccess->AccessDisable(peacc->pAccess->arg);
|
||||||
/* and the fallback function */
|
/* and the fallback function */
|
||||||
if (peacc->fallback && peacc->fallback->AccessDisable)
|
if (peacc->fallback)
|
||||||
peacc->fallback->AccessDisable(peacc->fallback->arg);
|
peacc->fallback->AccessDisable(peacc->fallback->arg);
|
||||||
/* shared resources are only needed when entity is active: remove */
|
/* shared resources are only needed when entity is active: remove */
|
||||||
xf86DeallocateResourcesForEntity(entityIndex, ResShared);
|
xf86DeallocateResourcesForEntity(entityIndex, ResShared);
|
||||||
|
@ -525,14 +522,14 @@ disableAccess(void)
|
||||||
for (i = 0; i < xf86NumScreens; i++) {
|
for (i = 0; i < xf86NumScreens; i++) {
|
||||||
peacc = xf86Screens[i]->CurrentAccess->pIoAccess;
|
peacc = xf86Screens[i]->CurrentAccess->pIoAccess;
|
||||||
while (peacc) {
|
while (peacc) {
|
||||||
if (peacc->pAccess && peacc->pAccess->AccessDisable)
|
if (peacc->pAccess)
|
||||||
peacc->pAccess->AccessDisable(peacc->pAccess->arg);
|
peacc->pAccess->AccessDisable(peacc->pAccess->arg);
|
||||||
peacc = peacc->next;
|
peacc = peacc->next;
|
||||||
}
|
}
|
||||||
xf86Screens[i]->CurrentAccess->pIoAccess = NULL;
|
xf86Screens[i]->CurrentAccess->pIoAccess = NULL;
|
||||||
peacc = xf86Screens[i]->CurrentAccess->pMemAccess;
|
peacc = xf86Screens[i]->CurrentAccess->pMemAccess;
|
||||||
while (peacc) {
|
while (peacc) {
|
||||||
if (peacc->pAccess && peacc->pAccess->AccessDisable)
|
if (peacc->pAccess)
|
||||||
peacc->pAccess->AccessDisable(peacc->pAccess->arg);
|
peacc->pAccess->AccessDisable(peacc->pAccess->arg);
|
||||||
peacc = peacc->next;
|
peacc = peacc->next;
|
||||||
}
|
}
|
||||||
|
@ -541,7 +538,6 @@ disableAccess(void)
|
||||||
/* then call the generic entity disable funcs */
|
/* then call the generic entity disable funcs */
|
||||||
for (i = 0; i < xf86NumEntities; i++) {
|
for (i = 0; i < xf86NumEntities; i++) {
|
||||||
pacc = xf86Entities[i]->access->fallback;
|
pacc = xf86Entities[i]->access->fallback;
|
||||||
if (pacc->AccessDisable)
|
|
||||||
pacc->AccessDisable(pacc->arg);
|
pacc->AccessDisable(pacc->arg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -692,16 +688,16 @@ xf86EnableAccess(ScrnInfoPtr pScrn)
|
||||||
pScrn->CurrentAccess->pMemAccess = NULL;
|
pScrn->CurrentAccess->pMemAccess = NULL;
|
||||||
while (pceAcc) {
|
while (pceAcc) {
|
||||||
pAcc = pceAcc->pAccess;
|
pAcc = pceAcc->pAccess;
|
||||||
if ( pAcc && pAcc->AccessDisable)
|
if (pAcc)
|
||||||
(*pAcc->AccessDisable)(pAcc->arg);
|
pAcc->AccessDisable(pAcc->arg);
|
||||||
pceAcc = pceAcc->next;
|
pceAcc = pceAcc->next;
|
||||||
}
|
}
|
||||||
if (pScrn->busAccess)
|
if (pScrn->busAccess)
|
||||||
((BusAccPtr)pScrn->busAccess)->set_f(pScrn->busAccess);
|
((BusAccPtr)pScrn->busAccess)->set_f(pScrn->busAccess);
|
||||||
while (peAcc) {
|
while (peAcc) {
|
||||||
pAcc = peAcc->pAccess;
|
pAcc = peAcc->pAccess;
|
||||||
if (pAcc && pAcc->AccessEnable)
|
if (pAcc)
|
||||||
(*pAcc->AccessEnable)(pAcc->arg);
|
pAcc->AccessEnable(pAcc->arg);
|
||||||
peAcc = peAcc->next;
|
peAcc = peAcc->next;
|
||||||
}
|
}
|
||||||
pScrn->CurrentAccess->pIoAccess = (EntityAccessPtr) pScrn->access;
|
pScrn->CurrentAccess->pIoAccess = (EntityAccessPtr) pScrn->access;
|
||||||
|
@ -713,8 +709,8 @@ xf86EnableAccess(ScrnInfoPtr pScrn)
|
||||||
tmp = pceAcc;
|
tmp = pceAcc;
|
||||||
while (pceAcc) {
|
while (pceAcc) {
|
||||||
pAcc = pceAcc->pAccess;
|
pAcc = pceAcc->pAccess;
|
||||||
if (pAcc && pAcc->AccessDisable)
|
if (pAcc)
|
||||||
(*pAcc->AccessDisable)(pAcc->arg);
|
pAcc->AccessDisable(pAcc->arg);
|
||||||
pceAcc = pceAcc->next;
|
pceAcc = pceAcc->next;
|
||||||
}
|
}
|
||||||
pceAcc = pScrn->CurrentAccess->pMemAccess;
|
pceAcc = pScrn->CurrentAccess->pMemAccess;
|
||||||
|
@ -722,8 +718,8 @@ xf86EnableAccess(ScrnInfoPtr pScrn)
|
||||||
&& tmp !=pceAcc) {
|
&& tmp !=pceAcc) {
|
||||||
while (pceAcc) {
|
while (pceAcc) {
|
||||||
pAcc = pceAcc->pAccess;
|
pAcc = pceAcc->pAccess;
|
||||||
if (pAcc && pAcc->AccessDisable)
|
if (pAcc)
|
||||||
(*pAcc->AccessDisable)(pAcc->arg);
|
pAcc->AccessDisable(pAcc->arg);
|
||||||
pceAcc = pceAcc->next;
|
pceAcc = pceAcc->next;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -734,8 +730,8 @@ xf86EnableAccess(ScrnInfoPtr pScrn)
|
||||||
}
|
}
|
||||||
while (pceAcc) { /* current Mem != pAccess */
|
while (pceAcc) { /* current Mem != pAccess */
|
||||||
pAcc = pceAcc->pAccess;
|
pAcc = pceAcc->pAccess;
|
||||||
if (pAcc && pAcc->AccessDisable)
|
if (pAcc)
|
||||||
(*pAcc->AccessDisable)(pAcc->arg);
|
pAcc->AccessDisable(pAcc->arg);
|
||||||
pceAcc = pceAcc->next;
|
pceAcc = pceAcc->next;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -743,8 +739,8 @@ xf86EnableAccess(ScrnInfoPtr pScrn)
|
||||||
((BusAccPtr)pScrn->busAccess)->set_f(pScrn->busAccess);
|
((BusAccPtr)pScrn->busAccess)->set_f(pScrn->busAccess);
|
||||||
while (peAcc) {
|
while (peAcc) {
|
||||||
pAcc = peAcc->pAccess;
|
pAcc = peAcc->pAccess;
|
||||||
if (pAcc && pAcc->AccessEnable)
|
if (pAcc)
|
||||||
(*pAcc->AccessEnable)(pAcc->arg);
|
pAcc->AccessEnable(pAcc->arg);
|
||||||
peAcc = peAcc->next;
|
peAcc = peAcc->next;
|
||||||
}
|
}
|
||||||
pScrn->CurrentAccess->pMemAccess =
|
pScrn->CurrentAccess->pMemAccess =
|
||||||
|
@ -760,16 +756,16 @@ xf86EnableAccess(ScrnInfoPtr pScrn)
|
||||||
pScrn->CurrentAccess->pIoAccess = NULL;
|
pScrn->CurrentAccess->pIoAccess = NULL;
|
||||||
while (pceAcc) {
|
while (pceAcc) {
|
||||||
pAcc = pceAcc->pAccess;
|
pAcc = pceAcc->pAccess;
|
||||||
if ( pAcc && pAcc->AccessDisable)
|
if (pAcc)
|
||||||
(*pAcc->AccessDisable)(pAcc->arg);
|
pAcc->AccessDisable(pAcc->arg);
|
||||||
pceAcc = pceAcc->next;
|
pceAcc = pceAcc->next;
|
||||||
}
|
}
|
||||||
if (pScrn->busAccess)
|
if (pScrn->busAccess)
|
||||||
((BusAccPtr)pScrn->busAccess)->set_f(pScrn->busAccess);
|
((BusAccPtr)pScrn->busAccess)->set_f(pScrn->busAccess);
|
||||||
while (peAcc) {
|
while (peAcc) {
|
||||||
pAcc = peAcc->pAccess;
|
pAcc = peAcc->pAccess;
|
||||||
if (pAcc && pAcc->AccessEnable)
|
if (pAcc)
|
||||||
(*pAcc->AccessEnable)(pAcc->arg);
|
pAcc->AccessEnable(pAcc->arg);
|
||||||
peAcc = peAcc->next;
|
peAcc = peAcc->next;
|
||||||
}
|
}
|
||||||
pScrn->CurrentAccess->pMemAccess = (EntityAccessPtr) pScrn->access;
|
pScrn->CurrentAccess->pMemAccess = (EntityAccessPtr) pScrn->access;
|
||||||
|
@ -808,13 +804,11 @@ xf86SetCurrentAccess(Bool Enable, ScrnInfoPtr pScrn)
|
||||||
|
|
||||||
while (pceAcc) {
|
while (pceAcc) {
|
||||||
pAcc = pceAcc->pAccess;
|
pAcc = pceAcc->pAccess;
|
||||||
if ( pAcc) {
|
if (pAcc) {
|
||||||
if (!Enable) {
|
if (Enable) {
|
||||||
if (pAcc->AccessDisable)
|
pAcc->AccessEnable(pAcc->arg);
|
||||||
(*pAcc->AccessDisable)(pAcc->arg);
|
|
||||||
} else {
|
} else {
|
||||||
if (pAcc->AccessEnable)
|
pAcc->AccessDisable(pAcc->arg);
|
||||||
(*pAcc->AccessEnable)(pAcc->arg);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
pceAcc = pceAcc->next;
|
pceAcc = pceAcc->next;
|
||||||
|
@ -1733,7 +1727,7 @@ setAccess(EntityPtr pEnt, xf86State state)
|
||||||
if (pEnt->rac->old) {
|
if (pEnt->rac->old) {
|
||||||
/* give it to the driver, leave state disabled */
|
/* give it to the driver, leave state disabled */
|
||||||
pEnt->rac->old->io = org_io;
|
pEnt->rac->old->io = org_io;
|
||||||
} else if (org_io->AccessEnable) {
|
} else {
|
||||||
/* driver doesn't want it - enable generic access */
|
/* driver doesn't want it - enable generic access */
|
||||||
org_io->AccessEnable(org_io->arg);
|
org_io->AccessEnable(org_io->arg);
|
||||||
}
|
}
|
||||||
|
@ -1744,7 +1738,7 @@ setAccess(EntityPtr pEnt, xf86State state)
|
||||||
if (pEnt->rac->old) {
|
if (pEnt->rac->old) {
|
||||||
/* give it to the driver, leave state disabled */
|
/* give it to the driver, leave state disabled */
|
||||||
pEnt->rac->old->io_mem = org_mem_io;
|
pEnt->rac->old->io_mem = org_mem_io;
|
||||||
} else if (org_mem_io->AccessEnable) {
|
} else {
|
||||||
/* driver doesn't want it - enable generic access */
|
/* driver doesn't want it - enable generic access */
|
||||||
org_mem_io->AccessEnable(org_mem_io->arg);
|
org_mem_io->AccessEnable(org_mem_io->arg);
|
||||||
}
|
}
|
||||||
|
@ -1755,7 +1749,7 @@ setAccess(EntityPtr pEnt, xf86State state)
|
||||||
if (pEnt->rac->old) {
|
if (pEnt->rac->old) {
|
||||||
/* give it to the driver, leave state disabled */
|
/* give it to the driver, leave state disabled */
|
||||||
pEnt->rac->old->mem = org_mem;
|
pEnt->rac->old->mem = org_mem;
|
||||||
} else if (org_mem->AccessEnable) {
|
} else {
|
||||||
/* driver doesn't want it - enable generic access */
|
/* driver doesn't want it - enable generic access */
|
||||||
org_mem->AccessEnable(org_mem->arg);
|
org_mem->AccessEnable(org_mem->arg);
|
||||||
}
|
}
|
||||||
|
@ -1763,27 +1757,26 @@ setAccess(EntityPtr pEnt, xf86State state)
|
||||||
|
|
||||||
if (!(prop & NEED_MEM_SHARED)){
|
if (!(prop & NEED_MEM_SHARED)){
|
||||||
if (prop & NEED_MEM) {
|
if (prop & NEED_MEM) {
|
||||||
if (acc_mem && acc_mem->AccessEnable)
|
if (acc_mem)
|
||||||
acc_mem->AccessEnable(acc_mem->arg);
|
acc_mem->AccessEnable(acc_mem->arg);
|
||||||
} else {
|
} else {
|
||||||
if (acc_mem && acc_mem->AccessDisable)
|
if (acc_mem)
|
||||||
acc_mem->AccessDisable(acc_mem->arg);
|
acc_mem->AccessDisable(acc_mem->arg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(prop & NEED_IO_SHARED)) {
|
if (!(prop & NEED_IO_SHARED)) {
|
||||||
if (prop & NEED_IO) {
|
if (prop & NEED_IO) {
|
||||||
if (acc_io && acc_io->AccessEnable)
|
if (acc_io)
|
||||||
acc_io->AccessEnable(acc_io->arg);
|
acc_io->AccessEnable(acc_io->arg);
|
||||||
} else {
|
} else {
|
||||||
if (acc_io && acc_io->AccessDisable)
|
if (acc_io)
|
||||||
acc_io->AccessDisable(acc_io->arg);
|
acc_io->AccessDisable(acc_io->arg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* disable shared resources */
|
/* disable shared resources */
|
||||||
if (pEnt->access->pAccess
|
if (pEnt->access->pAccess)
|
||||||
&& pEnt->access->pAccess->AccessDisable)
|
|
||||||
pEnt->access->pAccess->AccessDisable(pEnt->access->pAccess->arg);
|
pEnt->access->pAccess->AccessDisable(pEnt->access->pAccess->arg);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue
Block a user