qcacld-3.0: Fix WLAN IPA perf profile initialization

With IPA WDI unified API, IPA PM is initialized after WLAN IPA pipes
are connected. Initializing IPA perf profile will fail if IPA pipes
are not yet connected.

Fix is to
1. Initialize perf perofile only after IPA pipes are connected
successfully.
2. If clk scaling is disabled, initialize perf level to maximum.
3. Allow driver to proceed if perf profile initialization fails.

Change-Id: I3a63e0f1decec10440467da62cb6ccf740eda318
CRs-Fixed: 2258682
diff --git a/components/ipa/core/src/wlan_ipa_core.c b/components/ipa/core/src/wlan_ipa_core.c
index 6766f6d..000629d 100644
--- a/components/ipa/core/src/wlan_ipa_core.c
+++ b/components/ipa/core/src/wlan_ipa_core.c
@@ -2668,15 +2668,6 @@
 		ipa_ctx->vdev_offload_enabled[i] = false;
 	}
 
-	/* Set the lowest bandwidth to start with */
-	status = wlan_ipa_set_perf_level(ipa_ctx, 0, 0);
-	if (status != QDF_STATUS_SUCCESS) {
-		ipa_err("Set perf level failed: %d", status);
-		wlan_ipa_wdi_rm_inactivity_timer_destroy(
-					QDF_IPA_RM_RESOURCE_WLAN_PROD);
-		goto fail_return;
-	}
-
 	if (cdp_ipa_get_resource(ipa_ctx->dp_soc, ipa_ctx->dp_pdev)) {
 		ipa_err("IPA UC resource alloc fail");
 		status = QDF_STATUS_E_FAILURE;
@@ -2694,6 +2685,9 @@
 
 		cdp_ipa_set_doorbell_paddr(ipa_ctx->dp_soc, ipa_ctx->dp_pdev);
 		wlan_ipa_init_metering(ipa_ctx);
+
+		if (wlan_ipa_init_perf_level(ipa_ctx) != QDF_STATUS_SUCCESS)
+			ipa_err("Failed to init perf level");
 	}
 
 	cdp_ipa_register_op_cb(ipa_ctx->dp_soc, ipa_ctx->dp_pdev,