diff --git a/Kbuild b/Kbuild index 9013354f34..13f0d4c822 100644 --- a/Kbuild +++ b/Kbuild @@ -1811,7 +1811,6 @@ CONFIG_64BIT_PADDR := y CONFIG_FEATURE_TSO := y CONFIG_FEATURE_TSO_DEBUG := y ifeq ($(CONFIG_HELIUMPLUS),y) -CDEFINES += -DHELIUMPLUS_PADDR64 CDEFINES += -DHELIUMPLUS CDEFINES += -DAR900B ifeq ($(CONFIG_64BIT_PADDR),y) diff --git a/core/dp/htt/htt.c b/core/dp/htt/htt.c index 47e135a392..129a082922 100644 --- a/core/dp/htt/htt.c +++ b/core/dp/htt/htt.c @@ -323,10 +323,9 @@ htt_pdev_alloc(ol_txrx_pdev_handle txrx_pdev, } pdev->targetdef = htc_get_targetdef(htc_pdev); -#if defined(HELIUMPLUS_PADDR64) - /* TODO: OKA: Remove hard-coding */ +#if defined(HELIUMPLUS) HTT_SET_WIFI_IP(pdev, 2, 0); -#endif /* defined(HELIUMPLUS_PADDR64) */ +#endif /* defined(HELIUMPLUS) */ if (NO_HTT_NEEDED) goto success; @@ -519,12 +518,12 @@ A_STATUS htt_attach_target(htt_pdev_handle pdev) if (status != A_OK) return status; -#if defined(HELIUMPLUS_PADDR64) +#if defined(HELIUMPLUS) /* * Send the frag_desc info to target. */ htt_h2t_frag_desc_bank_cfg_msg(pdev); -#endif /* defined(HELIUMPLUS_PADDR64) */ +#endif /* defined(HELIUMPLUS) */ /* diff --git a/core/dp/htt/htt_h2t.c b/core/dp/htt/htt_h2t.c index 0296ec9678..dc03bb0dd9 100644 --- a/core/dp/htt/htt_h2t.c +++ b/core/dp/htt/htt_h2t.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2016 The Linux Foundation. All rights reserved. + * Copyright (c) 2011-2017 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -119,7 +119,7 @@ HTC_SEND_FULL_ACTION htt_h2t_full(void *context, HTC_PACKET *pkt) return HTC_SEND_FULL_KEEP; } -#if defined(HELIUMPLUS_PADDR64) +#if defined(HELIUMPLUS) A_STATUS htt_h2t_frag_desc_bank_cfg_msg(struct htt_pdev_t *pdev) { A_STATUS rc = A_OK; @@ -210,7 +210,7 @@ A_STATUS htt_h2t_frag_desc_bank_cfg_msg(struct htt_pdev_t *pdev) return rc; } -#endif /* defined(HELIUMPLUS_PADDR64) */ +#endif /* defined(HELIUMPLUS) */ A_STATUS htt_h2t_ver_req_msg(struct htt_pdev_t *pdev) { diff --git a/core/dp/htt/htt_internal.h b/core/dp/htt/htt_internal.h index 3925a4ef84..f53ec8a1e4 100644 --- a/core/dp/htt/htt_internal.h +++ b/core/dp/htt/htt_internal.h @@ -482,10 +482,10 @@ void htt_h2t_send_complete(void *context, HTC_PACKET *pkt); A_STATUS htt_h2t_ver_req_msg(struct htt_pdev_t *pdev); -#if defined(HELIUMPLUS_PADDR64) +#if defined(HELIUMPLUS) A_STATUS htt_h2t_frag_desc_bank_cfg_msg(struct htt_pdev_t *pdev); -#endif /* defined(HELIUMPLUS_PADDR64) */ +#endif /* defined(HELIUMPLUS) */ extern QDF_STATUS htt_h2t_rx_ring_cfg_msg_ll(struct htt_pdev_t *pdev); diff --git a/core/dp/htt/htt_rx.c b/core/dp/htt/htt_rx.c index 2000f14a93..88a5f6545b 100644 --- a/core/dp/htt/htt_rx.c +++ b/core/dp/htt/htt_rx.c @@ -1027,10 +1027,10 @@ htt_rx_amsdu_pop_ll(htt_pdev_handle pdev, * Check if this MSDU completes a MPDU. */ rx_desc = htt_rx_desc(msdu); -#if defined(HELIUMPLUS_PADDR64) +#if defined(HELIUMPLUS) if (HTT_WIFI_IP(pdev, 2, 0)) pad_bytes = rx_desc->msdu_end.l3_header_padding; -#endif /* defined(HELIUMPLUS_PADDR64) */ +#endif /* defined(HELIUMPLUS) */ /* * Make the netbuf's data pointer point to the payload rather * than the descriptor. diff --git a/core/dp/htt/htt_tx.c b/core/dp/htt/htt_tx.c index 653c838aff..bb46458dea 100644 --- a/core/dp/htt/htt_tx.c +++ b/core/dp/htt/htt_tx.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011, 2014-2016 The Linux Foundation. All rights reserved. + * Copyright (c) 2011, 2014-2017 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -625,7 +625,7 @@ void htt_tx_desc_frags_table_set(htt_pdev_handle pdev, ((uint32_t *) htt_tx_desc) + HTT_TX_DESC_FRAGS_DESC_PADDR_OFFSET_DWORD; if (reset) { -#if defined(HELIUMPLUS_PADDR64) +#if defined(HELIUMPLUS) *fragmentation_descr_field_ptr = frag_desc_paddr; #else *fragmentation_descr_field_ptr = diff --git a/core/dp/htt/htt_types.h b/core/dp/htt/htt_types.h index dbbcbabd40..035b510a97 100644 --- a/core/dp/htt/htt_types.h +++ b/core/dp/htt/htt_types.h @@ -177,7 +177,7 @@ struct htt_tx_credit_t { qdf_atomic_t target_delta; }; -#if defined(HELIUMPLUS_PADDR64) +#if defined(HELIUMPLUS) /** * msdu_ext_frag_desc: * semantically, this is an array of 6 of 2-tuples of @@ -216,7 +216,7 @@ struct msdu_ext_desc_t { u_int32_t frag_len5; */ }; -#endif /* defined(HELIUMPLUS_PADDR64) */ +#endif /* defined(HELIUMPLUS) */ /** * struct mon_channel @@ -259,12 +259,12 @@ struct htt_pdev_t { uint8_t major; uint8_t minor; } tgt_ver; -#if defined(HELIUMPLUS_PADDR64) +#if defined(HELIUMPLUS) struct { u_int8_t major; u_int8_t minor; } wifi_ip_ver; -#endif /* defined(HELIUMPLUS_PADDR64) */ +#endif /* defined(HELIUMPLUS) */ struct { struct { /* @@ -379,14 +379,14 @@ struct htt_pdev_t { uint32_t *freelist; qdf_dma_mem_context(memctx); } tx_descs; -#if defined(HELIUMPLUS_PADDR64) +#if defined(HELIUMPLUS) struct { int size; /* of each Fragment/MSDU-Ext descriptor */ int pool_elems; struct qdf_mem_multi_page_t desc_pages; qdf_dma_mem_context(memctx); } frag_descs; -#endif /* defined(HELIUMPLUS_PADDR64) */ +#endif /* defined(HELIUMPLUS) */ int download_len; void (*tx_send_complete_part2)(void *pdev, A_STATUS status, @@ -424,12 +424,12 @@ struct htt_pdev_t { #define HTT_EPID_GET(_htt_pdev_hdl) \ (((struct htt_pdev_t *)(_htt_pdev_hdl))->htc_tx_endpoint) -#if defined(HELIUMPLUS_PADDR64) +#if defined(HELIUMPLUS) #define HTT_WIFI_IP(pdev, x, y) (((pdev)->wifi_ip_ver.major == (x)) && \ ((pdev)->wifi_ip_ver.minor == (y))) #define HTT_SET_WIFI_IP(pdev, x, y) (((pdev)->wifi_ip_ver.major = (x)) && \ ((pdev)->wifi_ip_ver.minor = (y))) -#endif /* defined(HELIUMPLUS_PADDR64) */ +#endif /* defined(HELIUMPLUS) */ #endif /* _HTT_TYPES__H_ */ diff --git a/core/dp/htt/rx_desc.h b/core/dp/htt/rx_desc.h index fc1b39ac52..faf103dc2c 100644 --- a/core/dp/htt/rx_desc.h +++ b/core/dp/htt/rx_desc.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2015 The Linux Foundation. All rights reserved. + * Copyright (c) 2011-2015, 2017 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -112,7 +112,7 @@ struct rx_msdu_start { tcp_only_ack:1, /* [15] */ sa_idx:11, /* [26:16] */ reserved_2b:5; /* [31:27] */ -#if defined(HELIUMPLUS_PADDR64) +#if defined(HELIUMPLUS) volatile uint32_t da_idx:11, /* [10:0] */ da_is_bcast_mcast:1, /* [11] */ @@ -120,7 +120,7 @@ struct rx_msdu_start { ip4_protocol_ip6_next_header:8, /* [23:16] */ ring_mask:8; /* [31:24] */ volatile uint32_t toeplitz_hash_2_or_4:32; /* [31:0] */ -#endif /* defined(HELIUMPLUS_PADDR64) */ +#endif /* defined(HELIUMPLUS) */ }; struct rx_msdu_end { @@ -152,7 +152,7 @@ struct rx_msdu_end { reserved_3a:3, /* [29:27] */ pre_delim_err:1, /* [30] */ reserved_3b:1; /* [31] */ -#if defined(HELIUMPLUS_PADDR64) +#if defined(HELIUMPLUS) volatile uint32_t ipv6_options_crc:32; volatile uint32_t tcp_seq_number:32; volatile uint32_t tcp_ack_number:32; @@ -173,7 +173,7 @@ struct rx_msdu_end { volatile uint32_t rule_indication_63_32:32; volatile uint32_t rule_indication_95_64:32; volatile uint32_t rule_indication_127_96:32; -#endif /* defined(HELIUMPLUS_PADDR64) */ +#endif /* defined(HELIUMPLUS) */ }; struct rx_mpdu_end { diff --git a/core/dp/ol/inc/ol_htt_tx_api.h b/core/dp/ol/inc/ol_htt_tx_api.h index 81ff598107..9a13307b92 100644 --- a/core/dp/ol/inc/ol_htt_tx_api.h +++ b/core/dp/ol/inc/ol_htt_tx_api.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2016 The Linux Foundation. All rights reserved. + * Copyright (c) 2011-2017 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -371,7 +371,7 @@ void *htt_tx_desc_alloc(htt_pdev_handle pdev, qdf_dma_addr_t *paddr, */ void htt_tx_desc_free(htt_pdev_handle htt_pdev, void *htt_tx_desc); -#if defined(HELIUMPLUS_PADDR64) +#if defined(HELIUMPLUS) /** * @brief Allocate TX frag descriptor * @details @@ -392,7 +392,7 @@ static inline int htt_tx_frag_alloc(htt_pdev_handle pdev, *frag_ptr = NULL; return 0; } -#endif /* defined(HELIUMPLUS_PADDR64) */ +#endif /* defined(HELIUMPLUS) */ #if defined(CONFIG_HL_SUPPORT) @@ -598,7 +598,7 @@ htt_tx_desc_num_frags(htt_pdev_handle pdev, void *desc, uint32_t num_frags) * Set the element after the valid frag elems to 0x0, * to terminate the list of fragments. */ -#if defined(HELIUMPLUS_PADDR64) +#if defined(HELIUMPLUS) if (HTT_WIFI_IP(pdev, 2, 0)) { struct msdu_ext_frag_desc *fdesc; @@ -611,10 +611,10 @@ htt_tx_desc_num_frags(htt_pdev_handle pdev, void *desc, uint32_t num_frags) *((u_int32_t *) (((char *) desc) + HTT_TX_DESC_LEN + num_frags * 8)) = 0; } -#else /* ! HELIUMPLUS_PADDR64 */ +#else /* ! HELIUMPLUS */ *((uint32_t *) (((char *)desc) + HTT_TX_DESC_LEN + num_frags * 8)) = 0; -#endif /* HELIUMPLUS_PADDR64 */ +#endif /* HELIUMPLUS */ } /* checksum offload flags for hw */ @@ -649,7 +649,7 @@ htt_tx_desc_frag(htt_pdev_handle pdev, int frag_num, qdf_dma_addr_t frag_phys_addr, uint16_t frag_len) { uint32_t *word32; -#if defined(HELIUMPLUS_PADDR64) +#if defined(HELIUMPLUS) uint64_t *word64; if (HTT_WIFI_IP(pdev, 2, 0)) { @@ -685,7 +685,7 @@ htt_tx_desc_frag(htt_pdev_handle pdev, /* For Helium+, this block cannot exist */ QDF_ASSERT(0); } -#else /* !defined(HELIUMPLUS_PADDR64) */ +#else /* !defined(HELIUMPLUS) */ { uint64_t u64 = (uint64_t)frag_phys_addr; uint32_t u32l = (u64 & 0xffffffff); @@ -698,7 +698,7 @@ htt_tx_desc_frag(htt_pdev_handle pdev, word32++; *word32 = (u32h << 16) | frag_len; } -#endif /* defined(HELIUMPLUS_PADDR64) */ +#endif /* defined(HELIUMPLUS) */ } void htt_tx_desc_frags_table_set(htt_pdev_handle pdev, diff --git a/core/dp/txrx/ol_tx.c b/core/dp/txrx/ol_tx.c index 53c37a0546..6aa8f488f6 100644 --- a/core/dp/txrx/ol_tx.c +++ b/core/dp/txrx/ol_tx.c @@ -495,7 +495,7 @@ ol_tx_prepare_ll_fast(struct ol_txrx_pdev_t *pdev, num_frags = (num_frags > QDF_NBUF_CB_TX_MAX_EXTRA_FRAGS) ? QDF_NBUF_CB_TX_MAX_EXTRA_FRAGS : num_frags; -#if defined(HELIUMPLUS_PADDR64) +#if defined(HELIUMPLUS) /* * Use num_frags - 1, since 1 frag is used to store * the HTT/HTC descriptor @@ -503,10 +503,10 @@ ol_tx_prepare_ll_fast(struct ol_txrx_pdev_t *pdev, */ htt_tx_desc_num_frags(pdev->htt_pdev, tx_desc->htt_frag_desc, num_frags - 1); -#else /* ! defined(HELIUMPLUSPADDR64) */ +#else /* ! defined(HELIUMPLUS) */ htt_tx_desc_num_frags(pdev->htt_pdev, tx_desc->htt_tx_desc, num_frags-1); -#endif /* defined(HELIUMPLUS_PADDR64) */ +#endif /* defined(HELIUMPLUS) */ if (msdu_info->tso_info.is_tso) { htt_tx_desc_fill_tso_info(pdev->htt_pdev, tx_desc->htt_frag_desc, &msdu_info->tso_info); @@ -526,7 +526,7 @@ ol_tx_prepare_ll_fast(struct ol_txrx_pdev_t *pdev, frag_len -= sizeof(struct htt_tx_msdu_desc_ext_t); } -#if defined(HELIUMPLUS_PADDR64) +#if defined(HELIUMPLUS) htt_tx_desc_frag(pdev->htt_pdev, tx_desc->htt_frag_desc, i - 1, frag_paddr, frag_len); #if defined(HELIUMPLUS_DEBUG) @@ -535,10 +535,10 @@ ol_tx_prepare_ll_fast(struct ol_txrx_pdev_t *pdev, i-1, frag_paddr, frag_len); ol_txrx_dump_pkt(netbuf, frag_paddr, 64); #endif /* HELIUMPLUS_DEBUG */ -#else /* ! defined(HELIUMPLUSPADDR64) */ +#else /* ! defined(HELIUMPLUS) */ htt_tx_desc_frag(pdev->htt_pdev, tx_desc->htt_tx_desc, i - 1, frag_paddr, frag_len); -#endif /* defined(HELIUMPLUS_PADDR64) */ +#endif /* defined(HELIUMPLUS) */ } } @@ -1424,10 +1424,10 @@ ol_txrx_mgmt_tx_desc_alloc( * specifying the fragment table to the FW, specify just the * address of the initial fragment. */ -#if defined(HELIUMPLUS_PADDR64) +#if defined(HELIUMPLUS) /* ol_txrx_dump_frag_desc("ol_txrx_mgmt_send(): after ol_tx_desc_ll", tx_desc); */ -#endif /* defined(HELIUMPLUS_PADDR64) */ +#endif /* defined(HELIUMPLUS) */ if (tx_desc) { /* * Following the call to ol_tx_desc_ll, frag 0 is the @@ -1439,11 +1439,11 @@ ol_txrx_mgmt_tx_desc_alloc( tx_desc->htt_tx_desc, qdf_nbuf_get_frag_paddr(tx_mgmt_frm, 1), 0, 0); -#if defined(HELIUMPLUS_PADDR64) && defined(HELIUMPLUS_DEBUG) +#if defined(HELIUMPLUS) && defined(HELIUMPLUS_DEBUG) ol_txrx_dump_frag_desc( "after htt_tx_desc_frags_table_set", tx_desc); -#endif /* defined(HELIUMPLUS_PADDR64) */ +#endif /* defined(HELIUMPLUS) */ } return tx_desc; @@ -1733,7 +1733,7 @@ ol_txrx_mgmt_tx_cb_set(struct cdp_pdev *ppdev, pdev->tx_mgmt.callbacks[type].ctxt = ctxt; } -#if defined(HELIUMPLUS_PADDR64) +#if defined(HELIUMPLUS) void ol_txrx_dump_frag_desc(char *msg, struct ol_tx_desc_t *tx_desc) { uint32_t *frag_ptr_i_p; @@ -1771,7 +1771,7 @@ void ol_txrx_dump_frag_desc(char *msg, struct ol_tx_desc_t *tx_desc) } return; } -#endif /* HELIUMPLUS_PADDR64 */ +#endif /* HELIUMPLUS */ int ol_txrx_mgmt_send_ext(struct cdp_vdev *pvdev, diff --git a/core/dp/txrx/ol_tx.h b/core/dp/txrx/ol_tx.h index b2157f7b58..7369760d33 100644 --- a/core/dp/txrx/ol_tx.h +++ b/core/dp/txrx/ol_tx.h @@ -196,7 +196,7 @@ static inline void ol_tso_num_seg_list_deinit(struct ol_txrx_pdev_t *pdev) } #endif -#if defined(HELIUMPLUS_PADDR64) +#if defined(HELIUMPLUS) void ol_txrx_dump_frag_desc(char *msg, struct ol_tx_desc_t *tx_desc); #else static inline diff --git a/core/dp/txrx/ol_tx_desc.c b/core/dp/txrx/ol_tx_desc.c index d30be107fb..b4ff74c6e5 100644 --- a/core/dp/txrx/ol_tx_desc.c +++ b/core/dp/txrx/ol_tx_desc.c @@ -552,7 +552,7 @@ struct ol_tx_desc_t *ol_tx_desc_ll(struct ol_txrx_pdev_t *pdev, num_frags = (num_frags > QDF_NBUF_CB_TX_MAX_EXTRA_FRAGS) ? QDF_NBUF_CB_TX_MAX_EXTRA_FRAGS : num_frags; -#if defined(HELIUMPLUS_PADDR64) +#if defined(HELIUMPLUS) /* * Use num_frags - 1, since 1 frag is used to store * the HTT/HTC descriptor @@ -560,10 +560,10 @@ struct ol_tx_desc_t *ol_tx_desc_ll(struct ol_txrx_pdev_t *pdev, */ htt_tx_desc_num_frags(pdev->htt_pdev, tx_desc->htt_frag_desc, num_frags - 1); -#else /* ! defined(HELIUMPLUSPADDR64) */ +#else /* ! defined(HELIUMPLUS) */ htt_tx_desc_num_frags(pdev->htt_pdev, tx_desc->htt_tx_desc, num_frags - 1); -#endif /* defined(HELIUMPLUS_PADDR64) */ +#endif /* defined(HELIUMPLUS) */ if (msdu_info->tso_info.is_tso) { htt_tx_desc_fill_tso_info(pdev->htt_pdev, @@ -581,7 +581,7 @@ struct ol_tx_desc_t *ol_tx_desc_ll(struct ol_txrx_pdev_t *pdev, #endif frag_len = qdf_nbuf_get_frag_len(netbuf, i); frag_paddr = qdf_nbuf_get_frag_paddr(netbuf, i); -#if defined(HELIUMPLUS_PADDR64) +#if defined(HELIUMPLUS) htt_tx_desc_frag(pdev->htt_pdev, tx_desc->htt_frag_desc, i - 1, frag_paddr, frag_len); #if defined(HELIUMPLUS_DEBUG) @@ -590,10 +590,10 @@ struct ol_tx_desc_t *ol_tx_desc_ll(struct ol_txrx_pdev_t *pdev, i-1, frag_vaddr, frag_paddr, frag_len); ol_txrx_dump_pkt(netbuf, frag_paddr, 64); #endif /* HELIUMPLUS_DEBUG */ -#else /* ! defined(HELIUMPLUSPADDR64) */ +#else /* ! defined(HELIUMPLUS) */ htt_tx_desc_frag(pdev->htt_pdev, tx_desc->htt_tx_desc, i - 1, frag_paddr, frag_len); -#endif /* defined(HELIUMPLUS_PADDR64) */ +#endif /* defined(HELIUMPLUS) */ } } @@ -704,7 +704,7 @@ void ol_tx_desc_frame_free_nonstd(struct ol_txrx_pdev_t *pdev, (tx_desc->pkt_type != ol_tx_frm_freed)) { qdf_dma_addr_t frag_desc_paddr = 0; -#if defined(HELIUMPLUS_PADDR64) +#if defined(HELIUMPLUS) frag_desc_paddr = tx_desc->htt_frag_desc_paddr; /* FIX THIS - * The FW currently has trouble using the host's fragments @@ -720,7 +720,7 @@ void ol_tx_desc_frame_free_nonstd(struct ol_txrx_pdev_t *pdev, __func__, __LINE__, tx_desc->id, frag_desc_paddr); #endif /* HELIUMPLUS_DEBUG */ -#endif /* HELIUMPLUS_PADDR64 */ +#endif /* HELIUMPLUS */ htt_tx_desc_frags_table_set(pdev->htt_pdev, tx_desc->htt_tx_desc, 0, frag_desc_paddr, 1);