summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYingying Tang <yintang@codeaurora.org>2017-02-24 17:23:34 +0800
committerqcabuildsw <qcabuildsw@localhost>2017-02-28 11:47:32 -0800
commita9bddf3ce4f5285865832ad2337d13a478415218 (patch)
treeba334144ecea36d5e75af20305c8db61888ac87c
parentaaa2f5cec7ec1e5a3cd8e989069d6b43ccfdbe64 (diff)
qcacld-3.0: Fix wlan driver insmod failure issue
IPA rx2 related resource allocation and setting are under QCA_WIFI_3_0, but in hdd_ipa_init, the rx2 resource check is not under the flag. Insmod driver will failed if the flag is disabled. Add fix to resolve this issue. Change-Id: I498ca46f3d6b2127467e0cfad892cea570012e19 CRs-Fixed: 2011410
-rw-r--r--core/hdd/src/wlan_hdd_ipa.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/core/hdd/src/wlan_hdd_ipa.c b/core/hdd/src/wlan_hdd_ipa.c
index 869ea2c8eee6..ccd6cf925ba3 100644
--- a/core/hdd/src/wlan_hdd_ipa.c
+++ b/core/hdd/src/wlan_hdd_ipa.c
@@ -561,10 +561,22 @@ do { \
} while (0)
#define HDD_IPA_CHECK_HW() ipa_uc_reg_rdyCB(NULL)
+
+#define IPA_RESOURCE_READY(ipa_resource) \
+ ((0 == (ipa_resource).ce_sr_base_paddr) || \
+ (0 == (ipa_resource).tx_comp_ring_base_paddr) || \
+ (0 == (ipa_resource).rx_rdy_ring_base_paddr) || \
+ (0 == (ipa_resource).rx2_rdy_ring_base_paddr))
#else
/* Do nothing */
#define HDD_IPA_WDI2_SET(pipe_in, ipa_ctxt)
#define HDD_IPA_CHECK_HW() 0
+
+#define IPA_RESOURCE_READY(ipa_resource) \
+ ((0 == (ipa_resource).ce_sr_base_paddr) || \
+ (0 == (ipa_resource).tx_comp_ring_base_paddr) || \
+ (0 == (ipa_resource).rx_rdy_ring_base_paddr))
+
#endif /* IPA3 */
#define HDD_IPA_DBG_DUMP_RX_LEN 32
@@ -2659,10 +2671,7 @@ QDF_STATUS hdd_ipa_uc_ol_init(hdd_context_t *hdd_ctx)
goto fail_return;
}
ol_txrx_ipa_uc_get_resource(pdev, &ipa_ctxt->ipa_resource);
- if ((ipa_ctxt->ipa_resource.ce_sr_base_paddr == 0) ||
- (ipa_ctxt->ipa_resource.tx_comp_ring_base_paddr == 0) ||
- (ipa_ctxt->ipa_resource.rx_rdy_ring_base_paddr == 0) ||
- (ipa_ctxt->ipa_resource.rx2_rdy_ring_base_paddr == 0)) {
+ if (IPA_RESOURCE_READY(ipa_ctxt->ipa_resource)) {
HDD_IPA_LOG(QDF_TRACE_LEVEL_FATAL,
"IPA UC resource alloc fail");
stat = QDF_STATUS_E_FAILURE;