From 47a697803cda893632303fb526b4b43d08f5727f Mon Sep 17 00:00:00 2001
From: Gokul Sivakumar <gokulkumar.sivakumar@infineon.com>
Date: Fri, 19 May 2023 00:29:09 -0500
Subject: [PATCH 169/301] brcmfmac: Update IFX NL80211 Vendor source and header
 files with latest info
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Fill some of the reserved Vendor subcmd IDs with the respective subcmd name
for easier maintenance of the Vendor subcmd & attribute list. And remove
the unused Firmware specific MACRO definitions.

Update the Description of the enum members with detailed information, also
update the Copyright year in vendor_ifx.{c/h} files from 2022 till 2023.

Include the net/cfg80211.h kernel header file in vendr_ifx.h to include
the definition of struct wiphy, struct wireless_dev and avoid the following
build warnings for each of the Vendor subcmd handler function.

vendor_ifx.h:634:16: warning: ‘struct wireless_dev’ declared inside
parameter list will not be visible outside of this definition or declaration
  634 |         struct wireless_dev *wdev,
      |                ^~~~~~~~~~~~
vendor_ifx.h:633:44: warning: ‘struct wiphy’ declared inside parameter list
will not be visible outside of this definition or declaration
  633 | int ifx_cfg80211_vndr_cmds_bsscolor(struct wiphy *wiphy,
      |                                            ^~~~~

Signed-off-by: Gokul Sivakumar <gokulkumar.sivakumar@infineon.com>
---
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/vendor.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/vendor.c
index 60802a96a..c239c64dd 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/vendor.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/vendor.c
@@ -257,14 +257,14 @@ const struct wiphy_vendor_command brcmf_vendor_cmds[] = {
 			   brcmf_cfg80211_vndr_cmds_frameburst)
 	},
 	{
-		IFX_SUBCMD(MUEDCA_OPT_ENABLE,
+		IFX_SUBCMD(MUEDCA_OPT,
 			   (WIPHY_VENDOR_CMD_NEED_WDEV |
 			    WIPHY_VENDOR_CMD_NEED_NETDEV),
 			   VENDOR_CMD_RAW_DATA,
 			   ifx_cfg80211_vndr_cmds_muedca_opt)
 	},
 	{
-		IFX_SUBCMD(LDPC_CAP,
+		IFX_SUBCMD(LDPC,
 			   (WIPHY_VENDOR_CMD_NEED_WDEV |
 			    WIPHY_VENDOR_CMD_NEED_NETDEV),
 			   VENDOR_CMD_RAW_DATA,
@@ -286,7 +286,7 @@ const struct wiphy_vendor_command brcmf_vendor_cmds[] = {
 		.maxattr = IFX_VENDOR_ATTR_TWT_MAX
 	},
 	{
-		IFX_SUBCMD(OCE_ENABLE,
+		IFX_SUBCMD(OCE,
 			   (WIPHY_VENDOR_CMD_NEED_WDEV |
 				WIPHY_VENDOR_CMD_NEED_NETDEV),
 			VENDOR_CMD_RAW_DATA,
@@ -300,7 +300,7 @@ const struct wiphy_vendor_command brcmf_vendor_cmds[] = {
 			ifx_cfg80211_vndr_cmds_bsscolor)
 	},
 	{
-		IFX_SUBCMD(RANDMAC,
+		IFX_SUBCMD(RAND_MAC,
 			   (WIPHY_VENDOR_CMD_NEED_WDEV |
 				WIPHY_VENDOR_CMD_NEED_NETDEV),
 			VENDOR_CMD_RAW_DATA,
diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/vendor_ifx.h b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/vendor_ifx.h
index 0fdfd46a2..ddfa2025f 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/vendor_ifx.h
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/vendor_ifx.h
@@ -35,6 +35,7 @@
 #define IFX_VENDOR_H
 
 #include <net/netlink.h>
+#include <net/cfg80211.h>
 
 /* This file is a registry of identifier assignments from the Infineon
  * OUI 00:03:19 for purposes other than MAC address assignment. New identifiers
@@ -43,13 +44,6 @@
  */
 #define OUI_IFX		0x000319
 
-/* enum ifx_nl80211_vendor_subcmds - IFX nl80211 vendor command identifiers
- *
- * @IFX_VENDOR_SCMD_UNSPEC: Reserved value 0
- *
- * @IFX_VENDOR_SCMD_MAX: This acts as a the tail of cmds list.
- *      Make sure it located at the end of the list.
- */
 #define SCMD(_CMD)	IFX_VENDOR_SCMD_##_CMD
 #define IFX_SUBCMD(_CMD, _FLAGS, _POLICY, _FN) \
 	{	\
@@ -67,44 +61,58 @@ struct bcm_iov_buf {
 	u16	data[1];
 };
 
+/*
+ * enum ifx_nl80211_vendor_subcmds - IFX nl80211 vendor command identifiers
+ *
+ * @IFX_VENDOR_SCMD_UNSPEC: Reserved value 0
+ *
+ * @IFX_VENDOR_SCMD_DCMD: Handle the Dongle commands triggered from the userspace utilities.
+ *	These commands will be passed to the Dongle for processing.
+ *
+ * @IFX_VENDOR_SCMD_FRAMEBURST: Control the Frameburst feature. This feature allows more
+ *	efficient use of the airtime between the transmitting and receiving WLAN devices.
+ *
+ * @IFX_VENDOR_SCMD_ACS: Configure the Automatic Channel Selection (ACS) feature.
+ *
+ * @IFX_VENDOR_SCMD_SET_MAC_P2P_DEV: Set MAC address for a P2P Discovery device.
+ *	Uses Vendor attribute IFX_VENDOR_ATTR_MAC_ADDR to pass the MAC address.
+ *
+ * @IFX_VENDOR_SCMD_MUEDCA_OPT: Configure Multi User Enhanced Distrubuted Channel Access (MU-EDCA).
+ *
+ * @IFX_VENDOR_SCMD_LDPC: Enable support for handling Low Density Parity Check (LDPC) Coding
+ *	in received payload.
+ *
+ * @IFX_VENDOR_SCMD_AMSDU: Control AMSDU aggregation for both TX & RX on all the TID queues.
+ *
+ * @IFX_VENDOR_SCMD_TWT: Configure Target Wake Time (TWT) Session with the needed parameters.
+ *	Uses Vendor attributes defined in the enum ifx_vendor_attr_twt.
+ *
+ * @IFX_VENDOR_SCMD_OCE: Configure the Optimized Connectivity Experience (OCE) functionality
+ *	related parameters.
+ *
+ * @IFX_VENDOR_SCMD_BSSCOLOR: Set BSS Color (1-63) for AP Mode operation in HE.
+ *
+ * @IFX_VENDOR_SCMD_RAND_MAC: Configure the Random MAC module.
+ *
+ * @IFX_VENDOR_SCMD_MBO: Configure Multi Band Operation (MBO) functionality related parameters.
+ *
+ * @IFX_VENDOR_SCMD_MPC: Control the Minimum Power Consumption (MPC) feature.
+ *	This is a STA-only power saving feature and not related to 802.11 power save.
+ *
+ * @IFX_VENDOR_SCMD_GIANTRX: Allow handling RX MGMT Packts of size 1840 bytes.
+ *
+ * @IFX_VENDOR_SCMD_PFN_CONFIG: Send the Preferred Network (PFN) information to the Dongle
+ *
+ * @IFX_VENDOR_SCMD_PFN_STATUS: Fetch the Preferred Network (PFN) information from the Dongle
+ *	through the driver.
+ *
+ * @IFX_VENDOR_SCMD_WNM: Configure the Wireless Network Management (WNM) 802.11v functionaltiy
+ *	related parameters.
+ *
+ * @IFX_VENDOR_SCMD_MAX: This acts as a the tail of cmds list.
+ *      Make sure it located at the end of the list.
+ */
 enum ifx_nl80211_vendor_subcmds {
-	/* TODO: IFX Vendor subcmd enum IDs between 2-15 are reserved
-	 * to be filled later with BRCM Vendor subcmds that are
-	 * already used by IFX.
-	 *
-	 * @IFX_VENDOR_SCMD_DCMD: equivilent to SCMD_PRIV_STR in DHD.
-	 *
-	 * @IFX_VENDOR_SCMD_FRAMEBURST: align ID to DHD.
-	 *
-	 * @IFX_VENDOR_SCMD_MUEDCA_OPT_ENABLE: Vendor command to enable/disable HE MU-EDCA opt.
-	 *
-	 * @IFX_VENDOR_SCMD_LDPC_CAP: Vendor command enable/disable LDPC Capability.
-	 *
-	 * @IFX_VENDOR_SCMD_AMSDU: Vendor command to enable/disable AMSDU on all the TID queues.
-	 *
-	 * @IFX_VENDOR_SCMD_TWT: Vendor subcommand to configure TWT.
-	 *	Uses attributes defined in enum ifx_vendor_attr_twt.
-	 *
-	 * @IFX_VENDOR_SCMD_OCE_ENABLE: Vendor command to enable/disable OCE Capability.
-	 *
-	 * @IFX_VENDOR_SCMD_BSS_COLOR: Vendor command to get BSSCOLOR value.
-	 *
-	 * @IFX_VENDOR_SCMD_RANDMAC: Vendor command to enable/disable RANDMAC Capability.
-	 *
-	 * @IFX_VENDOR_SCMD_MBO: Vendor subcommand to configure MBO.
-	 *      Uses attributes defined in enum ifx_vendor_attr_mbo.
-	 *
-	 * @IFX_VENDOR_SCMD_MPC: Vendor command to set/get MPC setting.
-	 *
-	 * @IFX_VENDOR_SCMD_GIANTRX: Vendor command to set/get GIANTRX setting.
-	 *
-	 * @IFX_VENDOR_SCMD_WNM: Vendor command to set/get WNM setting.
-	 *
-	 * @IFX_VENDOR_SCMD_MAX: This acts as a the tail of cmds list.
-	 *      Make sure it located at the end of the list.
-	 */
-	/* Reserved 2-5 */
-
 	SCMD(UNSPEC)		= 0,
 	SCMD(DCMD)		= 1,
 	SCMD(RSV2)		= 2,
@@ -114,37 +122,47 @@ enum ifx_nl80211_vendor_subcmds {
 	SCMD(FRAMEBURST)	= 6,
 	SCMD(RSV7)		= 7,
 	SCMD(RSV8)		= 8,
-	SCMD(RSV9)		= 9,
-	SCMD(RSV10)		= 10,
-	SCMD(MUEDCA_OPT_ENABLE)		= 11,
-	SCMD(LDPC_CAP)		= 12,
+	SCMD(ACS)		= 9,
+	SCMD(SET_MAC_P2P_DEV)	= 10,
+	SCMD(MUEDCA_OPT)	= 11,
+	SCMD(LDPC)		= 12,
 	SCMD(AMSDU)		= 13,
 	SCMD(TWT)		= 14,
-	SCMD(OCE_ENABLE)	= 15,
+	SCMD(OCE)		= 15,
 	SCMD(BSSCOLOR)		= 16,
-	SCMD(RANDMAC)		= 17,
+	SCMD(RAND_MAC)		= 17,
 	SCMD(MBO)		= 18,
 	SCMD(MPC)		= 19,
 	SCMD(GIANTRX)		= 20,
+	SCMD(PFN_CONFIG)	= 21,
+	SCMD(PFN_STATUS)	= 22,
+	SCMD(RSV22)		= 23,
+	SCMD(RSV24)		= 24,
 	SCMD(WNM)		= 25,
 	SCMD(MAX)		= 26
 };
 
-/* enum ifx_vendor_attr - IFX nl80211 vendor attributes
+/*
+ * enum ifx_vendor_attr - IFX nl80211 vendor attributes
  *
  * @IFX_VENDOR_ATTR_UNSPEC: Reserved value 0
  *
+ * @IFX_VENDOR_ATTR_LEN: Dongle Command Message Body Length.
+ *
+ * @IFX_VENDOR_ATTR_DATA: Dongle Commend Message Body.
+ *
+ * @IFX_VENDOR_ATTR_MAC_ADDR: Medium Access Control (MAC) address.
+ *
  * @IFX_VENDOR_ATTR_MAX: This acts as a the tail of attrs list.
  *      Make sure it located at the end of the list.
  */
 enum ifx_vendor_attr {
-	/* TODO: IFX Vendor attr enum IDs between 0-10 are reserved
-	 * to be filled later with BRCM Vendor attrs that are
-	 * already used by IFX.
-	 */
 	IFX_VENDOR_ATTR_UNSPEC		= 0,
-	/* Reserved 1-10 */
-	IFX_VENDOR_ATTR_MAX		= 11
+	IFX_VENDOR_ATTR_LEN		= 1,
+	IFX_VENDOR_ATTR_DATA		= 2,
+	IFX_VENDOR_ATTR_MAC_ADDR	= 3,
+	/* Reserved 4-10 */
+	IFX_VENDOR_ATTR_MAX
 };
 
 #define IFX_MBO_IOV_MAJOR_VER 1
@@ -238,43 +256,8 @@ enum {
 	IFX_MBO_XTLV_CELLULAR_DATA_PREF = 0xe
 };
 
-/* TWT define/enum/struct
- */
-/* TWT cmd version*/
-#define IFX_TWT_SETUP_VER	0u
-#define IFX_TWT_TEARDOWN_VER	0u
-/* Flow flags */
-#define IFX_TWT_FLOW_FLAG_BROADCAST	BIT(0)
-#define IFX_TWT_FLOW_FLAG_IMPLICIT	BIT(1)
-#define IFX_TWT_FLOW_FLAG_UNANNOUNCED	BIT(2)
-#define IFX_TWT_FLOW_FLAG_TRIGGER	BIT(3)
-#define IFX_TWT_FLOW_FLAG_WAKE_TBTT_NEGO BIT(4)
-#define IFX_TWT_FLOW_FLAG_REQUEST	BIT(5)
-#define IFX_TWT_FLOW_FLAG_PROTECT	BIT(0)
-#define IFX_TWT_FLOW_FLAG_RESPONDER_PM BIT(6)
-#define IFX_TWT_FLOW_FLAG_UNSOLICITED	BIT(7)
-/* Flow id */
-#define IFX_TWT_FLOW_ID_FID	0x07u	/* flow id */
-#define IFX_TWT_FLOW_ID_GID_MASK	0x70u	/* group id - broadcast TWT only */
-#define IFX_TWT_FLOW_ID_GID_SHIFT 4u
-#define IFX_TWT_INV_BCAST_ID	0xFFu
-#define IFX_TWT_INV_FLOW_ID	0xFFu
-/* auto flow_id */
-#define IFX_TWT_SETUP_FLOW_ID_AUTO	0xFFu
-/* auto broadcast ID */
-#define IFX_TWT_SETUP_BCAST_ID_AUTO	0xFFu
-/* Infinite persistence for broadcast schedule */
-#define IFX_TWT_INFINITE_BTWT_PERSIST	0xFFFFFFFFu
-/* Wake type */
-/* TODO: not yet finalized */
-/* The time specified in wake_time_h/l is the BSS TSF time. */
-#define IFX_TWT_TIME_TYPE_BSS	0u
-/* The time specified in wake_time_h/l is an offset of the TSF time when the iovar is processed. */
-#define IFX_TWT_TIME_TYPE_OFFSET 1u
-/* The target wake time is chosen internally by the FW */
-#define IFX_TWT_TIME_TYPE_AUTO 2u
-
-/* enum ifx_vendor_attr_twt - Attributes for the TWT vendor command
+/*
+ * enum ifx_vendor_attr_twt - Attributes for the TWT vendor command
  *
  * @IFX_VENDOR_ATTR_TWT_UNSPEC: Reserved value 0
  *
@@ -295,13 +278,14 @@ enum ifx_vendor_attr_twt {
 	IFX_VENDOR_ATTR_TWT_MAX
 };
 
-/* enum ifx_twt_oper - TWT operation to be specified using the vendor
+/*
+ * enum ifx_twt_oper - TWT operation to be specified using the vendor
  * attribute IFX_VENDOR_ATTR_TWT_OPER
  *
  * @IFX_TWT_OPER_UNSPEC: Reserved value 0
  *
  * @IFX_TWT_OPER_SETUP: Setup a TWT session. Required parameters are
- *	obtained through the nested attrs under IFX_VENDOR_ATTR_TWT_PARAMS.
+ *	obtained through the nested attrs under %IFX_VENDOR_ATTR_TWT_PARAMS.
  *
  * @IFX_TWT_OPER_TEARDOWN: Teardown the already negotiated TWT session.
  *	Required parameters are obtained through the nested attrs under
@@ -317,7 +301,8 @@ enum ifx_twt_oper {
 	IFX_TWT_OPER_MAX
 };
 
-/* enum ifx_vendor_attr_twt_param - TWT parameters
+/*
+ * enum ifx_vendor_attr_twt_param - TWT parameters
  *
  * @IFX_VENDOR_ATTR_TWT_PARAM_UNSPEC: Reserved value 0
  *
@@ -348,15 +333,19 @@ enum ifx_twt_oper {
  * @IFX_VENDOR_ATTR_TWT_PARAM_DIALOG_TOKEN: Dialog Token used by the TWT Requesting STA to
  *	identify the TWT Setup request/response transaction.
  *
- * @IFX_VENDOR_ATTR_TWT_PARAM_WAKE_TIME: Target Wake Time.
+ * @IFX_VENDOR_ATTR_TWT_PARAM_WAKE_TIME: Target Wake Time TSF at which the STA has to wake up.
  *
- * @IFX_VENDOR_ATTR_TWT_PARAM_WAKE_TIME_OFFSET: Target Wake Time Offset.
+ * @IFX_VENDOR_ATTR_TWT_PARAM_WAKE_TIME_OFFSET: Target Wake Time TSF Offset from current TSF
+ *	in microseconds.
  *
  * @IFX_VENDOR_ATTR_TWT_PARAM_MIN_WAKE_DURATION: Nominal Minimum TWT Wake Duration.
+ *	Used along with %IFX_VENDOR_ATTR_TWT_PARAM_MIN_WAKE_DURATION_UNIT to derive Wake Duration.
  *
  * @IFX_VENDOR_ATTR_TWT_PARAM_WAKE_INTVL_EXPONENT: TWT Wake Interval Exponent.
+ *	Used along with %IFX_VENDOR_ATTR_TWT_PARAM_WAKE_INTVL_MANTISSA to derive Wake Interval.
  *
  * @IFX_VENDOR_ATTR_TWT_PARAM_WAKE_INTVL_MANTISSA: TWT Wake Interval Mantissa.
+ *	Used along with %IFX_VENDOR_ATTR_TWT_PARAM_WAKE_INTVL_EXPONENT to derive Wake Interval.
  *
  * @IFX_VENDOR_ATTR_TWT_PARAM_REQUESTOR: Specify this is a TWT Requesting / Responding STA.
  *
@@ -366,9 +355,10 @@ enum ifx_twt_oper {
  *
  * @IFX_VENDOR_ATTR_TWT_PARAM_FLOW_TYPE: Specify Un-Announced / Announced TWT session.
  *
- * @IFX_VENDOR_ATTR_TWT_PARAM_FLOW_ID: Flow ID of an iTWT session.
+ * @IFX_VENDOR_ATTR_TWT_PARAM_FLOW_ID: Flow ID is the unique identifier of an iTWT session.
  *
- * @IFX_VENDOR_ATTR_TWT_PARAM_BCAST_TWT_ID: Brocast TWT ID of a bTWT session.
+ * @IFX_VENDOR_ATTR_TWT_PARAM_BCAST_TWT_ID: Broadcast TWT ID is the unique identifier of a
+ *	bTWT session.
  *
  * @IFX_VENDOR_ATTR_TWT_PARAM_PROTECTION: Specifies whether Tx within SP is protected.
  *	Set to 1 to indicate that TXOPs within the TWT SPs shall be initiated
@@ -413,15 +403,79 @@ enum ifx_vendor_attr_twt_param {
 	IFX_VENDOR_ATTR_TWT_PARAM_MAX
 };
 
+/*
+ * enum ifx_twt_param_nego_type - TWT Session Negotiation Type Parameters
+ *
+ * @IFX_TWT_PARAM_NEGO_TYPE_ITWT: Individual TWT negotiation between TWT requesting STA
+ *	and TWT responding STA or individual TWT announcement by TWT Responder
+ *
+ * @IFX_TWT_PARAM_NEGO_TYPE_WAKE_TBTT: Wake TBTT and Wake interval negotiation between
+ *	TWT scheduled STA and TWT scheduling AP.
+ *
+ * @IFX_TWT_PARAM_NEGO_TYPE_BTWT_IE_BCN: Provide Broadcast TWT schedules to TWT scheduled
+ *	STAs by including the TWT element in broadcast Managemnet frames sent by TWT
+ *	scheduling AP.
+ *
+ * @IFX_TWT_PARAM_NEGO_TYPE_BTWT: Broadcast TWT negotiation between TWT requesting STA
+ *	and TWT responding STA. Manage Memberships in broadcast TWT schedules by including
+ *	the TWT element in individually addressed Management frames sent by either a TWT
+ *	scheduled STA or a TWT scheduling AP.
+ *
+ * @IFX_TWT_PARAM_NEGO_TYPE_MAX: This acts as a the tail of the list.
+ *      Make sure it located at the end of the list.
+ */
 enum ifx_twt_param_nego_type {
-	IFX_TWT_PARAM_NEGO_TYPE_INVALID			= -1,
-	IFX_TWT_PARAM_NEGO_TYPE_ITWT			= 0,
-	IFX_TWT_PARAM_NEGO_TYPE_WAKE_TBTT		= 1,
-	IFX_TWT_PARAM_NEGO_TYPE_BTWT_IE_BCN		= 2,
-	IFX_TWT_PARAM_NEGO_TYPE_BTWT			= 3,
-	IFX_TWT_PARAM_NEGO_TYPE_MAX			= 4
+	IFX_TWT_PARAM_NEGO_TYPE_INVALID		= -1,
+	IFX_TWT_PARAM_NEGO_TYPE_ITWT		= 0,
+	IFX_TWT_PARAM_NEGO_TYPE_WAKE_TBTT	= 1,
+	IFX_TWT_PARAM_NEGO_TYPE_BTWT_IE_BCN	= 2,
+	IFX_TWT_PARAM_NEGO_TYPE_BTWT		= 3,
+	IFX_TWT_PARAM_NEGO_TYPE_MAX		= 4
 };
 
+/*
+ * enum ifx_vendor_attr_twt_param - TWT Session setup command types
+ *
+ * @IFX_TWT_OPER_SETUP_CMD_TYPE_REQUEST: A TWT requesting or TWT scheduled STA
+ *	requests to join a TWT without specifying a target wake time. This type needs to
+ *	be used only by the TWT requesting STA.
+ *
+ * @IFX_TWT_OPER_SETUP_CMD_TYPE_SUGGEST: A TWT requesting or TWT scheduled STA requests to
+ *	join a TWT without specifying a target wake time. This type needs to be used only
+ *	by the TWT requesting STA.
+ *
+ * @IFX_TWT_OPER_SETUP_CMD_TYPE_DEMAND: A TWT requesting or TWT scheduled STA requests to
+ *	join a TWT and specifies a demanded set of TWT parameters. If the demanded set of
+ *	TWT parameters is not accommodated by the responding STA or TWT scheduling AP, then
+ *	the TWT requesting STA or TWT scheduled STA will reject the TWT setup. This type
+ *	needs to be used only by the TWT requesting STA.
+ *
+ * @IFX_TWT_OPER_SETUP_CMD_TYPE_GROUPING: The TWT responding STA suggests TWT group
+ *	parameters that are different from the suggested or demanded TWT parameters of the
+ *	TWT requesting STA. This type needs to be used only by the S1G TWT Responding STA in
+ *	case of ITWT Setup Negotiation.
+ *
+ * @IFX_TWT_OPER_SETUP_CMD_TYPE_ACCEPT: A TWT responding STA or TWT scheduling AP accepts
+ *	the TWT request with the TWT parameters (see NOTE) indicated in the TWT element
+ *	transmitted by the TWT requesting STA or TWT scheduled STA. This value is also used
+ *	in unsolicited TWT responses. This needs type needs to be used only by the TWT
+ *	responding STA.
+ *
+ * @IFX_TWT_OPER_SETUP_CMD_TYPE_ALTERNATE: A TWT responding STA or TWT scheduling AP suggests
+ *	TWT parameters that are different from those suggested by the TWT requesting STA or
+ *	TWT scheduled STA. This needs type needs to be used only by the TWT reponding STA.
+ *
+ * @IFX_TWT_OPER_SETUP_CMD_TYPE_DICTATE: A TWT responding STA or TWT scheduling AP indicates
+ *	TWT parameters that are different from those suggested by the TWT requesting STA or
+ *	TWT scheduled STA. This needs type needs to be used only by the TWT responding STA.
+ *
+ * @IFX_TWT_OPER_SETUP_CMD_TYPE_REJECT: A TWT responding STA or TWT scheduling AP rejects
+ *	setup, or a TWT scheduling AP terminates an existing broadcast TWT, or a TWT
+ *	scheduled STA terminates its membership in a broadcast TWT.
+ *
+ * @IFX_TWT_OPER_SETUP_CMD_TYPE_MAX: This acts as a the tail of the list.
+ *	Make sure it located at the end of the list.
+ */
 enum ifx_twt_oper_setup_cmd_type {
 	IFX_TWT_OPER_SETUP_CMD_TYPE_INVALID	= -1,
 	IFX_TWT_OPER_SETUP_CMD_TYPE_REQUEST	= 0,
