
One time copy of wmi files from Perforce to GIT corresponding to CLs CL 2715419, CL 2716671, CL 2719972, CL 2723748, CL 2724196, CL 2730209, CL 2731156, CL 2733238, CL 2747653, CL 2752788, CL 2755482 Change-Id: I223cd575020a79fe789eacb61f33d6de320cefb8 CRs-Fixed: 1107600
199 lines
6.2 KiB
C
199 lines
6.2 KiB
C
/*
|
|
* Copyright (c) 2010-2016 The Linux Foundation. All rights reserved.
|
|
*
|
|
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
|
|
*
|
|
*
|
|
* Permission to use, copy, modify, and/or distribute this software for
|
|
* any purpose with or without fee is hereby granted, provided that the
|
|
* above copyright notice and this permission notice appear in all
|
|
* copies.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
|
|
* WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
|
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
|
|
* AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
|
|
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
|
|
* PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
|
|
* TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
* PERFORMANCE OF THIS SOFTWARE.
|
|
*/
|
|
|
|
/*
|
|
* This file was originally distributed by Qualcomm Atheros, Inc.
|
|
* under proprietary terms before Copyright ownership was assigned
|
|
* to the Linux Foundation.
|
|
*/
|
|
|
|
/*
|
|
* This file contains the definitions of the WMI protocol specified in the
|
|
* Wireless Module Interface (WMI). It includes definitions of all the
|
|
* commands and events. Commands are messages from the host to the WM.
|
|
* Events and Replies are messages from the WM to the host.
|
|
*
|
|
* Ownership of correctness in regards to commands
|
|
* belongs to the host driver and the WMI is not required to validate
|
|
* parameters for value, proper range, or any other checking.
|
|
*
|
|
*/
|
|
|
|
#ifndef _WMI_H_
|
|
#define _WMI_H_
|
|
|
|
#include "wlan_defs.h"
|
|
#include "wmix.h"
|
|
#include "wmi_unified.h"
|
|
#include "wmi_tlv_helper.h"
|
|
#include "wmi_tlv_defs.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
|
|
#define HTC_PROTOCOL_VERSION 0x0002
|
|
|
|
#define WMI_PROTOCOL_VERSION 0x0002
|
|
|
|
#define WMI_MODE_MAX 8
|
|
#define WMI_MAX_RATE_MASK 6
|
|
|
|
|
|
PREPACK struct host_app_area_s {
|
|
A_UINT32 wmi_protocol_ver;
|
|
} POSTPACK;
|
|
|
|
|
|
#undef MS
|
|
#define MS(_v, _f) (((_v) & _f##_MASK) >> _f##_LSB)
|
|
#undef SM
|
|
#define SM(_v, _f) (((_v) << _f##_LSB) & _f##_MASK)
|
|
#undef WO
|
|
#define WO(_f) ((_f##_OFFSET) >> 2)
|
|
|
|
#undef GET_FIELD
|
|
#define GET_FIELD(_addr, _f) MS(*((A_UINT32 *)(_addr) + WO(_f)), _f)
|
|
#undef SET_FIELD
|
|
#define SET_FIELD(_addr, _f, _val) \
|
|
(*((A_UINT32 *)(_addr) + WO(_f)) = \
|
|
(*((A_UINT32 *)(_addr) + WO(_f)) & ~_f##_MASK) | SM(_val, _f))
|
|
|
|
#define WMI_GET_FIELD(_msg_buf, _msg_type, _f) \
|
|
GET_FIELD(_msg_buf, _msg_type ## _ ## _f)
|
|
|
|
#define WMI_SET_FIELD(_msg_buf, _msg_type, _f, _val) \
|
|
SET_FIELD(_msg_buf, _msg_type ## _ ## _f, _val)
|
|
|
|
#define WMI_EP_APASS WMI_EP_APSS /* TYPO: leave incorrect name as an alias for the correct name */
|
|
#define WMI_EP_APSS 0x0 /* WLAN driver running on apps processor sub-system */
|
|
#define WMI_EP_LPASS 0x1
|
|
#define WMI_EP_SENSOR 0x2
|
|
#define WMI_EP_NANOHUB 0x3 /* WLAN driver running on NANO Hub */
|
|
#define WMI_EP_MODEM 0x4
|
|
#define WMI_EP_LOCATION 0x5
|
|
|
|
/*
|
|
* Control Path
|
|
*/
|
|
typedef PREPACK struct {
|
|
A_UINT32 commandId : 24,
|
|
reserved : 2, /* used for WMI endpoint ID */
|
|
plt_priv : 6; /* platform private */
|
|
} POSTPACK WMI_CMD_HDR; /* used for commands and events */
|
|
|
|
#define WMI_CMD_HDR_COMMANDID_LSB 0
|
|
#define WMI_CMD_HDR_COMMANDID_MASK 0x00ffffff
|
|
#define WMI_CMD_HDR_COMMANDID_OFFSET 0x00000000
|
|
#define WMI_CMD_HDR_WMI_ENDPOINTID_MASK 0x03000000
|
|
#define WMI_CMD_HDR_WMI_ENDPOINTID_OFFSET 24
|
|
#define WMI_CMD_HDR_PLT_PRIV_LSB 24
|
|
#define WMI_CMD_HDR_PLT_PRIV_MASK 0xff000000
|
|
#define WMI_CMD_HDR_PLT_PRIV_OFFSET 0x00000000
|
|
|
|
/*
|
|
* List of Commnands
|
|
*/
|
|
typedef enum {
|
|
WMI_EXTENSION_CMDID, //used in wmi_svc.c /* Non-wireless extensions */
|
|
WMI_IGNORE_CMDID, //used in wlan_wmi.c
|
|
} WMI_COMMAND_ID;
|
|
|
|
|
|
typedef enum {
|
|
NONE_CRYPT = 0x01,
|
|
WEP_CRYPT = 0x02,
|
|
TKIP_CRYPT = 0x04,
|
|
AES_CRYPT = 0x08,
|
|
#ifdef WAPI_ENABLE
|
|
WAPI_CRYPT = 0x10,
|
|
#endif /*WAPI_ENABLE*/
|
|
} CRYPTO_TYPE;
|
|
|
|
#define WMI_MAX_SSID_LEN 32
|
|
|
|
/*
|
|
* WMI_SET_PMK_CMDID
|
|
*/
|
|
#define WMI_PMK_LEN 32
|
|
|
|
|
|
/*
|
|
* WMI_ADD_CIPHER_KEY_CMDID
|
|
*/
|
|
typedef enum {
|
|
PAIRWISE_USAGE = 0x00,
|
|
GROUP_USAGE = 0x01,
|
|
TX_USAGE = 0x02, /* default Tx Key - Static WEP only */
|
|
} KEY_USAGE;
|
|
/*
|
|
* List of Events (target to host)
|
|
*/
|
|
typedef enum {
|
|
WMI_EXTENSION_EVENTID //wmi_profhook.c and umac_wmi_events.c
|
|
} WMI_EVENT_ID;
|
|
|
|
typedef enum {
|
|
WMI_11A_CAPABILITY = 1,
|
|
WMI_11G_CAPABILITY = 2,
|
|
WMI_11AG_CAPABILITY = 3,
|
|
WMI_11NA_CAPABILITY = 4,
|
|
WMI_11NG_CAPABILITY = 5,
|
|
WMI_11NAG_CAPABILITY = 6,
|
|
WMI_11AC_CAPABILITY = 7,
|
|
WMI_11AX_CAPABILITY = 8,
|
|
// END CAPABILITY
|
|
WMI_11N_CAPABILITY_OFFSET = (WMI_11NA_CAPABILITY - WMI_11A_CAPABILITY),
|
|
} WMI_PHY_CAPABILITY;
|
|
|
|
|
|
/* Deprectated, need clean up */
|
|
#define WMI_MAX_RX_META_SZ (12)
|
|
|
|
typedef PREPACK struct {
|
|
A_INT8 rssi;
|
|
A_UINT8 info; /* usage of 'info' field(8-bit):
|
|
* b1:b0 - WMI_MSG_TYPE
|
|
* b4:b3:b2 - UP(tid)
|
|
* b5 - Used in AP mode. More-data in tx dir, PS in rx.
|
|
* b7:b6 - Dot3 header(0),
|
|
* Dot11 Header(1),
|
|
* ACL data(2)
|
|
*/
|
|
|
|
A_UINT16 info2; /* usage of 'info2' field(16-bit):
|
|
* b11:b0 - seq_no
|
|
* b12 - A-MSDU?
|
|
* b15:b13 - META_DATA_VERSION 0 - 7
|
|
*/
|
|
A_UINT16 info3; /* b3:b2:b1:b0 - device id
|
|
* b4 - Used in AP mode. uAPSD trigger in rx, EOSP in tx
|
|
* b7:b5 - unused?
|
|
* b15:b8 - pad before data start(irrespective of meta version)
|
|
*/
|
|
} POSTPACK WMI_DATA_HDR;
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* _WMI_H_ */
|