summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYun Park <yunp@qca.qualcomm.com>2015-07-29 10:01:30 -0700
committerAnjaneedevi Kapparapu <akappa@codeaurora.org>2015-07-30 15:33:10 +0530
commitd0f6c8bb437fd37c72decc26fb0c50cde1b4115e (patch)
tree14d92268538f42cd8467899e8a7f8d9992e498e8
parent25cda3e937d35ce0abc8e4d994317636d2699088 (diff)
qcacld: IPA uC: Fix build error when IPA_UC_OFFLOAD is disabled
This change is to fix a build error when IPA_UC_OFFLOAD is disabled, due to hdd_ipa_setup_sys_pipe and hdd_ipa_teardown_sys_pipe is defined in IPA_UC_OFFLOAD build flag. Change-Id: If64e09c692c2f60a878dabc4a34751ad4110cfb9 CRs-Fixed: 879426
-rw-r--r--CORE/HDD/src/wlan_hdd_ipa.c228
1 files changed, 114 insertions, 114 deletions
diff --git a/CORE/HDD/src/wlan_hdd_ipa.c b/CORE/HDD/src/wlan_hdd_ipa.c
index befe6555d33d..9b51233eb5f0 100644
--- a/CORE/HDD/src/wlan_hdd_ipa.c
+++ b/CORE/HDD/src/wlan_hdd_ipa.c
@@ -612,6 +612,120 @@ static bool hdd_ipa_can_send_to_ipa(hdd_adapter_t *adapter, struct hdd_ipa_priv
return false;
}
+static int hdd_ipa_setup_sys_pipe(struct hdd_ipa_priv *hdd_ipa)
+{
+ int i, ret = 0;
+ struct ipa_sys_connect_params *ipa;
+ uint32_t desc_fifo_sz;
+
+ /* The maximum number of descriptors that can be provided to a BAM at
+ * once is one less than the total number of descriptors that the buffer
+ * can contain.
+ * If max_num_of_descriptors = (BAM_PIPE_DESCRIPTOR_FIFO_SIZE / sizeof
+ * (SPS_DESCRIPTOR)), then (max_num_of_descriptors - 1) descriptors can
+ * be provided at once.
+ * Because of above requirement, one extra descriptor will be added to
+ * make sure hardware always has one descriptor.
+ */
+ desc_fifo_sz = hdd_ipa->hdd_ctx->cfg_ini->IpaDescSize
+ + sizeof(struct sps_iovec);
+
+ /*setup TX pipes */
+ for (i = 0; i < HDD_IPA_MAX_IFACE; i++) {
+ ipa = &hdd_ipa->sys_pipe[i].ipa_sys_params;
+
+ ipa->client = hdd_ipa_adapter_2_client[i].cons_client;
+ ipa->desc_fifo_sz = desc_fifo_sz;
+ ipa->priv = &hdd_ipa->iface_context[i];
+ ipa->notify = hdd_ipa_i2w_cb;
+
+#ifdef IPA_UC_STA_OFFLOAD
+ ipa->ipa_ep_cfg.hdr.hdr_len = HDD_IPA_UC_WLAN_TX_HDR_LEN;
+ ipa->ipa_ep_cfg.nat.nat_en = IPA_BYPASS_NAT;
+ ipa->ipa_ep_cfg.hdr.hdr_ofst_pkt_size_valid = 1;
+ ipa->ipa_ep_cfg.hdr.hdr_ofst_pkt_size = 0;
+ ipa->ipa_ep_cfg.hdr.hdr_additional_const_len =
+ HDD_IPA_UC_WLAN_8023_HDR_SIZE;
+ ipa->ipa_ep_cfg.hdr_ext.hdr_little_endian = true;
+#else
+ ipa->ipa_ep_cfg.hdr.hdr_len = HDD_IPA_WLAN_TX_HDR_LEN;
+#endif
+ ipa->ipa_ep_cfg.mode.mode = IPA_BASIC;
+
+ if (!hdd_ipa_is_rm_enabled(hdd_ipa))
+ ipa->keep_ipa_awake = 1;
+
+ ret = ipa_setup_sys_pipe(ipa, &(hdd_ipa->sys_pipe[i].conn_hdl));
+ if (ret) {
+ HDD_IPA_LOG(VOS_TRACE_LEVEL_ERROR, "Failed for pipe %d"
+ " ret: %d", i, ret);
+ goto setup_sys_pipe_fail;
+ }
+ hdd_ipa->sys_pipe[i].conn_hdl_valid = 1;
+ }
+
+#ifndef IPA_UC_STA_OFFLOAD
+ /*
+ * Hard code it here, this can be extended if in case PROD pipe is also
+ * per interface. Right now there is no advantage of doing this.
+ */
+ hdd_ipa->prod_client = IPA_CLIENT_WLAN1_PROD;
+
+ ipa = &hdd_ipa->sys_pipe[HDD_IPA_RX_PIPE].ipa_sys_params;
+
+ ipa->client = hdd_ipa->prod_client;
+
+ ipa->desc_fifo_sz = desc_fifo_sz;
+ ipa->priv = hdd_ipa;
+ ipa->notify = hdd_ipa_w2i_cb;
+
+ ipa->ipa_ep_cfg.nat.nat_en = IPA_BYPASS_NAT;
+ ipa->ipa_ep_cfg.hdr.hdr_len = HDD_IPA_WLAN_RX_HDR_LEN;
+ ipa->ipa_ep_cfg.hdr.hdr_ofst_metadata_valid = 1;
+ ipa->ipa_ep_cfg.mode.mode = IPA_BASIC;
+
+ if (!hdd_ipa_is_rm_enabled(hdd_ipa))
+ ipa->keep_ipa_awake = 1;
+
+ ret = ipa_setup_sys_pipe(ipa, &(hdd_ipa->sys_pipe[i].conn_hdl));
+ if (ret) {
+ HDD_IPA_LOG(VOS_TRACE_LEVEL_ERROR, "Failed for RX pipe: %d",
+ ret);
+ goto setup_sys_pipe_fail;
+ }
+ hdd_ipa->sys_pipe[HDD_IPA_RX_PIPE].conn_hdl_valid = 1;
+#endif /* IPA_UC_STA_OFFLOAD */
+
+ return ret;
+
+setup_sys_pipe_fail:
+
+ while (--i >= 0) {
+ ipa_teardown_sys_pipe(hdd_ipa->sys_pipe[i].conn_hdl);
+ adf_os_mem_zero(&hdd_ipa->sys_pipe[i],
+ sizeof(struct hdd_ipa_sys_pipe ));
+ }
+
+ return ret;
+}
+
+/* Disconnect all the Sys pipes */
+static void hdd_ipa_teardown_sys_pipe(struct hdd_ipa_priv *hdd_ipa)
+{
+ int ret = 0, i;
+ for (i = 0; i < HDD_IPA_MAX_SYSBAM_PIPE; i++) {
+ if (hdd_ipa->sys_pipe[i].conn_hdl_valid) {
+ ret = ipa_teardown_sys_pipe(
+ hdd_ipa->sys_pipe[i].conn_hdl);
+ if (ret)
+ HDD_IPA_LOG(VOS_TRACE_LEVEL_ERROR, "Failed: %d",
+ ret);
+
+ hdd_ipa->sys_pipe[i].conn_hdl_valid = 0;
+ }
+ }
+}
+
#ifdef IPA_UC_OFFLOAD
void hdd_ipa_uc_stat_query(hdd_context_t *pHddCtx,
uint32_t *ipa_tx_diff, uint32_t *ipa_rx_diff)
@@ -733,120 +847,6 @@ static v_BOOL_t hdd_ipa_uc_find_add_assoc_sta(
return sta_found;
}
-static int hdd_ipa_setup_sys_pipe(struct hdd_ipa_priv *hdd_ipa)
-{
- int i, ret = 0;
- struct ipa_sys_connect_params *ipa;
- uint32_t desc_fifo_sz;
-
- /* The maximum number of descriptors that can be provided to a BAM at
- * once is one less than the total number of descriptors that the buffer
- * can contain.
- * If max_num_of_descriptors = (BAM_PIPE_DESCRIPTOR_FIFO_SIZE / sizeof
- * (SPS_DESCRIPTOR)), then (max_num_of_descriptors - 1) descriptors can
- * be provided at once.
- * Because of above requirement, one extra descriptor will be added to
- * make sure hardware always has one descriptor.
- */
- desc_fifo_sz = hdd_ipa->hdd_ctx->cfg_ini->IpaDescSize
- + sizeof(struct sps_iovec);
-
- /*setup TX pipes */
- for (i = 0; i < HDD_IPA_MAX_IFACE; i++) {
- ipa = &hdd_ipa->sys_pipe[i].ipa_sys_params;
-
- ipa->client = hdd_ipa_adapter_2_client[i].cons_client;
- ipa->desc_fifo_sz = desc_fifo_sz;
- ipa->priv = &hdd_ipa->iface_context[i];
- ipa->notify = hdd_ipa_i2w_cb;
-
-#ifdef IPA_UC_STA_OFFLOAD
- ipa->ipa_ep_cfg.hdr.hdr_len = HDD_IPA_UC_WLAN_TX_HDR_LEN;
- ipa->ipa_ep_cfg.nat.nat_en = IPA_BYPASS_NAT;
- ipa->ipa_ep_cfg.hdr.hdr_ofst_pkt_size_valid = 1;
- ipa->ipa_ep_cfg.hdr.hdr_ofst_pkt_size = 0;
- ipa->ipa_ep_cfg.hdr.hdr_additional_const_len =
- HDD_IPA_UC_WLAN_8023_HDR_SIZE;
- ipa->ipa_ep_cfg.hdr_ext.hdr_little_endian = true;
-#else
- ipa->ipa_ep_cfg.hdr.hdr_len = HDD_IPA_WLAN_TX_HDR_LEN;
-#endif
- ipa->ipa_ep_cfg.mode.mode = IPA_BASIC;
-
- if (!hdd_ipa_is_rm_enabled(hdd_ipa))
- ipa->keep_ipa_awake = 1;
-
- ret = ipa_setup_sys_pipe(ipa, &(hdd_ipa->sys_pipe[i].conn_hdl));
- if (ret) {
- HDD_IPA_LOG(VOS_TRACE_LEVEL_ERROR, "Failed for pipe %d"
- " ret: %d", i, ret);
- goto setup_sys_pipe_fail;
- }
- hdd_ipa->sys_pipe[i].conn_hdl_valid = 1;
- }
-
-#ifndef IPA_UC_STA_OFFLOAD
- /*
- * Hard code it here, this can be extended if in case PROD pipe is also
- * per interface. Right now there is no advantage of doing this.
- */
- hdd_ipa->prod_client = IPA_CLIENT_WLAN1_PROD;
-
- ipa = &hdd_ipa->sys_pipe[HDD_IPA_RX_PIPE].ipa_sys_params;
-
- ipa->client = hdd_ipa->prod_client;
-
- ipa->desc_fifo_sz = desc_fifo_sz;
- ipa->priv = hdd_ipa;
- ipa->notify = hdd_ipa_w2i_cb;
-
- ipa->ipa_ep_cfg.nat.nat_en = IPA_BYPASS_NAT;
- ipa->ipa_ep_cfg.hdr.hdr_len = HDD_IPA_WLAN_RX_HDR_LEN;
- ipa->ipa_ep_cfg.hdr.hdr_ofst_metadata_valid = 1;
- ipa->ipa_ep_cfg.mode.mode = IPA_BASIC;
-
- if (!hdd_ipa_is_rm_enabled(hdd_ipa))
- ipa->keep_ipa_awake = 1;
-
- ret = ipa_setup_sys_pipe(ipa, &(hdd_ipa->sys_pipe[i].conn_hdl));
- if (ret) {
- HDD_IPA_LOG(VOS_TRACE_LEVEL_ERROR, "Failed for RX pipe: %d",
- ret);
- goto setup_sys_pipe_fail;
- }
- hdd_ipa->sys_pipe[HDD_IPA_RX_PIPE].conn_hdl_valid = 1;
-#endif /* IPA_UC_STA_OFFLOAD */
-
- return ret;
-
-setup_sys_pipe_fail:
-
- while (--i >= 0) {
- ipa_teardown_sys_pipe(hdd_ipa->sys_pipe[i].conn_hdl);
- adf_os_mem_zero(&hdd_ipa->sys_pipe[i],
- sizeof(struct hdd_ipa_sys_pipe ));
- }
-
- return ret;
-}
-
-/* Disconnect all the Sys pipes */
-static void hdd_ipa_teardown_sys_pipe(struct hdd_ipa_priv *hdd_ipa)
-{
- int ret = 0, i;
- for (i = 0; i < HDD_IPA_MAX_SYSBAM_PIPE; i++) {
- if (hdd_ipa->sys_pipe[i].conn_hdl_valid) {
- ret = ipa_teardown_sys_pipe(
- hdd_ipa->sys_pipe[i].conn_hdl);
- if (ret)
- HDD_IPA_LOG(VOS_TRACE_LEVEL_ERROR, "Failed: %d",
- ret);
-
- hdd_ipa->sys_pipe[i].conn_hdl_valid = 0;
- }
- }
-}
-
static int hdd_ipa_uc_enable_pipes(struct hdd_ipa_priv *hdd_ipa)
{
int result;