]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - ipc/ipcdev.git/blobdiff - packages/ti/sdo/ipc/family/vayu/NotifySetup.c
SDOCM00106949 IPC interrupt preempts itself on ARP32 (EVE)
[ipc/ipcdev.git] / packages / ti / sdo / ipc / family / vayu / NotifySetup.c
index 80a4bf8a1929d7467e4ef4c81f7c5fcdd269fba1..2fd11ef17cbc30ace594febfe5677204cbf9b3fb 100644 (file)
@@ -246,11 +246,12 @@ Void NotifySetup_plugHwi(UInt16 remoteProcId, Int cpuIntrNum,
     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 */
@@ -309,9 +310,15 @@ Void NotifySetup_plugHwi(UInt16 remoteProcId, Int cpuIntrNum,
     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 */
@@ -331,7 +338,7 @@ Void NotifySetup_plugHwi(UInt16 remoteProcId, Int cpuIntrNum,
 #error Invalid target
 #endif
 
-    /* restore global interrupts */
+    /* restore interrupts */
     Hwi_restore(key);
 }