Bladeren bron

fw-api: CL 11973783 - update fw common interface files

Change-Id: Idabda8d7bed6d83ecd87caa36dc1becabb2d57a6
WMI: add framework for vendor-specific msg defs
CRs-Fixed: 2262693
spuligil 4 jaren geleden
bovenliggende
commit
4ffcf25669
3 gewijzigde bestanden met toevoegingen van 137 en 1 verwijderingen
  1. 6 0
      fw/wmi_tlv_defs.h
  2. 130 0
      fw/wmi_unified.h
  3. 1 1
      fw/wmi_version.h

+ 6 - 0
fw/wmi_tlv_defs.h

@@ -1117,6 +1117,12 @@ typedef enum {
     WMITLV_TAG_STRUC_wmi_ctrl_path_mem_stats_struct,
     WMITLV_TAG_STRUC_wmi_twt_nudge_dialog_cmd_fixed_param,
     WMITLV_TAG_STRUC_wmi_twt_nudge_dialog_complete_event_fixed_param,
+    WMITLV_TAG_STRUC_wmi_pdev_vendor_event_fixed_param,
+    WMITLV_TAG_STRUC_wmi_pdev_vendor_cmd_fixed_param,
+    WMITLV_TAG_STRUC_wmi_vdev_vendor_event_fixed_param,
+    WMITLV_TAG_STRUC_wmi_vdev_vendor_cmd_fixed_param,
+    WMITLV_TAG_STRUC_wmi_peer_vendor_event_fixed_param,
+    WMITLV_TAG_STRUC_wmi_peer_vendor_cmd_fixed_param,
 } WMITLV_TAG_ID;
 
 /*

+ 130 - 0
fw/wmi_unified.h

@@ -70,6 +70,11 @@ extern "C" {
 
 #include <wlan_defs.h>
 #include <wmi_services.h>
+/*
+ * Include the defs of vendor-specific messages (or possibly dummy defs
+ * if there are no actual vendor-specific message defs).
+ */
+#include <wmi_unified_vendor.h>
 
 #define ATH_MAC_LEN             6               /**< length of MAC in bytes */
 #define WMI_EVENT_STATUS_SUCCESS 0 /* Success return status to host */
@@ -260,6 +265,7 @@ typedef enum {
     WMI_GRP_AUDIO,          /* 0x43 */
     WMI_GRP_CFR_CAPTURE,    /* 0x44 */
     WMI_GRP_ATM,            /* 0x45 ATM (Air Time Management group) */
+    WMI_GRP_VENDOR,         /* 0x46 vendor specific group */
 } WMI_GRP_ID;
 
 #define WMI_CMD_GRP_START_ID(grp_id) (((grp_id) << 12) | 0x1)
@@ -1338,6 +1344,12 @@ typedef enum {
     WMI_ATF_GROUP_WMM_AC_CONFIG_REQUEST_CMDID,
     /** ATF Peer Extended Request command */
     WMI_PEER_ATF_EXT_REQUEST_CMDID,
+
+    /** Vendor Defined WMI commands **/
+    WMI_VENDOR_PDEV_CMDID = WMI_CMD_GRP_START_ID(WMI_GRP_VENDOR),
+    WMI_VENDOR_VDEV_CMDID,
+    WMI_VENDOR_PEER_CMDID,
+    /** Further vendor cmd IDs can be added below **/
 } WMI_CMD_ID;
 
 typedef enum {
@@ -2036,6 +2048,11 @@ typedef enum {
     WMI_AUDIO_AGGR_REPORT_STATISTICS_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_AUDIO),
     WMI_AUDIO_AGGR_SCHED_METHOD_EVENTID,
 
+    /** Vendor defined WMI events **/
+    WMI_VENDOR_PDEV_EVENTID = WMI_EVT_GRP_START_ID(WMI_GRP_VENDOR),
+    WMI_VENDOR_VDEV_EVENTID,
+    WMI_VENDOR_PEER_EVENTID,
+    /** Further vendor event IDs can be added below **/
 } WMI_EVT_ID;
 
 /* defines for OEM message sub-types */
@@ -32335,6 +32352,119 @@ typedef struct {
      */
 } wmi_pdev_twt_session_stats_event_fixed_param;
 
