|
@@ -2410,6 +2410,7 @@ QDF_STATUS hif_post_recv_buffers_for_pipe(struct HIF_CE_pipe_info *pipe_info)
|
|
|
struct hif_softc *scn = HIF_GET_SOFTC(pipe_info->HIF_CE_state);
|
|
|
QDF_STATUS status;
|
|
|
uint32_t bufs_posted = 0;
|
|
|
+ unsigned int ce_id;
|
|
|
|
|
|
buf_sz = pipe_info->buf_sz;
|
|
|
if (buf_sz == 0) {
|
|
@@ -2418,6 +2419,7 @@ QDF_STATUS hif_post_recv_buffers_for_pipe(struct HIF_CE_pipe_info *pipe_info)
|
|
|
}
|
|
|
|
|
|
ce_hdl = pipe_info->ce_hdl;
|
|
|
+ ce_id = ((struct CE_state *)ce_hdl)->id;
|
|
|
|
|
|
qdf_spin_lock_bh(&pipe_info->recv_bufs_needed_lock);
|
|
|
while (atomic_read(&pipe_info->recv_bufs_needed) > 0) {
|
|
@@ -2427,6 +2429,9 @@ QDF_STATUS hif_post_recv_buffers_for_pipe(struct HIF_CE_pipe_info *pipe_info)
|
|
|
atomic_dec(&pipe_info->recv_bufs_needed);
|
|
|
qdf_spin_unlock_bh(&pipe_info->recv_bufs_needed_lock);
|
|
|
|
|
|
+ hif_record_ce_desc_event(scn, ce_id,
|
|
|
+ HIF_RX_DESC_PRE_NBUF_ALLOC, NULL, NULL,
|
|
|
+ 0, 0);
|
|
|
nbuf = qdf_nbuf_alloc(scn->qdf_dev, buf_sz, 0, 4, false);
|
|
|
if (!nbuf) {
|
|
|
hif_post_recv_buffers_failure(pipe_info, nbuf,
|
|
@@ -2436,6 +2441,9 @@ QDF_STATUS hif_post_recv_buffers_for_pipe(struct HIF_CE_pipe_info *pipe_info)
|
|
|
return QDF_STATUS_E_NOMEM;
|
|
|
}
|
|
|
|
|
|
+ hif_record_ce_desc_event(scn, ce_id,
|
|
|
+ HIF_RX_DESC_PRE_NBUF_MAP, NULL, nbuf,
|
|
|
+ 0, 0);
|
|
|
/*
|
|
|
* qdf_nbuf_peek_header(nbuf, &data, &unused);
|
|
|
* CE_data = dma_map_single(dev, data, buf_sz, );
|
|
@@ -2454,7 +2462,9 @@ QDF_STATUS hif_post_recv_buffers_for_pipe(struct HIF_CE_pipe_info *pipe_info)
|
|
|
}
|
|
|
|
|
|
CE_data = qdf_nbuf_get_frag_paddr(nbuf, 0);
|
|
|
-
|
|
|
+ hif_record_ce_desc_event(scn, ce_id,
|
|
|
+ HIF_RX_DESC_POST_NBUF_MAP, NULL, nbuf,
|
|
|
+ 0, 0);
|
|
|
qdf_mem_dma_sync_single_for_device(scn->qdf_dev, CE_data,
|
|
|
buf_sz, DMA_FROM_DEVICE);
|
|
|
status = ce_recv_buf_enqueue(ce_hdl, (void *)nbuf, CE_data);
|