]> rtime.felk.cvut.cz Git - arc.git/commitdiff
Can: Changed so that Can_Write() can be done from within the Tx interrupt. Closes...
authormahi <devnull@localhost>
Sun, 6 May 2012 21:50:35 +0000 (23:50 +0200)
committermahi <devnull@localhost>
Sun, 6 May 2012 21:50:35 +0000 (23:50 +0200)
arch/ppc/mpc55xx/drivers/Can.c

index 945e431b91199a28fa8f02b6b8267545769e4a55..5084e128295a8d9015a753cf3b8ffd4c3ae47009 100644 (file)
@@ -514,15 +514,15 @@ static void Can_Isr_Tx(Can_UnitType *uPtr)
     for (; mbMask; mbMask &= ~(1ull << mbNr)) {\r
         mbNr = ilog2_64(mbMask);\r
 \r
-        if (GET_CALLBACKS()->TxConfirmation != NULL) {\r
-            GET_CALLBACKS()->TxConfirmation(uPtr->cfgCtrlPtr->Can_Arc_TxPduHandles[mbNr-uPtr->cfgCtrlPtr->Can_Arc_TxMailboxStart]);\r
-        }\r
         uPtr->cfgCtrlPtr->Can_Arc_TxPduHandles[mbNr-uPtr->cfgCtrlPtr->Can_Arc_TxMailboxStart] = 0;\r
-//        uPtr->swPduHandles[mbNr] = 0; // Is this really necessary ??\r
 \r
-        // Clear interrupt\r
+        // Clear interrupt and mark txBox as Free\r
         clearMbFlag(canHw,mbNr);\r
         uPtr->mbTxFree |= (1ull << mbNr);\r
+\r
+        if (GET_CALLBACKS()->TxConfirmation != NULL) {\r
+            GET_CALLBACKS()->TxConfirmation(uPtr->cfgCtrlPtr->Can_Arc_TxPduHandles[mbNr-uPtr->cfgCtrlPtr->Can_Arc_TxMailboxStart]);\r
+        }\r
     }\r
 }\r
 \r