+typedef struct wmi_pdev_vendor_event
+{
+    /* type is WMI_PDEV_VENDOR_EVENTID */
+    A_UINT32 tlv_header;
+    /* pdev_id for identifying the MAC.  See macros starting with WMI_PDEV_ID_ for values. */
+    A_UINT32 pdev_id;
+    /* Any vendor specialization cases will need to add sub_type enum defs. */
+    A_UINT32 sub_type;
+    wmi_pdev_vendor_event_val evt;
+    /* NOTE:
+     * Future changes may increase the size of pdev_vendor_event.
+     * Consequently, no fields can be added here after pdev_vendor_event,
+     * because their offsets within wmi_pdev_vendor_event_fixed_param
+     * would change, causing backwards incompatibilities.
+     */
+} wmi_pdev_vendor_event_fixed_param;
+
+typedef struct wmi_vdev_vendor_event
+{
+    /* type is WMI_VDEV_VENDOR_EVENTID */
+    A_UINT32 tlv_header;
+    /* pdev_id for identifying the MAC.  See macros starting with WMI_PDEV_ID_ for values. */
+    A_UINT32 pdev_id;
+    /* unique id identifying the VDEV, generated by the caller */
+    A_UINT32 vdev_id;
+    /* Any vendor specialization cases will need to add sub_type enum defs. */
+    A_UINT32 sub_type;
+    wmi_vdev_vendor_event_val evt;
+    /* NOTE:
+     * Future changes may increase the size of vdev_vendor_event.
+     * Consequently, no fields can be added here after vdev_vendor_event,
+     * because their offsets within wmi_vdev_vendor_event_fixed_param
+     * would change, causing backwards incompatibilities.
+     */
+} wmi_vdev_vendor_event_fixed_param;
+
+typedef struct wmi_peer_vendor_event
+{
+    /* type is WMI_PEER_VENDOR_EVENTID */
+    A_UINT32 tlv_header;
+    /* pdev_id for identifying the MAC.  See macros starting with WMI_PDEV_ID_ for values. */
+    A_UINT32 pdev_id;
+    /* unique id identifying the VDEV, generated by the caller */
+    A_UINT32 vdev_id;
+    /* peer MAC address */
+    wmi_mac_addr peer_macaddr;
+    /* Any vendor specialization cases will need to add sub_type enum defs. */
+    A_UINT32 sub_type;
+    wmi_peer_vendor_event_val evt;
+    /* NOTE:
+     * Future changes may increase the size of peer_vendor_event.
+     * Consequently, no fields can be added here after peer_vendor_event,
+     * because their offsets within wmi_peer_vendor_event_fixed_param
+     * would change, causing backwards incompatibilities.
+     */
+} wmi_peer_vendor_event_fixed_param;
+
+typedef struct wmi_pdev_vendor_cmd
+{
+    /* type is WMI_PDEV_VENDOR_CMDID */
+    A_UINT32 tlv_header;
+    /* pdev_id for identifying the MAC.  See macros starting with WMI_PDEV_ID_ for values. */
+    A_UINT32 pdev_id;
+    /* Any vendor specialization cases will need to add sub_type enum defs. */
+    A_UINT32 sub_type;
+    wmi_pdev_vendor_cmd_val cmd;
+    /* NOTE:
+     * Future changes may increase the size of pdev_vendor_cmd.
+     * Consequently, no fields can be added here after pdev_vendor_cmd,
+     * because their offsets within wmi_pdev_vendor_cmd_fixed_param
+     * would change, causing backwards incompatibilities.
+     */
+} wmi_pdev_vendor_cmd_fixed_param;
+
+typedef struct wmi_vdev_vendor_cmd
+{
+    /* type is WMI_VDEV_VENDOR_CMDID */
+    A_UINT32 tlv_header;
+    /* pdev_id for identifying the MAC.  See macros starting with WMI_PDEV_ID_ for values. */
+    A_UINT32 pdev_id;
+    /* unique id identifying the VDEV, generated by the caller */
+    A_UINT32 vdev_id;
+    /* Any vendor specialization cases will need to add sub_type enum defs. */
+    A_UINT32 sub_type;
+    wmi_vdev_vendor_cmd_val cmd;
+    /* NOTE:
+     * Future changes may increase the size of vdev_vendor_cmd.
+     * Consequently, no fields can be added here after vdev_vendor_cmd,
+     * because their offsets within wmi_vdev_vendor_cmd_fixed_param
+     * would change, causing backwards incompatibilities.
+     */
+} wmi_vdev_vendor_cmd_fixed_param;
+
+typedef struct wmi_peer_vendor_cmd
+{
+    /* type is WMI_PEER_VENDOR_CMDID */
+    A_UINT32 tlv_header;
+    /* pdev_id for identifying the MAC.  See macros starting with WMI_PDEV_ID_ for values. */
+    A_UINT32 pdev_id;
+    /* unique id identifying the VDEV, generated by the caller */
+    A_UINT32 vdev_id;
+    /* peer MAC address */
+    wmi_mac_addr peer_macaddr;
+    /* Any vendor specialization cases will need to add sub_type enum defs. */
+    A_UINT32 sub_type;
+    wmi_peer_vendor_cmd_val cmd;
+    /* NOTE:
+     * Future changes may increase the size of peer_vendor_cmd.
+     * Consequently, no fields can be added here after peer_vendor_cmd,
+     * because their offsets within wmi_peer_vendor_cmd_fixed_param
+     * would change, causing backwards incompatibilities.
+     */
+} wmi_peer_vendor_cmd_fixed_param;
 
 
 /* ADD NEW DEFS HERE */

+ 1 - 1
fw/wmi_version.h

@@ -36,7 +36,7 @@
 #define __WMI_VER_MINOR_    0
 /** WMI revision number has to be incremented when there is a
  *  change that may or may not break compatibility. */
-#define __WMI_REVISION_ 912
+#define __WMI_REVISION_ 913
 
 /** The Version Namespace should not be normally changed. Only
  *  host and firmware of the same WMI namespace will work