Browse Source

qcacmn: Address Unified WMI "get link status" deficiencies

The original implementation of the "get link status" feature contains
some design and implementation details that are not ideal, so fix the
following deficiencies:
- The link_status_params struct contains three fields that are unused.
- The only link_status_params field that is used, session_id, uses
  legacy terminology instead of converged terminology
- The wmi_unified_link_status_req_cmd() implementation uses a void
  pointer instead of the correct underlying type for the WMI handle.

Note that change I508ec083298caa45d4cbb1ba28b21e47e379a804
("qcacld-3.0: Align with revised "get link status" Unified WMI") is
interdependent with this change.

Change-Id: I057ca0aff4a627c7fcdb9f90a5da46473813f60a
CRs-Fixed: 2381364
Jeff Johnson 6 years ago
parent
commit
6a00f1e830
4 changed files with 16 additions and 17 deletions
  1. 9 2
      wmi/inc/wmi_unified_api.h
  2. 2 8
      wmi/inc/wmi_unified_param.h
  3. 4 6
      wmi/src/wmi_unified_api.c
  4. 1 1
      wmi/src/wmi_unified_tlv.c

+ 9 - 2
wmi/inc/wmi_unified_api.h

@@ -713,8 +713,15 @@ QDF_STATUS wmi_unified_snr_request_cmd(void *wmi_hdl);
 
 QDF_STATUS wmi_unified_snr_cmd(void *wmi_hdl, uint8_t vdev_id);
 
-QDF_STATUS wmi_unified_link_status_req_cmd(void *wmi_hdl,
-				 struct link_status_params *link_status);
+/**
+ * wmi_unified_link_status_req_cmd() - process link status request from UMAC
+ * @wmi_handle: wmi handle
+ * @params: get link status params
+ *
+ * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
+ */
+QDF_STATUS wmi_unified_link_status_req_cmd(wmi_unified_t wmi_handle,
+					   struct link_status_params *params);
 
 #ifdef WLAN_SUPPORT_GREEN_AP
 QDF_STATUS wmi_unified_egap_conf_params_cmd(void *wmi_hdl,

+ 2 - 8
wmi/inc/wmi_unified_param.h

@@ -2432,16 +2432,10 @@ struct ll_stats_get_params {
 
 /**
  * struct link_status_params - link stats parameter
- * @msg_type: message type is same as the request type
- * @msg_len: length of the entire request
- * @link_status: wme ts spec flag
- * @session_id: wsm ts spec flag
+ * @vdev_id: ID of the vdev for which link status is desired
  */
 struct link_status_params {
-	uint16_t msg_type;
-	uint16_t msg_len;
-	uint8_t link_status;
-	uint8_t session_id;
+	uint8_t vdev_id;
 };
 
 /**

+ 4 - 6
wmi/src/wmi_unified_api.c

@@ -1414,18 +1414,16 @@ QDF_STATUS wmi_unified_snr_cmd(void *wmi_hdl, uint8_t vdev_id)
 /**
  * wmi_unified_link_status_req_cmd() - process link status request from UMAC
  * @wmi_handle: wmi handle
- * @link_status: get link params
+ * @params: get link status params
  *
  * Return: QDF_STATUS_SUCCESS on success and QDF_STATUS_E_FAILURE for failure
  */
-QDF_STATUS wmi_unified_link_status_req_cmd(void *wmi_hdl,
-				 struct link_status_params *link_status)
+QDF_STATUS wmi_unified_link_status_req_cmd(wmi_unified_t wmi_handle,
+					   struct link_status_params *params)
 {
-	wmi_unified_t wmi_handle = (wmi_unified_t) wmi_hdl;
-
 	if (wmi_handle->ops->send_link_status_req_cmd)
 		return wmi_handle->ops->send_link_status_req_cmd(wmi_handle,
-			    link_status);
+								 params);
 
 	return QDF_STATUS_E_FAILURE;
 }

+ 1 - 1
wmi/src/wmi_unified_tlv.c

@@ -4843,7 +4843,7 @@ static QDF_STATUS send_link_status_req_cmd_tlv(wmi_unified_t wmi_handle,
 		       WMITLV_GET_STRUCT_TLVLEN
 			       (wmi_request_stats_cmd_fixed_param));
 	cmd->stats_id = WMI_REQUEST_VDEV_RATE_STAT;
-	cmd->vdev_id = link_status->session_id;
+	cmd->vdev_id = link_status->vdev_id;
 	wmi_mtrace(WMI_REQUEST_STATS_CMDID, cmd->vdev_id, 0);
 	if (wmi_unified_cmd_send(wmi_handle, buf, len,
 				 WMI_REQUEST_STATS_CMDID)) {