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