Przeglądaj źródła

Merge "qcacld-3.0: Add vendor ID and fix WMI command parameters" into wlan-cld3.driver.lnx.1.1-dev

Service qcabuildsw 8 lat temu
rodzic
commit
f66bf6ef06
2 zmienionych plików z 14 dodań i 7 usunięć
  1. 1 0
      core/hdd/src/wlan_hdd_cfg80211.c
  2. 13 7
      core/wma/src/wma_features.c

+ 1 - 0
core/hdd/src/wlan_hdd_cfg80211.c

@@ -6759,6 +6759,7 @@ const struct wiphy_vendor_command hdd_wiphy_vendor_commands[] = {
 		.doit = wlan_hdd_cfg80211_sap_configuration_set
 	},
 	{
+		.info.vendor_id = QCA_NL80211_VENDOR_ID,
 		.info.subcmd =
 			QCA_NL80211_VENDOR_SUBCMD_P2P_LISTEN_OFFLOAD_START,
 		.flags = WIPHY_VENDOR_CMD_NEED_WDEV |

+ 13 - 7
core/wma/src/wma_features.c

@@ -7493,15 +7493,20 @@ QDF_STATUS wma_p2p_lo_start(struct sir_p2p_lo_start *params)
 	tp_wma_handle wma = cds_get_context(QDF_MODULE_ID_WMA);
 	uint8_t *buf_ptr;
 	int ret;
+	int device_types_len_aligned, probe_resp_len_aligned;
 
 	if (NULL == wma) {
 		WMA_LOGE("%s: wma context is NULL", __func__);
 		return QDF_STATUS_E_INVAL;
 	}
 
-	len += 2 * WMI_TLV_HDR_SIZE +
-	       qdf_roundup(params->dev_types_len, sizeof(A_UINT32)) +
-	       qdf_roundup(params->probe_resp_len, sizeof(A_UINT32));
+	device_types_len_aligned = qdf_roundup(params->dev_types_len,
+						sizeof(A_UINT32));
+	probe_resp_len_aligned = qdf_roundup(params->probe_resp_len,
+						sizeof(A_UINT32));
+
+	len += 2 * WMI_TLV_HDR_SIZE + device_types_len_aligned +
+			probe_resp_len_aligned;
 
 	buf = wmi_buf_alloc(wma->wmi_handle, len);
 	if (!buf) {
@@ -7524,16 +7529,17 @@ QDF_STATUS wma_p2p_lo_start(struct sir_p2p_lo_start *params)
 	cmd->period = params->period;
 	cmd->interval = params->interval;
 	cmd->count = params->count;
+	cmd->device_types_len = params->dev_types_len;
+	cmd->prob_resp_len = params->probe_resp_len;
 
 	buf_ptr += sizeof(wmi_p2p_lo_start_cmd_fixed_param);
 	WMITLV_SET_HDR(buf_ptr, WMITLV_TAG_ARRAY_BYTE,
-		qdf_roundup(params->dev_types_len, sizeof(A_UINT32)));
+				device_types_len_aligned);
 	buf_ptr += WMI_TLV_HDR_SIZE;
 	qdf_mem_copy(buf_ptr, params->device_types, params->dev_types_len);
 
-	buf_ptr += qdf_roundup(params->dev_types_len, sizeof(A_UINT32));
-	WMITLV_SET_HDR(buf_ptr, WMITLV_TAG_ARRAY_BYTE,
-		qdf_roundup(params->probe_resp_len, sizeof(A_UINT32)));
+	buf_ptr += device_types_len_aligned;
+	WMITLV_SET_HDR(buf_ptr, WMITLV_TAG_ARRAY_BYTE, probe_resp_len_aligned);
 	buf_ptr += WMI_TLV_HDR_SIZE;
 	qdf_mem_copy(buf_ptr, params->probe_resp_tmplt, params->probe_resp_len);