qcacld-3.0: Changes to update mac_id in packetlog

Changes to update mac_id in packetlog header
for DBS.

Change-Id: I602d399e1ef34077b5d7bfc867fb60678ed8612c
CRs-fixed: 1047382
This commit is contained in:
Nirav Shah
2016-07-26 14:22:38 +05:30
committed by qcabuildsw
parent cb6e2089bb
commit c657ef50ea
10 changed files with 157 additions and 12 deletions

View File

@@ -310,6 +310,8 @@ typedef struct _cds_context_type {
void (*sme_get_nss_for_vdev)(void*, enum tQDF_ADAPTER_MODE, void (*sme_get_nss_for_vdev)(void*, enum tQDF_ADAPTER_MODE,
uint8_t *, uint8_t *); uint8_t *, uint8_t *);
void (*ol_txrx_update_mac_id)(uint8_t , uint8_t);
/* This list is not sessionized. This mandatory channel list would be /* This list is not sessionized. This mandatory channel list would be
* as per OEMs preference as per the regulatory/other considerations. * as per OEMs preference as per the regulatory/other considerations.
* So, this would remain same for all the interfaces. * So, this would remain same for all the interfaces.

View File

@@ -378,6 +378,8 @@ QDF_STATUS cds_open(void)
goto err_sme_close; goto err_sme_close;
} }
gp_cds_context->ol_txrx_update_mac_id = ol_txrx_update_mac_id;
QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_INFO_HIGH, QDF_TRACE(QDF_MODULE_ID_QDF, QDF_TRACE_LEVEL_INFO_HIGH,
"%s: CDS successfully Opened", __func__); "%s: CDS successfully Opened", __func__);

View File

@@ -2129,6 +2129,14 @@ static void cds_update_conc_list(uint32_t conn_index,
uint32_t vdev_id, uint32_t vdev_id,
bool in_use) bool in_use)
{ {
cds_context_type *cds_ctx;
cds_ctx = cds_get_context(QDF_MODULE_ID_QDF);
if (!cds_ctx) {
cds_err("Invalid CDS Context");
return;
}
if (conn_index >= MAX_NUMBER_OF_CONC_CONNECTIONS) { if (conn_index >= MAX_NUMBER_OF_CONC_CONNECTIONS) {
cds_err("Number of connections exceeded conn_index: %d", cds_err("Number of connections exceeded conn_index: %d",
conn_index); conn_index);
@@ -2144,6 +2152,9 @@ static void cds_update_conc_list(uint32_t conn_index,
conc_connection_list[conn_index].in_use = in_use; conc_connection_list[conn_index].in_use = in_use;
cds_dump_connection_status_info(); cds_dump_connection_status_info();
if (cds_ctx->ol_txrx_update_mac_id)
cds_ctx->ol_txrx_update_mac_id(vdev_id, mac);
} }
/** /**

View File

@@ -64,6 +64,27 @@
void ol_rx_data_process(struct ol_txrx_peer_t *peer, void ol_rx_data_process(struct ol_txrx_peer_t *peer,
qdf_nbuf_t rx_buf_list); qdf_nbuf_t rx_buf_list);
/**
* ol_rx_send_pktlog_event() - send rx packetlog event
* @pdev: pdev handle
* @peer: peer handle
* @msdu: skb list
*
* Return: none
*/
void ol_rx_send_pktlog_event(struct ol_txrx_pdev_t *pdev,
struct ol_txrx_peer_t *peer, qdf_nbuf_t msdu)
{
struct ol_rx_remote_data data;
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);
}
#ifdef HTT_RX_RESTORE #ifdef HTT_RX_RESTORE
@@ -508,8 +529,7 @@ ol_rx_indication_handler(ol_txrx_pdev_handle pdev,
/* Pktlog */ /* Pktlog */
#ifdef WDI_EVENT_ENABLE #ifdef WDI_EVENT_ENABLE
wdi_event_handler(WDI_EVENT_RX_DESC_REMOTE, ol_rx_send_pktlog_event(pdev, peer, head_msdu);
pdev, head_msdu);
#endif #endif
if (msdu_chaining) { if (msdu_chaining) {
@@ -586,9 +606,8 @@ ol_rx_indication_handler(ol_txrx_pdev_handle pdev,
#ifdef WDI_EVENT_ENABLE #ifdef WDI_EVENT_ENABLE
if (status != htt_rx_status_ctrl_mgmt_null) { if (status != htt_rx_status_ctrl_mgmt_null) {
/* Pktlog */ /* Pktlog */
wdi_event_handler( ol_rx_send_pktlog_event(pdev,
WDI_EVENT_RX_DESC_REMOTE, pdev, peer, head_msdu);
msdu);
} }
#endif #endif
if (status == htt_rx_status_err_inv_peer) { if (status == htt_rx_status_err_inv_peer) {
@@ -1332,7 +1351,7 @@ ol_rx_in_order_indication_handler(ol_txrx_pdev_handle pdev,
/* Pktlog */ /* Pktlog */
#ifdef WDI_EVENT_ENABLE #ifdef WDI_EVENT_ENABLE
wdi_event_handler(WDI_EVENT_RX_DESC_REMOTE, pdev, head_msdu); ol_rx_send_pktlog_event(pdev, peer, head_msdu);
#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

View File

@@ -3783,6 +3783,25 @@ void ol_vdev_rx_set_intrabss_fwd(ol_txrx_vdev_handle vdev, bool val)
vdev->disable_intrabss_fwd = val; vdev->disable_intrabss_fwd = val;
} }
/**
* ol_txrx_update_mac_id() - update mac_id for vdev
* @vdev_id: vdev id
* @mac_id: mac id
*
* Return: none
*/
void ol_txrx_update_mac_id(uint8_t vdev_id, uint8_t mac_id)
{
ol_txrx_vdev_handle vdev = ol_txrx_get_vdev_from_vdev_id(vdev_id);
if (NULL == vdev) {
QDF_TRACE(QDF_MODULE_ID_TXRX, QDF_TRACE_LEVEL_ERROR,
"%s: Invalid vdev_id %d", __func__, vdev_id);
return;
}
vdev->mac_id = mac_id;
}
#ifdef QCA_LL_LEGACY_TX_FLOW_CONTROL #ifdef QCA_LL_LEGACY_TX_FLOW_CONTROL
/** /**

View File

@@ -133,4 +133,5 @@ ol_txrx_vdev_handle ol_txrx_get_vdev_from_vdev_id(uint8_t vdev_id);
void htt_pkt_log_init(struct ol_txrx_pdev_t *handle, void *scn); void htt_pkt_log_init(struct ol_txrx_pdev_t *handle, void *scn);
QDF_STATUS ol_txrx_set_wisa_mode(ol_txrx_vdev_handle vdev, QDF_STATUS ol_txrx_set_wisa_mode(ol_txrx_vdev_handle vdev,
bool enable); bool enable);
void ol_txrx_update_mac_id(uint8_t vdev_id, uint8_t mac_id);
#endif /* _OL_TXRX__H_ */ #endif /* _OL_TXRX__H_ */

View File

@@ -1060,6 +1060,7 @@ struct ol_txrx_vdev_t {
uint64_t fwd_tx_packets; uint64_t fwd_tx_packets;
uint64_t fwd_rx_packets; uint64_t fwd_rx_packets;
bool is_wisa_mode_enable; bool is_wisa_mode_enable;
uint8_t mac_id;
}; };
struct ol_rx_reorder_array_elem_t { struct ol_rx_reorder_array_elem_t {
@@ -1253,4 +1254,10 @@ struct ol_error_info {
struct ol_mic_error_info mic_err; struct ol_mic_error_info mic_err;
} u; } u;
}; };
struct ol_rx_remote_data {
qdf_nbuf_t msdu;
uint8_t mac_id;
};
#endif /* _OL_TXRX_TYPES__H_ */ #endif /* _OL_TXRX_TYPES__H_ */

View File

@@ -43,7 +43,12 @@ struct ath_pktlog_arg {
struct ath_pktlog_info *pl_info; struct ath_pktlog_info *pl_info;
uint32_t flags; uint32_t flags;
uint16_t missed_cnt; uint16_t missed_cnt;
#ifdef HELIUMPLUS
uint8_t log_type;
uint8_t macId;
#else
uint16_t log_type; uint16_t log_type;
#endif
size_t log_size; size_t log_size;
uint16_t timestamp; uint16_t timestamp;
#ifdef HELIUMPLUS #ifdef HELIUMPLUS
@@ -59,7 +64,7 @@ char *pktlog_getbuf(struct ol_pktlog_dev_t *pl_dev,
A_STATUS process_tx_info(struct ol_txrx_pdev_t *pdev, void *data); A_STATUS process_tx_info(struct ol_txrx_pdev_t *pdev, void *data);
A_STATUS process_rx_info(void *pdev, void *data); A_STATUS process_rx_info(void *pdev, void *data);
A_STATUS process_rx_info_remote(void *pdev, qdf_nbuf_t amsdu); A_STATUS process_rx_info_remote(void *pdev, void *data);
A_STATUS process_rate_find(void *pdev, void *data); A_STATUS process_rate_find(void *pdev, void *data);
A_STATUS process_rate_update(void *pdev, void *data); A_STATUS process_rate_update(void *pdev, void *data);

View File

@@ -69,6 +69,9 @@ void pktlog_getbuf_intsafe(struct ath_pktlog_arg *plarg)
uint16_t log_type; uint16_t log_type;
size_t log_size; size_t log_size;
uint32_t flags; uint32_t flags;
#ifdef HELIUMPLUS
uint8_t mac_id;
#endif
if (!plarg) { if (!plarg) {
printk("Invalid parg in %s\n", __func__); printk("Invalid parg in %s\n", __func__);
@@ -76,7 +79,12 @@ void pktlog_getbuf_intsafe(struct ath_pktlog_arg *plarg)
} }
pl_info = plarg->pl_info; pl_info = plarg->pl_info;
#ifdef HELIUMPLUS
mac_id = plarg->macId;
log_type = plarg->log_type; log_type = plarg->log_type;
#else
log_type = plarg->log_type;
#endif
log_size = plarg->log_size; log_size = plarg->log_size;
log_buf = pl_info->buf; log_buf = pl_info->buf;
flags = plarg->flags; flags = plarg->flags;
@@ -100,8 +108,14 @@ void pktlog_getbuf_intsafe(struct ath_pktlog_arg *plarg)
} }
log_hdr = (struct ath_pktlog_hdr *)(log_buf->log_data + cur_wr_offset); log_hdr = (struct ath_pktlog_hdr *)(log_buf->log_data + cur_wr_offset);
log_hdr->log_type = log_type;
log_hdr->flags = flags; log_hdr->flags = flags;
#ifdef HELIUMPLUS
log_hdr->macId = mac_id;
log_hdr->log_type = log_type;
#else
log_hdr->log_type = log_type;
#endif
log_hdr->size = (uint16_t) log_size; log_hdr->size = (uint16_t) log_size;
log_hdr->missed_cnt = plarg->missed_cnt; log_hdr->missed_cnt = plarg->missed_cnt;
log_hdr->timestamp = plarg->timestamp; log_hdr->timestamp = plarg->timestamp;
@@ -167,7 +181,12 @@ char *pktlog_getbuf(struct ol_pktlog_dev_t *pl_dev,
uint8_t flags = 0; uint8_t flags = 0;
plarg.pl_info = pl_info; plarg.pl_info = pl_info;
#ifdef HELIUMPLUS
plarg.macId = pl_hdr->macId;
plarg.log_type = pl_hdr->log_type; plarg.log_type = pl_hdr->log_type;
#else
plarg.log_type = pl_hdr->log_type;
#endif
plarg.log_size = log_size; plarg.log_size = log_size;
plarg.flags = pl_hdr->flags; plarg.flags = pl_hdr->flags;
plarg.missed_cnt = pl_hdr->missed_cnt; plarg.missed_cnt = pl_hdr->missed_cnt;
@@ -379,9 +398,18 @@ A_STATUS process_tx_info(struct ol_txrx_pdev_t *txrx_pdev, void *data)
pl_hdr.missed_cnt = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_MISSED_CNT_OFFSET) & pl_hdr.missed_cnt = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_MISSED_CNT_OFFSET) &
ATH_PKTLOG_HDR_MISSED_CNT_MASK) >> ATH_PKTLOG_HDR_MISSED_CNT_MASK) >>
ATH_PKTLOG_HDR_MISSED_CNT_SHIFT; ATH_PKTLOG_HDR_MISSED_CNT_SHIFT;
#ifdef HELIUMPLUS
pl_hdr.log_type = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_LOG_TYPE_OFFSET) & pl_hdr.log_type = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_LOG_TYPE_OFFSET) &
ATH_PKTLOG_HDR_LOG_TYPE_MASK) >> ATH_PKTLOG_HDR_LOG_TYPE_MASK) >>
ATH_PKTLOG_HDR_LOG_TYPE_SHIFT; ATH_PKTLOG_HDR_LOG_TYPE_SHIFT;
pl_hdr.macId = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_MAC_ID_OFFSET) &
ATH_PKTLOG_HDR_MAC_ID_MASK) >>
ATH_PKTLOG_HDR_MAC_ID_SHIFT;
#else
pl_hdr.log_type = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_LOG_TYPE_OFFSET) &
ATH_PKTLOG_HDR_LOG_TYPE_MASK) >>
ATH_PKTLOG_HDR_LOG_TYPE_SHIFT;
#endif
pl_hdr.size = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_SIZE_OFFSET) & pl_hdr.size = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_SIZE_OFFSET) &
ATH_PKTLOG_HDR_SIZE_MASK) >> ATH_PKTLOG_HDR_SIZE_SHIFT; ATH_PKTLOG_HDR_SIZE_MASK) >> ATH_PKTLOG_HDR_SIZE_SHIFT;
pl_hdr.timestamp = *(pl_tgt_hdr + ATH_PKTLOG_HDR_TIMESTAMP_OFFSET); pl_hdr.timestamp = *(pl_tgt_hdr + ATH_PKTLOG_HDR_TIMESTAMP_OFFSET);
@@ -501,7 +529,7 @@ A_STATUS process_tx_info(struct ol_txrx_pdev_t *txrx_pdev, void *data)
return A_OK; return A_OK;
} }
A_STATUS process_rx_info_remote(void *pdev, qdf_nbuf_t amsdu) A_STATUS process_rx_info_remote(void *pdev, void *data)
{ {
struct ol_pktlog_dev_t *pl_dev; struct ol_pktlog_dev_t *pl_dev;
struct ath_pktlog_info *pl_info; struct ath_pktlog_info *pl_info;
@@ -509,19 +537,20 @@ A_STATUS process_rx_info_remote(void *pdev, qdf_nbuf_t amsdu)
struct ath_pktlog_hdr pl_hdr; struct ath_pktlog_hdr pl_hdr;
struct ath_pktlog_rx_info rxstat_log; struct ath_pktlog_rx_info rxstat_log;
size_t log_size; size_t log_size;
struct ol_rx_remote_data *r_data = (struct ol_rx_remote_data *)data;
qdf_nbuf_t msdu; qdf_nbuf_t msdu;
if (!pdev) { if (!pdev) {
printk("Invalid pdev in %s\n", __func__); printk("Invalid pdev in %s\n", __func__);
return A_ERROR; return A_ERROR;
} }
if (!amsdu) { if (!r_data) {
printk("Invalid data in %s\n", __func__); printk("Invalid data in %s\n", __func__);
return A_ERROR; return A_ERROR;
} }
pl_dev = ((struct ol_txrx_pdev_t *)pdev)->pl_dev; pl_dev = ((struct ol_txrx_pdev_t *)pdev)->pl_dev;
pl_info = pl_dev->pl_info; pl_info = pl_dev->pl_info;
msdu = amsdu; msdu = r_data->msdu;
while (msdu) { while (msdu) {
rx_desc = rx_desc =
@@ -535,7 +564,12 @@ A_STATUS process_rx_info_remote(void *pdev, qdf_nbuf_t amsdu)
*/ */
pl_hdr.flags = (1 << PKTLOG_FLG_FRM_TYPE_REMOTE_S); pl_hdr.flags = (1 << PKTLOG_FLG_FRM_TYPE_REMOTE_S);
pl_hdr.missed_cnt = 0; pl_hdr.missed_cnt = 0;
#if defined(HELIUMPLUS)
pl_hdr.macId = r_data->mac_id;
pl_hdr.log_type = PKTLOG_TYPE_RX_STAT; pl_hdr.log_type = PKTLOG_TYPE_RX_STAT;
#else
pl_hdr.log_type = PKTLOG_TYPE_RX_STAT;
#endif
pl_hdr.size = sizeof(*rx_desc) - pl_hdr.size = sizeof(*rx_desc) -
sizeof(struct htt_host_fw_desc_base); sizeof(struct htt_host_fw_desc_base);
#if defined(HELIUMPLUS) #if defined(HELIUMPLUS)
@@ -576,9 +610,19 @@ A_STATUS process_rx_info(void *pdev, void *data)
pl_hdr.missed_cnt = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_MISSED_CNT_OFFSET) & pl_hdr.missed_cnt = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_MISSED_CNT_OFFSET) &
ATH_PKTLOG_HDR_MISSED_CNT_MASK) >> ATH_PKTLOG_HDR_MISSED_CNT_MASK) >>
ATH_PKTLOG_HDR_MISSED_CNT_SHIFT; ATH_PKTLOG_HDR_MISSED_CNT_SHIFT;
#ifdef HELIUMPLUS
pl_hdr.log_type = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_LOG_TYPE_OFFSET) & pl_hdr.log_type = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_LOG_TYPE_OFFSET) &
ATH_PKTLOG_HDR_LOG_TYPE_MASK) >> ATH_PKTLOG_HDR_LOG_TYPE_MASK) >>
ATH_PKTLOG_HDR_LOG_TYPE_SHIFT; ATH_PKTLOG_HDR_LOG_TYPE_SHIFT;
pl_hdr.macId = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_MAC_ID_OFFSET) &
ATH_PKTLOG_HDR_MAC_ID_MASK) >>
ATH_PKTLOG_HDR_MAC_ID_SHIFT;
#else
pl_hdr.log_type = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_LOG_TYPE_OFFSET) &
ATH_PKTLOG_HDR_LOG_TYPE_MASK) >>
ATH_PKTLOG_HDR_LOG_TYPE_SHIFT;
#endif
pl_hdr.size = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_SIZE_OFFSET) & pl_hdr.size = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_SIZE_OFFSET) &
ATH_PKTLOG_HDR_SIZE_MASK) >> ATH_PKTLOG_HDR_SIZE_SHIFT; ATH_PKTLOG_HDR_SIZE_MASK) >> ATH_PKTLOG_HDR_SIZE_SHIFT;
pl_hdr.timestamp = *(pl_tgt_hdr + ATH_PKTLOG_HDR_TIMESTAMP_OFFSET); pl_hdr.timestamp = *(pl_tgt_hdr + ATH_PKTLOG_HDR_TIMESTAMP_OFFSET);
@@ -627,9 +671,19 @@ A_STATUS process_rate_find(void *pdev, void *data)
pl_hdr.missed_cnt = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_MISSED_CNT_OFFSET) & pl_hdr.missed_cnt = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_MISSED_CNT_OFFSET) &
ATH_PKTLOG_HDR_MISSED_CNT_MASK) >> ATH_PKTLOG_HDR_MISSED_CNT_MASK) >>
ATH_PKTLOG_HDR_MISSED_CNT_SHIFT; ATH_PKTLOG_HDR_MISSED_CNT_SHIFT;
#ifdef HELIUMPLUS
pl_hdr.log_type = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_LOG_TYPE_OFFSET) & pl_hdr.log_type = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_LOG_TYPE_OFFSET) &
ATH_PKTLOG_HDR_LOG_TYPE_MASK) >> ATH_PKTLOG_HDR_LOG_TYPE_MASK) >>
ATH_PKTLOG_HDR_LOG_TYPE_SHIFT; ATH_PKTLOG_HDR_LOG_TYPE_SHIFT;
pl_hdr.macId = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_MAC_ID_OFFSET) &
ATH_PKTLOG_HDR_MAC_ID_MASK) >>
ATH_PKTLOG_HDR_MAC_ID_SHIFT;
#else
pl_hdr.log_type = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_LOG_TYPE_OFFSET) &
ATH_PKTLOG_HDR_LOG_TYPE_MASK) >>
ATH_PKTLOG_HDR_LOG_TYPE_SHIFT;
#endif
pl_hdr.size = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_SIZE_OFFSET) & pl_hdr.size = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_SIZE_OFFSET) &
ATH_PKTLOG_HDR_SIZE_MASK) >> ATH_PKTLOG_HDR_SIZE_SHIFT; ATH_PKTLOG_HDR_SIZE_MASK) >> ATH_PKTLOG_HDR_SIZE_SHIFT;
pl_hdr.timestamp = *(pl_tgt_hdr + ATH_PKTLOG_HDR_TIMESTAMP_OFFSET); pl_hdr.timestamp = *(pl_tgt_hdr + ATH_PKTLOG_HDR_TIMESTAMP_OFFSET);
@@ -674,9 +728,19 @@ A_STATUS process_rate_update(void *pdev, void *data)
pl_hdr.missed_cnt = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_MISSED_CNT_OFFSET) & pl_hdr.missed_cnt = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_MISSED_CNT_OFFSET) &
ATH_PKTLOG_HDR_MISSED_CNT_MASK) >> ATH_PKTLOG_HDR_MISSED_CNT_MASK) >>
ATH_PKTLOG_HDR_MISSED_CNT_SHIFT; ATH_PKTLOG_HDR_MISSED_CNT_SHIFT;
#ifdef HELIUMPLUS
pl_hdr.log_type = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_LOG_TYPE_OFFSET) & pl_hdr.log_type = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_LOG_TYPE_OFFSET) &
ATH_PKTLOG_HDR_LOG_TYPE_MASK) >> ATH_PKTLOG_HDR_LOG_TYPE_MASK) >>
ATH_PKTLOG_HDR_LOG_TYPE_SHIFT; ATH_PKTLOG_HDR_LOG_TYPE_SHIFT;
pl_hdr.macId = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_MAC_ID_OFFSET) &
ATH_PKTLOG_HDR_MAC_ID_MASK) >>
ATH_PKTLOG_HDR_MAC_ID_SHIFT;
#else
pl_hdr.log_type = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_LOG_TYPE_OFFSET) &
ATH_PKTLOG_HDR_LOG_TYPE_MASK) >>
ATH_PKTLOG_HDR_LOG_TYPE_SHIFT;
#endif
pl_hdr.size = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_SIZE_OFFSET) & pl_hdr.size = (*(pl_tgt_hdr + ATH_PKTLOG_HDR_SIZE_OFFSET) &
ATH_PKTLOG_HDR_SIZE_MASK) >> ATH_PKTLOG_HDR_SIZE_SHIFT; ATH_PKTLOG_HDR_SIZE_MASK) >> ATH_PKTLOG_HDR_SIZE_SHIFT;
pl_hdr.timestamp = *(pl_tgt_hdr + ATH_PKTLOG_HDR_TIMESTAMP_OFFSET); pl_hdr.timestamp = *(pl_tgt_hdr + ATH_PKTLOG_HDR_TIMESTAMP_OFFSET);

