qcacmn: Fix htt_status & A_STATUS map dp status wrong issue

The packet tx complete status from wlan fw define in htt_tx_status
doesn't match with packet trace feature used in qdf_dp_tx_rx_status,
Meanwhile A_STATUS also doesn't convert to correct qdf_dp_tx_rx_status,
so add two according APIs to fix it

Change-Id: Ic250175dd270632f40af14ad9499ddcafbb3033b
This commit is contained in:
Chaoli Zhou
2020-05-12 16:50:09 +08:00
committed by nshrivas
parent 101c1fdeda
commit 47e9c6a997
4 changed files with 91 additions and 3 deletions

View File

@@ -2265,6 +2265,35 @@ void qdf_dp_track_noack_check(qdf_nbuf_t nbuf, enum qdf_proto_subtype *subtype)
}
qdf_export_symbol(qdf_dp_track_noack_check);
enum qdf_dp_tx_rx_status qdf_dp_get_status_from_htt(uint8_t status)
{
switch (status) {
case QDF_TX_COMP_STATUS_OK:
return QDF_TX_RX_STATUS_OK;
case QDF_TX_COMP_STATUS_STAT_DISCARD:
case QDF_TX_COMP_STATUS_STAT_DROP:
return QDF_TX_RX_STATUS_FW_DISCARD;
case QDF_TX_COMP_STATUS_STAT_NO_ACK:
return QDF_TX_RX_STATUS_NO_ACK;
default:
return QDF_TX_RX_STATUS_MAX;
}
}
qdf_export_symbol(qdf_dp_get_status_from_htt);
enum qdf_dp_tx_rx_status qdf_dp_get_status_from_a_status(uint8_t status)
{
if (status == QDF_A_STATUS_ERROR)
return QDF_TX_RX_STATUS_INVALID;
else if (status == QDF_A_STATUS_OK)
return QDF_TX_RX_STATUS_OK;
else
return QDF_TX_RX_STATUS_MAX;
}
qdf_export_symbol(qdf_dp_get_status_from_a_status);
/**
* qdf_dp_trace_ptr() - record dptrace
* @code: dptrace code
@@ -2287,12 +2316,12 @@ void qdf_dp_trace_ptr(qdf_nbuf_t nbuf, enum QDF_DP_TRACE_ID code,
pkt_type = qdf_dp_get_pkt_proto_type(nbuf);
if ((code == QDF_DP_TRACE_FREE_PACKET_PTR_RECORD ||
code == QDF_DP_TRACE_LI_DP_FREE_PACKET_PTR_RECORD) &&
qdf_dp_proto_log_enable_check(pkt_type, status + 1))
qdf_dp_proto_log_enable_check(pkt_type, status))
qdf_dp_log_proto_pkt_info(nbuf->data + QDF_NBUF_SRC_MAC_OFFSET,
nbuf->data + QDF_NBUF_DEST_MAC_OFFSET,
pkt_type,
qdf_dp_get_pkt_subtype(nbuf, pkt_type),
QDF_TX, msdu_id, status + 1);
QDF_TX, msdu_id, status);
if (qdf_dp_enable_check(nbuf, code, QDF_TX) == false)
return;