Browse Source

qcacld-3.0: Initialize hal_reg_capabilities extension

In case the service ready extension event is not available from
firmware, the hal_reg_capabilities in psoc structure do not get filled
up. But pdev channel list depends on hal_reg_capabilities extension
having proper range values values for channels. Since MCL has only
single pdev, unconditionally fill up the values in psoc service ready
ext data structures..

Change-Id: Idb2c8525d5789078654c1cba8d841dea03841ae8
CRs-Fixed: 2048054
Amar Singhal 8 years ago
parent
commit
cab1b4f7d9
1 changed files with 15 additions and 0 deletions
  1. 15 0
      core/hdd/src/wlan_hdd_object_manager.c

+ 15 - 0
core/hdd/src/wlan_hdd_object_manager.c

@@ -33,6 +33,11 @@
 #include <wlan_hdd_object_manager.h>
 #include <wlan_osif_priv.h>
 
+#define LOW_2GHZ_FREQ 2312
+#define HIGH_2GHZ_FREQ 2732
+#define LOW_5GHZ_FREQ  4912
+#define HIGH_5GHZ_FREQ 6100
+
 static void hdd_init_pdev_os_priv(hdd_context_t *hdd_ctx,
 	struct pdev_osif_priv *os_priv)
 {
@@ -101,6 +106,7 @@ int hdd_objmgr_create_and_store_pdev(hdd_context_t *hdd_ctx)
 	struct wlan_objmgr_psoc *psoc = hdd_ctx->hdd_psoc;
 	struct wlan_objmgr_pdev *pdev;
 	struct pdev_osif_priv *priv;
+	struct wlan_psoc_host_hal_reg_capabilities_ext *reg_cap_ptr;
 
 	if (!psoc) {
 		hdd_err("Psoc NULL");
@@ -112,11 +118,20 @@ int hdd_objmgr_create_and_store_pdev(hdd_context_t *hdd_ctx)
 		hdd_err("pdev os obj create failed");
 		return -ENOMEM;
 	}
+
+	reg_cap_ptr = psoc->ext_service_param.reg_cap;
+	reg_cap_ptr->phy_id = 0;
+	reg_cap_ptr->low_2ghz_chan = LOW_2GHZ_FREQ;
+	reg_cap_ptr->high_2ghz_chan = HIGH_2GHZ_FREQ;
+	reg_cap_ptr->low_5ghz_chan = LOW_5GHZ_FREQ;
+	reg_cap_ptr->high_5ghz_chan = HIGH_5GHZ_FREQ;
+
 	pdev = wlan_objmgr_pdev_obj_create(psoc, priv);
 	if (!pdev) {
 		hdd_err("pdev obj create failed");
 		return -ENOMEM;
 	}
+
 	hdd_ctx->hdd_pdev = pdev;
 	sme_store_pdev(hdd_ctx->hHal, hdd_ctx->hdd_pdev);
 	hdd_init_pdev_os_priv(hdd_ctx, priv);