Merge branch 'dev_ck_v2.1-GYL' into 'dev_ck_v2.1'
删除了ul方向数据包是否及时被RC读取的判断---Bug #1051 See merge request ucp/driver/ucp4008_platform_spu!29
This commit is contained in:
commit
febc9a0439
@ -176,11 +176,12 @@ static inline int32_t ucp_pcie_dl_worker(uint32_t inst_id)
|
||||
}
|
||||
}
|
||||
|
||||
uint32_t extInc, intInc;
|
||||
uint32_t t_idx;
|
||||
uint32_t extInc = 0;
|
||||
uint32_t intInc = 0;
|
||||
uint32_t t_idx = 0;
|
||||
uint32_t i = 0;
|
||||
UcpPcieDmaThread_t* pDmaThread;
|
||||
UcpPcieDmaComplete_t* pCmplt;
|
||||
UcpPcieDmaThread_t* pDmaThread = NULL;
|
||||
UcpPcieDmaComplete_t* pCmplt = NULL;
|
||||
uint32_t num_rx_queues = MAX_Q_NUM_DL_TRAFFIC;//跟业务queue对应,共6个queue
|
||||
//按照传输队列判断,是否有队列已经传输完成,传输队列一共有6个
|
||||
for(i = 0; i < MAX_INSTANCE_NUM; i++)
|
||||
@ -222,19 +223,21 @@ static inline int32_t ucp_pcie_dl_worker(uint32_t inst_id)
|
||||
}
|
||||
}
|
||||
//uint32_t dma_idx;
|
||||
uint32_t n, N;
|
||||
uint32_t n =0;
|
||||
uint32_t N = 0;
|
||||
//uint32_t ext_size;
|
||||
uint32_t freed;
|
||||
uint32_t ext_idx;
|
||||
uint32_t freed = 0;
|
||||
uint32_t ext_idx = 0;
|
||||
//int8_t desc_idx;
|
||||
uint32_t pcieOffset;
|
||||
uint32_t H, L;
|
||||
uint64_t dst_addr;
|
||||
UcpExtTraffic_t* ext_ch;
|
||||
PcieTrafficDescriptor_t *desc_hdr;
|
||||
PcieTrafficDescriptor_t *desc;
|
||||
MsgMemBufAttr_t* attr;
|
||||
DwPcieEpDmaChDesc_t rdma_desc_ch[MAX_CH_NUM_UCP_DMA];
|
||||
uint32_t pcieOffset = 0;
|
||||
uint32_t H = 0;
|
||||
uint32_t L = 0;
|
||||
uint64_t dst_addr = 0;
|
||||
UcpExtTraffic_t* ext_ch = NULL;
|
||||
PcieTrafficDescriptor_t *desc_hdr = NULL;
|
||||
PcieTrafficDescriptor_t *desc = NULL;
|
||||
MsgMemBufAttr_t* attr = NULL;
|
||||
DwPcieEpDmaChDesc_t rdma_desc_ch[MAX_CH_NUM_UCP_DMA] = {0};
|
||||
//判断是否有业务队列需要接收数据包,如果有需要接收的数据,则寻找一个空闲DMA读通道进行接收
|
||||
for (k = 0; k < num_rx_queues; k++) {
|
||||
ext_ch = pUcpPcieMemInfo->pExtDlTraffic[inst_id][k];
|
||||
@ -411,10 +414,11 @@ static inline int32_t ucp_pcie_ul_worker(uint32_t inst_id)
|
||||
}
|
||||
}
|
||||
|
||||
uint32_t extInc, intInc;
|
||||
uint32_t t_idx;
|
||||
UcpPcieDmaThread_t* pDmaThread;
|
||||
UcpPcieDmaComplete_t* pCmplt;
|
||||
uint32_t extInc = 0;
|
||||
uint32_t intInc = 0;
|
||||
uint32_t t_idx = 0;
|
||||
UcpPcieDmaThread_t* pDmaThread = NULL;
|
||||
UcpPcieDmaComplete_t* pCmplt = NULL;
|
||||
uint32_t num_tx_queues = MAX_Q_NUM_UL_TRAFFIC;
|
||||
uint32_t i = 0;
|
||||
for(i = 0; i < MAX_INSTANCE_NUM; i++)
|
||||
@ -464,22 +468,24 @@ static inline int32_t ucp_pcie_ul_worker(uint32_t inst_id)
|
||||
}
|
||||
}
|
||||
//uint32_t dma_idx;
|
||||
uint32_t n, N;
|
||||
uint32_t int_num, ext_num;
|
||||
uint32_t n = 0;
|
||||
uint32_t N = 0;
|
||||
uint32_t int_num, ext_num = 0;
|
||||
//uint32_t ext_size;
|
||||
uint32_t freed;
|
||||
uint32_t ext_idx;
|
||||
uint32_t freed = 0;
|
||||
uint32_t ext_idx = 0;
|
||||
//uint32_t desc_idx;
|
||||
//int8_t buf_idx;
|
||||
uint32_t pcieOffset;
|
||||
uint32_t H, L;
|
||||
uint64_t src_addr;
|
||||
UcpExtTraffic_t* ext_ch;
|
||||
MsgQueueLocalInfo_t* int_ch;
|
||||
PcieTrafficDescriptor_t *desc_hdr;
|
||||
PcieTrafficDescriptor_t *desc;
|
||||
MsgMemBufAttr_t* attr;
|
||||
DwPcieEpDmaChDesc_t wdma_desc_ch[MAX_CH_NUM_UCP_DMA];
|
||||
uint32_t pcieOffset = 0;
|
||||
uint32_t H = 0;
|
||||
uint32_t L = 0;
|
||||
uint64_t src_addr = 0;
|
||||
UcpExtTraffic_t* ext_ch = NULL;
|
||||
MsgQueueLocalInfo_t* int_ch = NULL;
|
||||
PcieTrafficDescriptor_t *desc_hdr = NULL;
|
||||
PcieTrafficDescriptor_t *desc = NULL;
|
||||
MsgMemBufAttr_t* attr = NULL;
|
||||
DwPcieEpDmaChDesc_t wdma_desc_ch[MAX_CH_NUM_UCP_DMA] = {0};
|
||||
//检查是否有通道需要有数据发送,一共6个queue,逐个通道检查
|
||||
for (k = 0; k < num_tx_queues; k++, N = 0) {
|
||||
//ucp_queue_ul_update_in(k);
|
||||
@ -489,7 +495,7 @@ static inline int32_t ucp_pcie_ul_worker(uint32_t inst_id)
|
||||
int_num = int_ch->in - int_ch->out;//本次要传输的数据包的个数
|
||||
if(0 == int_num)
|
||||
{
|
||||
PCIE_DEBUG_LOG("UL no pkt need send! TRCCNT[[%d][%d] = %d epcntIng = %d\n", inst_id, k, pCnt->dlTxCounter[inst_id][k], ext_ch->epCntIng);
|
||||
PCIE_DEBUG_LOG("UL no pkt need send! TRCCNT[[%d][%d] = %d epcntIng = %d\n", inst_id, k, pCnt->ulTxCounter[inst_id][k], ext_ch->epCntIng);
|
||||
continue;
|
||||
}
|
||||
if(int_num > pCnt->ulDescNum[inst_id][k])//MAX_THREAD_NUM_UCP_DMA)
|
||||
@ -502,7 +508,9 @@ static inline int32_t ucp_pcie_ul_worker(uint32_t inst_id)
|
||||
}
|
||||
PCIE_DEBUG_LOG("UL localUlQueue[%d][%d] int_ch->in=%d int_ch->out=%d int_num= %d \n", inst_id, k, int_ch->in, int_ch->out, int_num);
|
||||
PCIE_DEBUG_LOG("UL pCnt->ulDescNum[%d][%d] = %d ext_ch->epCntIng=%d pCnt->ulRxCounter[%d][%d]=%d \n",
|
||||
inst_id, k, pCnt->ulDescNum[inst_id][k], ext_ch->epCntIng, inst_id, k, pCnt->ulRxCounter[inst_id][k]);
|
||||
inst_id, k, pCnt->ulDescNum[inst_id][k], ext_ch->epCntIng, inst_id, k, pCnt->ulRxCounter[inst_id][k]);
|
||||
N = int_num;
|
||||
#if 0
|
||||
ext_num = pCnt->ulDescNum[inst_id][k] - ((ext_ch->epCntIng - pCnt->ulRxCounter[inst_id][k]) & pCnt->ulDescNum[inst_id][k]); //此处需要对描述符取模,否则如果一直发送,但是没有接收,则会导致DMA无法启动
|
||||
N = (int_num < ext_num) ? int_num : ext_num; //此处是判断Bar空间上的传输描述符个数是否够本次传输,取出本次传输的数据包的个数
|
||||
if (0 == N)
|
||||
@ -510,6 +518,7 @@ static inline int32_t ucp_pcie_ul_worker(uint32_t inst_id)
|
||||
PCIE_DEBUG_LOG("UL not free bar desc N = %d\n", N);
|
||||
continue;
|
||||
}
|
||||
#endif
|
||||
PCIE_DEBUG_LOG("UL INT_CH[%d][%d] = 0x%x N = %d in = %d out = %d ext_num = %d \n", inst_id, k, (uint32_t)int_ch, N, int_ch->in, int_ch->out, ext_num);
|
||||
PCIE_DEBUG_LOG("UL pCnt->ulRxCounter[%d][%d]= %d pCnt->ulTxCounter[%d][%d] = %d\n", inst_id, k, pCnt->ulRxCounter[inst_id][k], inst_id, k, pCnt->ulTxCounter[inst_id][k]);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user