hecc_set_bit(priv, HECC_CANMIM, mbx_mask);
        }
 
+       /* Enable tx interrupts */
+       hecc_set_bit(priv, HECC_CANMIM, BIT(HECC_MAX_TX_MBOX) - 1);
+
        /* Prevent message over-write & Enable interrupts */
        hecc_write(priv, HECC_CANOPC, HECC_SET_REG);
        if (priv->use_hecc1int) {
        hecc_set_bit(priv, HECC_CANME, mbx_mask);
        spin_unlock_irqrestore(&priv->mbx_lock, flags);
 
-       hecc_clear_bit(priv, HECC_CANMD, mbx_mask);
-       hecc_set_bit(priv, HECC_CANMIM, mbx_mask);
        hecc_write(priv, HECC_CANTRS, mbx_mask);
 
        return NETDEV_TX_OK;
                        mbx_mask = BIT(mbxno);
                        if (!(mbx_mask & hecc_read(priv, HECC_CANTA)))
                                break;
-                       hecc_clear_bit(priv, HECC_CANMIM, mbx_mask);
                        hecc_write(priv, HECC_CANTA, mbx_mask);
                        spin_lock_irqsave(&priv->mbx_lock, flags);
                        hecc_clear_bit(priv, HECC_CANME, mbx_mask);