diff --git a/packages/ti/sdo/ipc/family/vayu/NotifySetup.c b/packages/ti/sdo/ipc/family/vayu/NotifySetup.c
index 80a4bf8a1929d7467e4ef4c81f7c5fcdd269fba1..2fd11ef17cbc30ace594febfe5677204cbf9b3fb 100644 (file)
UInt combinedEventId;
#elif defined(xdc_target__isaCompatible_arp32)
UInt mbxIdx;
+ Bits16 mask;
#endif
Error_init(&eb);
- /* disable global interrupts (TODO: should be a gated module) */
+ /* disable interrupts */
key = Hwi_disable();
/* map processor id to virtual id */
if (NotifySetup_module->numPlugged[mbxIdx] == 1) {
eventId = NotifySetup_module->interruptTable[virtId];
+ /* compute the hwi mask */
+ mask = (1 << NotifySetup_eveIntVectId_INTC0)
+ | (1 << NotifySetup_eveIntVectId_INTC1);
+
Hwi_Params_init(&hwiParams);
hwiParams.arg = eventId;
hwiParams.vectorNum = cpuIntrNum;
+ hwiParams.maskSetting = Hwi_MaskingOption_BITMASK;
+ hwiParams.disableIerMask = mask;
Hwi_create(eventId, NotifySetup_dispatchIsr, &hwiParams, &eb);
/* TODO: add error handling */
#error Invalid target
#endif
- /* restore global interrupts */
+ /* restore interrupts */
Hwi_restore(key);
}