qcacmn: Changes to support pdev_id in host from zero

pdev_id in FW starts from one. Zero is reserved for Soc. But host uses
pdev_id starting from zero. Make WMI changes to take care of this
difference and always provide and accept pdev_id starting from zero at
WMI. Use 0xFF for SoC on host.

Change-Id: I49f481e54bbaeea9359753bc7d3da9092fc9559a
CRs-Fixed: 2045125
diff --git a/wmi_unified_api.h b/wmi_unified_api.h
index 291606e..b5528e3 100644
--- a/wmi_unified_api.h
+++ b/wmi_unified_api.h
@@ -310,6 +310,15 @@
 wmi_flush_endpoint(wmi_unified_t wmi_handle);
 
 /**
+ * wmi_pdev_id_conversion_enable() - API to enable pdev_id conversion in WMI
+ *                     By default pdev_id conversion is not done in WMI.
+ *                     This API can be used enable conversion in WMI.
+ * @param wmi_handle   : handle to WMI
+ * Return none
+ */
+void wmi_pdev_id_conversion_enable(wmi_unified_t wmi_handle);
+
+/**
  * API to handle wmi rx event after UMAC has taken care of execution
  * context
  *
diff --git a/wmi_unified_param.h b/wmi_unified_param.h
index dc2137d..c950b97 100644
--- a/wmi_unified_param.h
+++ b/wmi_unified_param.h
@@ -7232,4 +7232,8 @@
 	uint32_t config_arg6;
 };
 
+#define WMI_HOST_PDEV_ID_SOC 0xFF
+#define WMI_HOST_PDEV_ID_0   0
+#define WMI_HOST_PDEV_ID_1   1
+#define WMI_HOST_PDEV_ID_2   2
 #endif /* _WMI_UNIFIED_PARAM_H_ */
diff --git a/wmi_unified_priv.h b/wmi_unified_priv.h
index 179ec73..8b9e64b 100644
--- a/wmi_unified_priv.h
+++ b/wmi_unified_priv.h
@@ -1313,9 +1313,12 @@
 		struct radar_found_info *radar_found,
 		uint32_t len);
 #endif
-
 QDF_STATUS (*send_set_country_cmd)(wmi_unified_t wmi_handle,
 				struct set_country *param);
+
+uint32_t (*convert_pdev_id_host_to_target)(uint32_t pdev_id);
+uint32_t (*convert_pdev_id_target_to_host)(uint32_t pdev_id);
+
 };
 
 struct target_abi_version {
@@ -1430,8 +1433,11 @@
 /* ONLY_NON_TLV_TARGET:TLV attach dummy function defintion for case when
  * driver supports only NON-TLV target (WIN mainline) */
 #define wmi_tlv_attach(x) qdf_print("TLV Unavailable\n")
+#define wmi_tlv_pdev_id_conversion_enable(wmi_hdl) \
+		qdf_print("PDEV conversion Not Available")
 #else
 void wmi_tlv_attach(wmi_unified_t wmi_handle);
+void wmi_tlv_pdev_id_conversion_enable(wmi_unified_t wmi_handle);
 #endif
 void wmi_non_tlv_attach(wmi_unified_t wmi_handle);