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:
@@ -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.
|
||||||
|
@@ -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__);
|
||||||
|
|
||||||
|
@@ -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);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -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
|
||||||
|
@@ -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
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -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_ */
|
||||||
|
@@ -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_ */
|
||||||
|
@@ -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);
|
||||||
|
|
||||||
|
@@ -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) &
|
||||||
|
ATH_PKTLOG_HDR_LOG_TYPE_MASK) >>
|
||||||
|
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) &
|
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;
|
||||||
|
#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);
|
||||||
|
@@ -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
|
||||||
|
Reference in New Issue
Block a user