فهرست منبع

qcacmn: Support to enable/disable SWBA events in beacon offload

When SWBA event is enabled, the FW will sent an event to the
host on every TBTT beacon.
Note that, unlike the legacy offload chips, this event is not
used by the host to send out the beacon frame itself.

Change-Id: Icf4440d79f7dbfb544f9d98c4de0e84bdb150459
CRs-Fixed: 2200805
Vinay Adella 7 سال پیش
والد
کامیت
4662d4e744
1فایلهای تغییر یافته به همراه19 افزوده شده و 5 حذف شده
  1. 19 5
      wmi_unified_tlv.c

+ 19 - 5
wmi_unified_tlv.c

@@ -17161,12 +17161,26 @@ QDF_STATUS send_bcn_offload_control_cmd_tlv(wmi_unified_t wmi_handle,
 			WMITLV_GET_STRUCT_TLVLEN
 			WMITLV_GET_STRUCT_TLVLEN
 			(wmi_bcn_offload_ctrl_cmd_fixed_param));
 			(wmi_bcn_offload_ctrl_cmd_fixed_param));
 	cmd->vdev_id = bcn_ctrl_param->vdev_id;
 	cmd->vdev_id = bcn_ctrl_param->vdev_id;
-	if (bcn_ctrl_param->bcn_tx_enable)
-		cmd->bcn_ctrl_op = WMI_BEACON_CTRL_TX_ENABLE;
-	else
+	switch (bcn_ctrl_param->bcn_ctrl_op) {
+	case BCN_OFFLD_CTRL_TX_DISABLE:
 		cmd->bcn_ctrl_op = WMI_BEACON_CTRL_TX_DISABLE;
 		cmd->bcn_ctrl_op = WMI_BEACON_CTRL_TX_DISABLE;
-
-
+		break;
+	case BCN_OFFLD_CTRL_TX_ENABLE:
+		cmd->bcn_ctrl_op = WMI_BEACON_CTRL_TX_ENABLE;
+		break;
+	case BCN_OFFLD_CTRL_SWBA_DISABLE:
+		cmd->bcn_ctrl_op = WMI_BEACON_CTRL_SWBA_EVENT_DISABLE;
+		break;
+	case BCN_OFFLD_CTRL_SWBA_ENABLE:
+		cmd->bcn_ctrl_op = WMI_BEACON_CTRL_SWBA_EVENT_ENABLE;
+		break;
+	default:
+		WMI_LOGE("WMI_BCN_OFFLOAD_CTRL_CMDID unknown CTRL Operation %d",
+			bcn_ctrl_param->bcn_ctrl_op);
+		wmi_buf_free(buf);
+		return QDF_STATUS_E_FAILURE;
+		break;
+	}
 	ret = wmi_unified_cmd_send(wmi_handle, buf, len,
 	ret = wmi_unified_cmd_send(wmi_handle, buf, len,
 			WMI_BCN_OFFLOAD_CTRL_CMDID);
 			WMI_BCN_OFFLOAD_CTRL_CMDID);