diff options
| author | Deepak Dhamdhere <ddhamdhe@qca.qualcomm.com> | 2014-09-10 00:06:51 -0700 |
|---|---|---|
| committer | Akash Patel <c_akashp@qca.qualcomm.com> | 2014-09-17 13:54:38 -0700 |
| commit | d0be29c4eceb98c13fc12ce9c5942763116c232e (patch) | |
| tree | 116491e6c3423eab8a0dbb64cc4a3396add80a16 | |
| parent | 7e70aa76859e50897124c78c2eb34fbcf0990996 (diff) | |
qcacld: WMA: Use correct field offset for channel frequency tag.
Use 14 byte offset value to access chanfreq field in DWORD 3 of htt_tx_desc
of management tx frame.
Use byte offset for access peer_id in DWORD 3 of htt_tx_desc.
Change-Id: Ic9a3a3334e6dc48f406d1fc862f29912b582cd84
CRs-Fixed: 725618
| -rw-r--r-- | CORE/CLD_TXRX/HTT/htt.h | 9 | ||||
| -rw-r--r-- | CORE/CLD_TXRX/TXRX/ol_tx.c | 5 | ||||
| -rw-r--r-- | CORE/SERVICES/COMMON/ol_htt_tx_api.h | 8 |
3 files changed, 15 insertions, 7 deletions
diff --git a/CORE/CLD_TXRX/HTT/htt.h b/CORE/CLD_TXRX/HTT/htt.h index 397a407f0c11..6902b75f8662 100644 --- a/CORE/CLD_TXRX/HTT/htt.h +++ b/CORE/CLD_TXRX/HTT/htt.h @@ -447,11 +447,18 @@ A_COMPILE_TIME_ASSERT( #define HTT_TX_DESC_FRAGS_DESC_PADDR_S 0 /* dword 3 */ +/* peer_id */ #define HTT_TX_DESC_PEERID_DESC_PADDR_OFFSET_BYTES 12 #define HTT_TX_DESC_PEERID_DESC_PADDR_OFFSET_DWORD 3 -#define HTT_TX_DESC_PEERID_DESC_PADDR_M 0xffffffff +#define HTT_TX_DESC_PEERID_DESC_PADDR_M 0x0000ffff #define HTT_TX_DESC_PEERID_DESC_PADDR_S 0 +/* channel frequency tag */ +#define HTT_TX_DESC_CHANFREQ_DESC_PADDR_OFFSET_BYTES 14 +#define HTT_TX_DESC_CHANFREQ_DESC_PADDR_OFFSET_DWORD 3 +#define HTT_TX_DESC_CHANFREQ_DESC_PADDR_M 0xffff0000 +#define HTT_TX_DESC_CHANFREQ_DESC_PADDR_S 16 + #define HTT_TX_DESC_PKT_SUBTYPE_GET(_var) \ (((_var) & HTT_TX_DESC_PKT_SUBTYPE_M) >> HTT_TX_DESC_PKT_SUBTYPE_S) #define HTT_TX_DESC_PKT_SUBTYPE_SET(_var, _val) \ diff --git a/CORE/CLD_TXRX/TXRX/ol_tx.c b/CORE/CLD_TXRX/TXRX/ol_tx.c index 8367ed06c7cf..5171dde8480a 100644 --- a/CORE/CLD_TXRX/TXRX/ol_tx.c +++ b/CORE/CLD_TXRX/TXRX/ol_tx.c @@ -838,7 +838,7 @@ ol_txrx_mgmt_send( tx_mgmt_frm, &tx_msdu_info.htt); htt_tx_desc_display(tx_desc->htt_tx_desc); - htt_tx_desc_set_chanfreq((u_int32_t *)(tx_desc->htt_tx_desc), chanfreq); + htt_tx_desc_set_chanfreq(tx_desc->htt_tx_desc, chanfreq); ol_tx_enqueue(vdev->pdev, txq, tx_desc, &tx_msdu_info); if (tx_msdu_info.peer) { @@ -847,6 +847,7 @@ ol_txrx_mgmt_send( } ol_tx_sched(vdev->pdev); } else { + htt_tx_desc_set_chanfreq(tx_desc->htt_tx_desc, chanfreq); ol_tx_send_nonstd(pdev, tx_desc, tx_mgmt_frm, htt_pkt_type_mgmt); } @@ -874,7 +875,7 @@ adf_nbuf_t ol_tx_reinject( ol_tx_prepare_ll(tx_desc, vdev, msdu, &msdu_info); HTT_TX_DESC_POSTPONED_SET(*((u_int32_t *)(tx_desc->htt_tx_desc)), TRUE); - htt_tx_desc_set_peer_id((u_int32_t *)(tx_desc->htt_tx_desc), peer_id); + htt_tx_desc_set_peer_id(tx_desc->htt_tx_desc, peer_id); ol_tx_send(vdev->pdev, tx_desc, msdu); diff --git a/CORE/SERVICES/COMMON/ol_htt_tx_api.h b/CORE/SERVICES/COMMON/ol_htt_tx_api.h index 6c5d5da75939..71f46d22034d 100644 --- a/CORE/SERVICES/COMMON/ol_htt_tx_api.h +++ b/CORE/SERVICES/COMMON/ol_htt_tx_api.h @@ -635,22 +635,22 @@ htt_tx_desc_display(void *tx_desc); #endif static inline -void htt_tx_desc_set_peer_id(u_int32_t *htt_tx_desc, u_int16_t peer_id) +void htt_tx_desc_set_peer_id(void *htt_tx_desc, u_int16_t peer_id) { u_int16_t *peer_id_field_ptr; peer_id_field_ptr = (u_int16_t *) - (htt_tx_desc + HTT_TX_DESC_PEERID_DESC_PADDR_OFFSET_DWORD); + (htt_tx_desc + HTT_TX_DESC_PEERID_DESC_PADDR_OFFSET_BYTES); *peer_id_field_ptr = peer_id; } static inline -void htt_tx_desc_set_chanfreq(u_int32_t *htt_tx_desc, u_int16_t chanfreq) +void htt_tx_desc_set_chanfreq(void *htt_tx_desc, u_int16_t chanfreq) { u_int16_t *chanfreq_field_ptr; chanfreq_field_ptr = (u_int16_t *) - (htt_tx_desc + HTT_TX_DESC_PEERID_DESC_PADDR_OFFSET_DWORD + sizeof(u_int16_t)); + (htt_tx_desc + HTT_TX_DESC_CHANFREQ_DESC_PADDR_OFFSET_BYTES); *chanfreq_field_ptr = chanfreq; } |