View File

@@ -1,5 +1,5 @@
/* /*
* Copyright (c) 2012-2015 The Linux Foundation. All rights reserved. * Copyright (c) 2012-2016 The Linux Foundation. All rights reserved.
* *
* Previously licensed under the ISC license by Qualcomm Atheros, Inc. * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
* *
@@ -57,7 +57,12 @@
struct ath_pktlog_hdr { struct ath_pktlog_hdr {
uint16_t flags; uint16_t flags;
uint16_t missed_cnt; uint16_t missed_cnt;
#ifdef HELIUMPLUS
uint8_t log_type;
uint8_t macId;
#else
uint16_t log_type; uint16_t log_type;
#endif
uint16_t size; uint16_t size;
uint32_t timestamp; uint32_t timestamp;
#ifdef HELIUMPLUS #ifdef HELIUMPLUS
@@ -71,9 +76,19 @@ struct ath_pktlog_hdr {
#define ATH_PKTLOG_HDR_MISSED_CNT_MASK 0xffff0000 #define ATH_PKTLOG_HDR_MISSED_CNT_MASK 0xffff0000
#define ATH_PKTLOG_HDR_MISSED_CNT_SHIFT 16 #define ATH_PKTLOG_HDR_MISSED_CNT_SHIFT 16
#define ATH_PKTLOG_HDR_MISSED_CNT_OFFSET 0 #define ATH_PKTLOG_HDR_MISSED_CNT_OFFSET 0
#ifdef HELIUMPLUS
#define ATH_PKTLOG_HDR_LOG_TYPE_MASK 0x00ff
#define ATH_PKTLOG_HDR_LOG_TYPE_SHIFT 0
#define ATH_PKTLOG_HDR_LOG_TYPE_OFFSET 1
#define ATH_PKTLOG_HDR_MAC_ID_MASK 0xff00
#define ATH_PKTLOG_HDR_MAC_ID_SHIFT 8
#define ATH_PKTLOG_HDR_MAC_ID_OFFSET 1
#else
#define ATH_PKTLOG_HDR_LOG_TYPE_MASK 0xffff #define ATH_PKTLOG_HDR_LOG_TYPE_MASK 0xffff
#define ATH_PKTLOG_HDR_LOG_TYPE_SHIFT 0 #define ATH_PKTLOG_HDR_LOG_TYPE_SHIFT 0
#define ATH_PKTLOG_HDR_LOG_TYPE_OFFSET 1 #define ATH_PKTLOG_HDR_LOG_TYPE_OFFSET 1
#endif
#define ATH_PKTLOG_HDR_SIZE_MASK 0xffff0000 #define ATH_PKTLOG_HDR_SIZE_MASK 0xffff0000
#define ATH_PKTLOG_HDR_SIZE_SHIFT 16 #define ATH_PKTLOG_HDR_SIZE_SHIFT 16
#define ATH_PKTLOG_HDR_SIZE_OFFSET 1 #define ATH_PKTLOG_HDR_SIZE_OFFSET 1