From 6e224f6b32aae322be14a723cd105b298b646de1 Mon Sep 17 00:00:00 2001 From: Himanshu Agarwal Date: Mon, 5 Dec 2016 18:27:35 +0530 Subject: [PATCH] qcacld-3.0: Set bit to indicate size of ath_pktlog_hdr Set 15th bit of flags field of ath_pktlog_hdr to indicate whether the pktlog hdr size if 12 bytes or 16 bytes. Change-Id: I58027053c67e749c79f6cec77da1519a9f28a2d2 CRs-Fixed: 1097280 --- core/utils/logging/src/wlan_logging_sock_svc.c | 8 ++++++++ core/utils/pktlog/pktlog_internal.c | 5 +++++ uapi/linux/pktlog_ac_fmt.h | 1 + 3 files changed, 14 insertions(+) diff --git a/core/utils/logging/src/wlan_logging_sock_svc.c b/core/utils/logging/src/wlan_logging_sock_svc.c index b353fcf771..7f890da2d7 100644 --- a/core/utils/logging/src/wlan_logging_sock_svc.c +++ b/core/utils/logging/src/wlan_logging_sock_svc.c @@ -1345,6 +1345,10 @@ static void send_packetdump(qdf_nbuf_t netbuf, uint8_t status, if (adapter->device_mode != QDF_STA_MODE) return; +#if defined(HELIUMPLUS) + pktlog_hdr.flags |= PKTLOG_HDR_SIZE_16; +#endif + pktlog_hdr.log_type = PKTLOG_TYPE_PKT_DUMP; pktlog_hdr.size = sizeof(pd_hdr) + netbuf->len; @@ -1376,6 +1380,10 @@ static void send_packetdump_monitor(uint8_t type) struct ath_pktlog_hdr pktlog_hdr = {0}; struct packet_dump pd_hdr = {0}; +#if defined(HELIUMPLUS) + pktlog_hdr.flags |= PKTLOG_HDR_SIZE_16; +#endif + pktlog_hdr.log_type = PKTLOG_TYPE_PKT_DUMP; pktlog_hdr.size = sizeof(pd_hdr); diff --git a/core/utils/pktlog/pktlog_internal.c b/core/utils/pktlog/pktlog_internal.c index 63d6ab7ec8..510b5e63ec 100644 --- a/core/utils/pktlog/pktlog_internal.c +++ b/core/utils/pktlog/pktlog_internal.c @@ -362,6 +362,7 @@ A_STATUS process_tx_info(struct ol_txrx_pdev_t *txrx_pdev, void *data) pl_hdr.flags = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_FLAGS_OFFSET) & ATH_PKTLOG_HDR_FLAGS_MASK) >> ATH_PKTLOG_HDR_FLAGS_SHIFT; + pl_hdr.flags |= PKTLOG_HDR_SIZE_16; pl_hdr.missed_cnt = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_MISSED_CNT_OFFSET) & ATH_PKTLOG_HDR_MISSED_CNT_MASK) >> ATH_PKTLOG_HDR_MISSED_CNT_SHIFT; @@ -595,6 +596,7 @@ A_STATUS process_rx_info_remote(void *pdev, void *data) #if defined(HELIUMPLUS) pl_hdr.macId = r_data->mac_id; pl_hdr.log_type = PKTLOG_TYPE_RX_STAT; + pl_hdr.flags |= PKTLOG_HDR_SIZE_16; #else pl_hdr.log_type = PKTLOG_TYPE_RX_STAT; #endif @@ -647,6 +649,7 @@ A_STATUS process_rx_info(void *pdev, void *data) pl_hdr.macId = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_MAC_ID_OFFSET) & ATH_PKTLOG_HDR_MAC_ID_MASK) >> ATH_PKTLOG_HDR_MAC_ID_SHIFT; + pl_hdr.flags |= PKTLOG_HDR_SIZE_16; #else pl_hdr.log_type = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_LOG_TYPE_OFFSET) & ATH_PKTLOG_HDR_LOG_TYPE_MASK) >> @@ -709,6 +712,7 @@ A_STATUS process_rate_find(void *pdev, void *data) pl_hdr.macId = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_MAC_ID_OFFSET) & ATH_PKTLOG_HDR_MAC_ID_MASK) >> ATH_PKTLOG_HDR_MAC_ID_SHIFT; + pl_hdr.flags |= PKTLOG_HDR_SIZE_16; #else pl_hdr.log_type = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_LOG_TYPE_OFFSET) & ATH_PKTLOG_HDR_LOG_TYPE_MASK) >> @@ -837,6 +841,7 @@ A_STATUS process_rate_update(void *pdev, void *data) pl_hdr.macId = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_MAC_ID_OFFSET) & ATH_PKTLOG_HDR_MAC_ID_MASK) >> ATH_PKTLOG_HDR_MAC_ID_SHIFT; + pl_hdr.flags |= PKTLOG_HDR_SIZE_16; #else pl_hdr.log_type = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_LOG_TYPE_OFFSET) & ATH_PKTLOG_HDR_LOG_TYPE_MASK) >> diff --git a/uapi/linux/pktlog_ac_fmt.h b/uapi/linux/pktlog_ac_fmt.h index 46dc10a8a5..ff736478a0 100644 --- a/uapi/linux/pktlog_ac_fmt.h +++ b/uapi/linux/pktlog_ac_fmt.h @@ -164,6 +164,7 @@ enum { #define PKTLOG_MAX_TXSTATUS_WORDS 32 #define PKTLOG_MAX_PROTO_WORDS 16 #define PKTLOG_MAX_RXDESC_WORDS 62 +#define PKTLOG_HDR_SIZE_16 0x8000 struct txctl_frm_hdr { uint16_t framectrl; /* frame control field from header */