Explorar o código

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 %!s(int64=7) %!d(string=hai) anos
pai
achega
4662d4e744
Modificáronse 1 ficheiros con 19 adicións e 5 borrados
  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
 			(wmi_bcn_offload_ctrl_cmd_fixed_param));
 	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;
-
-
+		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,
 			WMI_BCN_OFFLOAD_CTRL_CMDID);