qcacld-3.0: Log rx packet in packetlog as per rx ind message
Log rx packet in packetlog as per HTT_T2H_MSG_TYPE_RX_IN_ORD_PADDR_IND message from firmware. CRs-Fixed: 970647 Change-Id: I5773b67a9269063531d038d46ac404c978818dcc
This commit is contained in:
@@ -1937,6 +1937,14 @@ void htt_rx_mon_note_capture_channel(htt_pdev_handle pdev, int mon_ch)
|
|||||||
extern void
|
extern void
|
||||||
dump_pkt(qdf_nbuf_t nbuf, uint32_t nbuf_paddr, int len);
|
dump_pkt(qdf_nbuf_t nbuf, uint32_t nbuf_paddr, int len);
|
||||||
|
|
||||||
|
uint32_t htt_rx_amsdu_rx_in_order_get_pktlog(qdf_nbuf_t rx_ind_msg)
|
||||||
|
{
|
||||||
|
uint32_t *msg_word;
|
||||||
|
|
||||||
|
msg_word = (uint32_t *) qdf_nbuf_data(rx_ind_msg);
|
||||||
|
return HTT_RX_IN_ORD_PADDR_IND_PKTLOG_GET(*msg_word);
|
||||||
|
}
|
||||||
|
|
||||||
/* Return values: 1 - success, 0 - failure */
|
/* Return values: 1 - success, 0 - failure */
|
||||||
int
|
int
|
||||||
htt_rx_amsdu_rx_in_order_pop_ll(htt_pdev_handle pdev,
|
htt_rx_amsdu_rx_in_order_pop_ll(htt_pdev_handle pdev,
|
||||||
|
@@ -862,4 +862,7 @@ htt_rx_offload_paddr_msdu_pop_ll(htt_pdev_handle pdev,
|
|||||||
int *tid,
|
int *tid,
|
||||||
uint8_t *fw_desc,
|
uint8_t *fw_desc,
|
||||||
qdf_nbuf_t *head_buf, qdf_nbuf_t *tail_buf);
|
qdf_nbuf_t *head_buf, qdf_nbuf_t *tail_buf);
|
||||||
|
|
||||||
|
uint32_t htt_rx_amsdu_rx_in_order_get_pktlog(qdf_nbuf_t rx_ind_msg);
|
||||||
|
|
||||||
#endif /* _OL_HTT_RX_API__H_ */
|
#endif /* _OL_HTT_RX_API__H_ */
|
||||||
|
@@ -69,11 +69,30 @@ void ol_rx_data_process(struct ol_txrx_peer_t *peer,
|
|||||||
* @pdev: pdev handle
|
* @pdev: pdev handle
|
||||||
* @peer: peer handle
|
* @peer: peer handle
|
||||||
* @msdu: skb list
|
* @msdu: skb list
|
||||||
|
* @pktlog_bit: packetlog bit from firmware
|
||||||
*
|
*
|
||||||
* Return: none
|
* Return: none
|
||||||
*/
|
*/
|
||||||
|
#ifdef HELIUMPLUS
|
||||||
void ol_rx_send_pktlog_event(struct ol_txrx_pdev_t *pdev,
|
void ol_rx_send_pktlog_event(struct ol_txrx_pdev_t *pdev,
|
||||||
struct ol_txrx_peer_t *peer, qdf_nbuf_t msdu)
|
struct ol_txrx_peer_t *peer, qdf_nbuf_t msdu, uint8_t pktlog_bit)
|
||||||
|
{
|
||||||
|
struct ol_rx_remote_data data;
|
||||||
|
|
||||||
|
if (!pktlog_bit)
|
||||||
|
return;
|
||||||
|
|
||||||
|
data.msdu = msdu;
|
||||||
|
if (peer)
|
||||||
|
data.mac_id = peer->vdev->mac_id;
|
||||||
|
else
|
||||||
|
data.mac_id = 0;
|
||||||
|
|
||||||
|
wdi_event_handler(WDI_EVENT_RX_DESC_REMOTE, pdev, &data);
|
||||||
|
}
|
||||||
|
#else
|
||||||
|
void ol_rx_send_pktlog_event(struct ol_txrx_pdev_t *pdev,
|
||||||
|
struct ol_txrx_peer_t *peer, qdf_nbuf_t msdu, uint8_t pktlog_bit)
|
||||||
{
|
{
|
||||||
struct ol_rx_remote_data data;
|
struct ol_rx_remote_data data;
|
||||||
|
|
||||||
@@ -85,6 +104,7 @@ void ol_rx_send_pktlog_event(struct ol_txrx_pdev_t *pdev,
|
|||||||
|
|
||||||
wdi_event_handler(WDI_EVENT_RX_DESC_REMOTE, pdev, &data);
|
wdi_event_handler(WDI_EVENT_RX_DESC_REMOTE, pdev, &data);
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef HTT_RX_RESTORE
|
#ifdef HTT_RX_RESTORE
|
||||||
|
|
||||||
@@ -529,7 +549,7 @@ ol_rx_indication_handler(ol_txrx_pdev_handle pdev,
|
|||||||
|
|
||||||
/* Pktlog */
|
/* Pktlog */
|
||||||
#ifdef WDI_EVENT_ENABLE
|
#ifdef WDI_EVENT_ENABLE
|
||||||
ol_rx_send_pktlog_event(pdev, peer, head_msdu);
|
ol_rx_send_pktlog_event(pdev, peer, head_msdu, 1);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (msdu_chaining) {
|
if (msdu_chaining) {
|
||||||
@@ -607,7 +627,7 @@ ol_rx_indication_handler(ol_txrx_pdev_handle pdev,
|
|||||||
if (status != htt_rx_status_ctrl_mgmt_null) {
|
if (status != htt_rx_status_ctrl_mgmt_null) {
|
||||||
/* Pktlog */
|
/* Pktlog */
|
||||||
ol_rx_send_pktlog_event(pdev,
|
ol_rx_send_pktlog_event(pdev,
|
||||||
peer, head_msdu);
|
peer, head_msdu, 1);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (status == htt_rx_status_err_inv_peer) {
|
if (status == htt_rx_status_err_inv_peer) {
|
||||||
@@ -1309,6 +1329,9 @@ ol_rx_in_order_indication_handler(ol_txrx_pdev_handle pdev,
|
|||||||
htt_pdev_handle htt_pdev = NULL;
|
htt_pdev_handle htt_pdev = NULL;
|
||||||
int status;
|
int status;
|
||||||
qdf_nbuf_t head_msdu, tail_msdu = NULL;
|
qdf_nbuf_t head_msdu, tail_msdu = NULL;
|
||||||
|
#ifdef WDI_EVENT_ENABLE
|
||||||
|
uint8_t pktlog_bit;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (pdev) {
|
if (pdev) {
|
||||||
if (qdf_unlikely(QDF_GLOBAL_MONITOR_MODE == cds_get_conparam()))
|
if (qdf_unlikely(QDF_GLOBAL_MONITOR_MODE == cds_get_conparam()))
|
||||||
@@ -1328,6 +1351,10 @@ ol_rx_in_order_indication_handler(ol_txrx_pdev_handle pdev,
|
|||||||
__func__, __LINE__, rx_ind_msg, peer_id, tid, is_offload);
|
__func__, __LINE__, rx_ind_msg, peer_id, tid, is_offload);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef WDI_EVENT_ENABLE
|
||||||
|
pktlog_bit = (htt_rx_amsdu_rx_in_order_get_pktlog(rx_ind_msg) == 0x01);
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Get a linked list of the MSDUs in the rx in order indication.
|
* Get a linked list of the MSDUs in the rx in order indication.
|
||||||
* This also attaches each rx MSDU descriptor to the
|
* This also attaches each rx MSDU descriptor to the
|
||||||
@@ -1351,7 +1378,7 @@ ol_rx_in_order_indication_handler(ol_txrx_pdev_handle pdev,
|
|||||||
|
|
||||||
/* Pktlog */
|
/* Pktlog */
|
||||||
#ifdef WDI_EVENT_ENABLE
|
#ifdef WDI_EVENT_ENABLE
|
||||||
ol_rx_send_pktlog_event(pdev, peer, head_msdu);
|
ol_rx_send_pktlog_event(pdev, peer, head_msdu, pktlog_bit);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* if this is an offload indication, peer id is carried in the
|
/* if this is an offload indication, peer id is carried in the
|
||||||
|
Reference in New Issue
Block a user