Ver código fonte

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
Kiran Venkatappa 8 anos atrás
pai
commit
49341045ba
3 arquivos alterados com 20 adições e 1 exclusões
  1. 9 0
      wmi_unified_api.h
  2. 4 0
      wmi_unified_param.h
  3. 7 1
      wmi_unified_priv.h

+ 9 - 0
wmi_unified_api.h

@@ -309,6 +309,15 @@ wmi_stop(wmi_unified_t wmi_handle);
 void
 void
 wmi_flush_endpoint(wmi_unified_t wmi_handle);
 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
  * API to handle wmi rx event after UMAC has taken care of execution
  * context
  * context

+ 4 - 0
wmi_unified_param.h

@@ -7232,4 +7232,8 @@ struct coex_config_params {
 	uint32_t config_arg6;
 	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_ */
 #endif /* _WMI_UNIFIED_PARAM_H_ */

+ 7 - 1
wmi_unified_priv.h

@@ -1313,9 +1313,12 @@ QDF_STATUS (*extract_dfs_radar_detection_event)(wmi_unified_t wmi_handle,
 		struct radar_found_info *radar_found,
 		struct radar_found_info *radar_found,
 		uint32_t len);
 		uint32_t len);
 #endif
 #endif
-
 QDF_STATUS (*send_set_country_cmd)(wmi_unified_t wmi_handle,
 QDF_STATUS (*send_set_country_cmd)(wmi_unified_t wmi_handle,
 				struct set_country *param);
 				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 {
 struct target_abi_version {
@@ -1430,8 +1433,11 @@ struct wmi_soc {
 /* ONLY_NON_TLV_TARGET:TLV attach dummy function defintion for case when
 /* ONLY_NON_TLV_TARGET:TLV attach dummy function defintion for case when
  * driver supports only NON-TLV target (WIN mainline) */
  * driver supports only NON-TLV target (WIN mainline) */
 #define wmi_tlv_attach(x) qdf_print("TLV Unavailable\n")
 #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
 #else
 void wmi_tlv_attach(wmi_unified_t wmi_handle);
 void wmi_tlv_attach(wmi_unified_t wmi_handle);
+void wmi_tlv_pdev_id_conversion_enable(wmi_unified_t wmi_handle);
 #endif
 #endif
 void wmi_non_tlv_attach(wmi_unified_t wmi_handle);
 void wmi_non_tlv_attach(wmi_unified_t wmi_handle);