qcacmn: Add QDF packet type enum
Add new QDF enum for packet type and make changes to pass status and type to packetlog callback APIs as QDF type Change-Id: I423839e42b316ce43feaae34e297d3d8f0dee7ba CRs-Fixed: 3224881
This commit is contained in:

committed by
Madan Koyyalamudi

parent
6b576c65bb
commit
6e1dde7e43
@@ -1009,8 +1009,8 @@ typedef void (*ol_txrx_pktdump_cb)(ol_txrx_soc_handle soc,
|
|||||||
uint8_t pdev_id,
|
uint8_t pdev_id,
|
||||||
uint8_t vdev_id,
|
uint8_t vdev_id,
|
||||||
qdf_nbuf_t netbuf,
|
qdf_nbuf_t netbuf,
|
||||||
uint8_t status,
|
enum qdf_dp_tx_rx_status status,
|
||||||
uint8_t type);
|
enum qdf_pkt_type type);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ol_txrx_get_tsf_time - callback to get tsf time
|
* ol_txrx_get_tsf_time - callback to get tsf time
|
||||||
|
@@ -1542,6 +1542,22 @@ enum qdf_dp_tx_rx_status {
|
|||||||
QDF_TX_RX_STATUS_MAX
|
QDF_TX_RX_STATUS_MAX
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* enum qdf_pkt_type - TX/RX packet type
|
||||||
|
* @QDF_TX_MGMT_PKT: Tx Management Packet
|
||||||
|
* @QDF_TX_DATA_PKT: Tx data Packet
|
||||||
|
* @QDF_RX_MGMT_PKT: Rx Management Packet
|
||||||
|
* @QDF_RX_DATA_PKT: Rx data Packet
|
||||||
|
* @QDF_INVALID_PKT: Invalid Packet type
|
||||||
|
*/
|
||||||
|
enum qdf_pkt_type {
|
||||||
|
QDF_TX_MGMT_PKT,
|
||||||
|
QDF_TX_DATA_PKT,
|
||||||
|
QDF_RX_MGMT_PKT,
|
||||||
|
QDF_RX_DATA_PKT,
|
||||||
|
QDF_INVALID_PKT
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* enum qdf_dp_a_status - A_STATUS
|
* enum qdf_dp_a_status - A_STATUS
|
||||||
* @QDF_A_STATUS_ERROR: Generic error return
|
* @QDF_A_STATUS_ERROR: Generic error return
|
||||||
|
@@ -1,5 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2014-2021 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2014-2021 The Linux Foundation. All rights reserved.
|
||||||
|
* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
|
||||||
*
|
*
|
||||||
* Permission to use, copy, modify, and/or distribute this software for
|
* Permission to use, copy, modify, and/or distribute this software for
|
||||||
* any purpose with or without fee is hereby granted, provided that the
|
* any purpose with or without fee is hereby granted, provided that the
|
||||||
@@ -1484,33 +1485,76 @@ void wlan_pkt_stats_to_logger_thread(void *pl_hdr, void *pkt_dump, void *data)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* driver_hal_status_map() - maps driver to hal
|
* qdf_hal_tx_status_map() - map Tx completion status with
|
||||||
* status
|
* packet dump Tx status
|
||||||
* @status: status to be mapped
|
* @status: Tx completion status
|
||||||
*
|
|
||||||
* This function is used to map driver to hal status
|
|
||||||
*
|
|
||||||
* Return: None
|
|
||||||
*
|
*
|
||||||
|
* Return: packet dump tx_status enum
|
||||||
*/
|
*/
|
||||||
static void driver_hal_status_map(uint8_t *status)
|
static inline enum tx_pkt_fate
|
||||||
|
qdf_hal_tx_status_map(enum qdf_dp_tx_rx_status status)
|
||||||
{
|
{
|
||||||
switch (*status) {
|
switch (status) {
|
||||||
case tx_status_ok:
|
case QDF_TX_RX_STATUS_OK:
|
||||||
*status = TX_PKT_FATE_ACKED;
|
return TX_PKT_FATE_ACKED;
|
||||||
break;
|
case QDF_TX_RX_STATUS_FW_DISCARD:
|
||||||
case tx_status_discard:
|
return TX_PKT_FATE_FW_DROP_OTHER;
|
||||||
*status = TX_PKT_FATE_DRV_DROP_OTHER;
|
case QDF_TX_RX_STATUS_NO_ACK:
|
||||||
break;
|
return TX_PKT_FATE_SENT;
|
||||||
case tx_status_no_ack:
|
case QDF_TX_RX_STATUS_DROP:
|
||||||
*status = TX_PKT_FATE_SENT;
|
return TX_PKT_FATE_DRV_DROP_OTHER;
|
||||||
break;
|
case QDF_TX_RX_STATUS_DOWNLOAD_SUCC:
|
||||||
case tx_status_download_fail:
|
return TX_PKT_FATE_DRV_QUEUED;
|
||||||
*status = TX_PKT_FATE_FW_QUEUED;
|
|
||||||
break;
|
|
||||||
default:
|
default:
|
||||||
*status = TX_PKT_FATE_DRV_DROP_OTHER;
|
return TX_PKT_FATE_DRV_DROP_OTHER;
|
||||||
break;
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* qdf_hal_rx_status_map() - map Rx status with
|
||||||
|
* packet dump Rx status
|
||||||
|
* @status: Rx status
|
||||||
|
*
|
||||||
|
* Return: packet dump rx_status enum
|
||||||
|
*/
|
||||||
|
static inline enum rx_pkt_fate
|
||||||
|
qdf_hal_rx_status_map(enum qdf_dp_tx_rx_status status)
|
||||||
|
{
|
||||||
|
switch (status) {
|
||||||
|
case QDF_TX_RX_STATUS_OK:
|
||||||
|
return RX_PKT_FATE_SUCCESS;
|
||||||
|
case QDF_TX_RX_STATUS_FW_DISCARD:
|
||||||
|
return RX_PKT_FATE_FW_DROP_OTHER;
|
||||||
|
case QDF_TX_RX_STATUS_DROP:
|
||||||
|
return RX_PKT_FATE_DRV_DROP_OTHER;
|
||||||
|
case QDF_TX_RX_STATUS_DOWNLOAD_SUCC:
|
||||||
|
return RX_PKT_FATE_DRV_QUEUED;
|
||||||
|
default:
|
||||||
|
return RX_PKT_FATE_DRV_DROP_OTHER;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* qdf_hal_pkt_type_map() - map qdf packet type with
|
||||||
|
* packet dump packet type
|
||||||
|
* @type: packet type
|
||||||
|
*
|
||||||
|
* Return: Packet dump packet type
|
||||||
|
*/
|
||||||
|
static inline enum pkt_type
|
||||||
|
qdf_hal_pkt_type_map(enum qdf_pkt_type type)
|
||||||
|
{
|
||||||
|
switch (type) {
|
||||||
|
case QDF_TX_MGMT_PKT:
|
||||||
|
return TX_MGMT_PKT;
|
||||||
|
case QDF_TX_DATA_PKT:
|
||||||
|
return TX_DATA_PKT;
|
||||||
|
case QDF_RX_MGMT_PKT:
|
||||||
|
return RX_MGMT_PKT;
|
||||||
|
case QDF_RX_DATA_PKT:
|
||||||
|
return RX_DATA_PKT;
|
||||||
|
default:
|
||||||
|
return INVALID_PKT;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1657,9 +1701,12 @@ static bool check_txrx_packetdump_count(uint8_t pdev_id)
|
|||||||
static void tx_packetdump_cb(ol_txrx_soc_handle soc,
|
static void tx_packetdump_cb(ol_txrx_soc_handle soc,
|
||||||
uint8_t pdev_id, uint8_t vdev_id,
|
uint8_t pdev_id, uint8_t vdev_id,
|
||||||
qdf_nbuf_t netbuf,
|
qdf_nbuf_t netbuf,
|
||||||
uint8_t status, uint8_t type)
|
enum qdf_dp_tx_rx_status status,
|
||||||
|
enum qdf_pkt_type type)
|
||||||
{
|
{
|
||||||
bool temp;
|
bool temp;
|
||||||
|
enum tx_pkt_fate tx_status = qdf_hal_tx_status_map(status);
|
||||||
|
enum pkt_type pkt_type = qdf_hal_pkt_type_map(type);
|
||||||
|
|
||||||
if (!soc)
|
if (!soc)
|
||||||
return;
|
return;
|
||||||
@@ -1668,8 +1715,7 @@ static void tx_packetdump_cb(ol_txrx_soc_handle soc,
|
|||||||
if (temp)
|
if (temp)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
driver_hal_status_map(&status);
|
send_packetdump(soc, vdev_id, netbuf, tx_status, pkt_type);
|
||||||
send_packetdump(soc, vdev_id, netbuf, status, type);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1691,9 +1737,12 @@ static void tx_packetdump_cb(ol_txrx_soc_handle soc,
|
|||||||
static void rx_packetdump_cb(ol_txrx_soc_handle soc,
|
static void rx_packetdump_cb(ol_txrx_soc_handle soc,
|
||||||
uint8_t pdev_id, uint8_t vdev_id,
|
uint8_t pdev_id, uint8_t vdev_id,
|
||||||
qdf_nbuf_t netbuf,
|
qdf_nbuf_t netbuf,
|
||||||
uint8_t status, uint8_t type)
|
enum qdf_dp_tx_rx_status status,
|
||||||
|
enum qdf_pkt_type type)
|
||||||
{
|
{
|
||||||
bool temp;
|
bool temp;
|
||||||
|
enum rx_pkt_fate rx_status = qdf_hal_rx_status_map(status);
|
||||||
|
enum pkt_type pkt_type = qdf_hal_pkt_type_map(type);
|
||||||
|
|
||||||
if (!soc)
|
if (!soc)
|
||||||
return;
|
return;
|
||||||
@@ -1702,7 +1751,7 @@ static void rx_packetdump_cb(ol_txrx_soc_handle soc,
|
|||||||
if (temp)
|
if (temp)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
send_packetdump(soc, vdev_id, netbuf, status, type);
|
send_packetdump(soc, vdev_id, netbuf, rx_status, pkt_type);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wlan_register_txrx_packetdump(uint8_t pdev_id)
|
void wlan_register_txrx_packetdump(uint8_t pdev_id)
|
||||||
|
Reference in New Issue
Block a user