/*! * ======== InterruptDsp_intUnregister ======== */ Void InterruptDsp_intUnregister(UInt16 remoteProcId, IInterrupt_IntInfo *intInfo) { Hwi_Handle hwiHandle; Int index; InterruptDsp_FxnTable *table; if (remoteProcId == InterruptDsp_hostProcId) { index = 0; } else if (remoteProcId == InterruptDsp_core0ProcId) { index = 1; } else { /* DSP cannot talk to CORE1 */ Assert_isTrue(FALSE, ti_sdo_ipc_Ipc_A_internal); } /* Disable the mailbox interrupt source */ InterruptDsp_intDisable(remoteProcId, intInfo); InterruptDsp_module->numPlugged--; if (InterruptDsp_module->numPlugged == 0) { /* Delete the Hwi */ hwiHandle = Hwi_getHandle(intInfo->intVectorId); Hwi_delete(&hwiHandle); } table = &(InterruptDsp_module->fxnTable[index]); table->func = NULL; table->arg = NULL; }
/*! * ======== InterruptDsp_intUnregister ======== */ Void InterruptDsp_intUnregister(UInt16 remoteProcId, IInterrupt_IntInfo *intInfo) { Hwi_Handle hwiHandle; Int index; UInt eventId; InterruptDsp_FxnTable *table; Assert_isTrue(((remoteProcId < MultiProc_getNumProcsInCluster()) && (remoteProcId == MultiProc_self())), ti_sdo_ipc_Ipc_A_internal); index = PROCID(remoteProcId); /* Disable the mailbox interrupt source */ InterruptDsp_intDisable(remoteProcId, intInfo); /* Make sure the interrupt only gets plugged once */ eventId = InterruptDsp_dspInterruptTable[index]; InterruptDsp_module->numPlugged--; EventCombiner_disableEvent(eventId); if (InterruptDsp_module->numPlugged == 0) { /* Delete the Hwi */ hwiHandle = Hwi_getHandle(intInfo->intVectorId); Hwi_delete(&hwiHandle); } table = &(InterruptDsp_module->fxnTable[index]); table->func = NULL; table->arg = NULL; }
/*! * ======== InterruptDsp_intUnregister ======== */ Void InterruptDsp_intUnregister(UInt16 remoteProcId, IInterrupt_IntInfo *intInfo) { Hwi_Handle hwiHandle; Int index; InterruptDsp_FxnTable *table; if (remoteProcId == InterruptDsp_hostProcId) { index = 0; } else if (remoteProcId == InterruptDsp_videoProcId) { index = 1; } else if (remoteProcId == InterruptDsp_vpssProcId) { index = 2; } else { Assert_isTrue(FALSE, ti_sdo_ipc_Ipc_A_internal); return; /* keep Coverity happy */ } /* Disable the mailbox interrupt source */ InterruptDsp_intDisable(remoteProcId, intInfo); InterruptDsp_module->numPlugged--; if (InterruptDsp_module->numPlugged == 0) { /* Delete the Hwi */ hwiHandle = Hwi_getHandle(intInfo->intVectorId); Hwi_delete(&hwiHandle); } table = &(InterruptDsp_module->fxnTable[index]); table->func = NULL; table->arg = NULL; }
/*! * ======== InterruptDsp_intUnregister ======== */ Void InterruptDsp_intUnregister(UInt16 remoteProcId, IInterrupt_IntInfo *intInfo) { Hwi_Handle hwiHandle; InterruptDsp_FxnTable *table; /* Disable the mailbox interrupt source */ InterruptDsp_intDisable(remoteProcId, intInfo); InterruptDsp_module->numPlugged--; if (InterruptDsp_module->numPlugged == 0) { /* Delete the Hwi */ hwiHandle = Hwi_getHandle(intInfo->intVectorId); Hwi_delete(&hwiHandle); } /* Clear the FxnTable entry for the remote processor */ table = &(InterruptDsp_module->fxnTable); table->func = NULL; table->arg = 0; }