blob: b2b1dfa71eb4934f5782ea1de5ab26c527d370ed [file] [log] [blame]
/*
* Copyright (c) 2011-2015 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 defines WMI services bitmap and the set of WMI services .
* defines macrso to set/clear/get different service bits from the bitmap.
* the service bitmap is sent up to the host via WMI_READY command.
*
*/
#ifndef _WMI_SERVICES_H_
#define _WMI_SERVICES_H_
#ifdef __cplusplus
extern "C" {
#endif
typedef enum {
WMI_SERVICE_BEACON_OFFLOAD = 0, /* beacon offload */
WMI_SERVICE_SCAN_OFFLOAD, /* scan offload */
WMI_SERVICE_ROAM_SCAN_OFFLOAD, /* roam scan offload */
WMI_SERVICE_BCN_MISS_OFFLOAD, /* beacon miss offload */
WMI_SERVICE_STA_PWRSAVE, /* fake sleep + basic power save */
WMI_SERVICE_STA_ADVANCED_PWRSAVE, /* uapsd, pspoll, force sleep */
WMI_SERVICE_AP_UAPSD, /* uapsd on AP */
WMI_SERVICE_AP_DFS, /* DFS on AP */
WMI_SERVICE_11AC, /* supports 11ac */
WMI_SERVICE_BLOCKACK, /* Supports triggering ADDBA/DELBA from host */
WMI_SERVICE_PHYERR, /* PHY error */
WMI_SERVICE_BCN_FILTER, /* Beacon filter support */
WMI_SERVICE_RTT, /* RTT (round trip time) support */
WMI_SERVICE_WOW, /* WOW Support */
WMI_SERVICE_RATECTRL_CACHE, /* Rate-control caching */
WMI_SERVICE_IRAM_TIDS, /* TIDs in IRAM */
WMI_SERVICE_ARPNS_OFFLOAD, /* ARP NS Offload support for STA vdev*/
WMI_SERVICE_NLO, /* Network list offload service */
WMI_SERVICE_GTK_OFFLOAD, /* GTK offload */
WMI_SERVICE_SCAN_SCH, /* Scan Scheduler Service */
WMI_SERVICE_CSA_OFFLOAD, /* CSA offload service */
WMI_SERVICE_CHATTER, /* Chatter service */
WMI_SERVICE_COEX_FREQAVOID, /* FW report freq range to avoid */
WMI_SERVICE_PACKET_POWER_SAVE, /* packet power save service */
WMI_SERVICE_FORCE_FW_HANG, /* Service to test the firmware recovery mechanism */
WMI_SERVICE_GPIO, /* GPIO service */
WMI_SERVICE_STA_DTIM_PS_MODULATED_DTIM, /* Modulated DTIM support */
WMI_STA_UAPSD_BASIC_AUTO_TRIG, /* Basic version of station UAPSD AC Trigger Generation Method with
* variable tigger periods (service, delay, and suspend intervals) */
WMI_STA_UAPSD_VAR_AUTO_TRIG, /* Station UAPSD AC Trigger Generation Method with variable
* trigger periods (service, delay, and suspend intervals) */
WMI_SERVICE_STA_KEEP_ALIVE, /* Serivce to support the STA KEEP ALIVE mechanism */
WMI_SERVICE_TX_ENCAP, /* Packet type for TX encapsulation */
WMI_SERVICE_AP_PS_DETECT_OUT_OF_SYNC, /* detect out-of-sync sleeping stations */
WMI_SERVICE_EARLY_RX, /* adaptive early-rx feature */
WMI_SERVICE_STA_SMPS, /* STA MIMO-PS */
WMI_SERVICE_FWTEST, /* Firmware test service */
WMI_SERVICE_STA_WMMAC, /* STA WMMAC */
WMI_SERVICE_TDLS, /* TDLS support */
WMI_SERVICE_BURST, /* SIFS spaced burst support */
WMI_SERVICE_MCC_BCN_INTERVAL_CHANGE, /* Dynamic beaocn interval change for SAP/P2p GO in MCC scenario */
WMI_SERVICE_ADAPTIVE_OCS, /* Service to support adaptive off-channel scheduler */
WMI_SERVICE_BA_SSN_SUPPORT, /* target will provide Sequence number for the peer/tid combo */
WMI_SERVICE_FILTER_IPSEC_NATKEEPALIVE,
WMI_SERVICE_WLAN_HB, /* wlan HB service */
WMI_SERVICE_LTE_ANT_SHARE_SUPPORT, /* support LTE/WLAN antenna sharing */
WMI_SERVICE_BATCH_SCAN, /*Service to support batch scan */
WMI_SERVICE_QPOWER, /* QPower service */
WMI_SERVICE_PLMREQ,
WMI_SERVICE_THERMAL_MGMT,
WMI_SERVICE_RMC, /* RMC support */
WMI_SERVICE_MHF_OFFLOAD, /* multi-hop forwarding offload */
WMI_SERVICE_COEX_SAR, /* target support SAR tx limit from WMI_PDEV_PARAM_TXPOWER_LIMITxG */
WMI_SERVICE_BCN_TXRATE_OVERRIDE, /* Will support the bcn/prb rsp rate override */
WMI_SERVICE_NAN, /* Neighbor Awareness Network */
WMI_SERVICE_L1SS_STAT, /* L1SS statistics counter report */
WMI_SERVICE_ESTIMATE_LINKSPEED, /* Linkspeed Estimation per peer */
WMI_SERVICE_OBSS_SCAN, /* Service to support OBSS scan */
WMI_SERVICE_TDLS_OFFCHAN, /* TDLS off channel support */
WMI_SERVICE_TDLS_UAPSD_BUFFER_STA, /* TDLS UAPSD Buffer STA support */
WMI_SERVICE_TDLS_UAPSD_SLEEP_STA, /* TDLS UAPSD Sleep STA support */
WMI_SERVICE_IBSS_PWRSAVE, /* IBSS power save support */
WMI_SERVICE_LPASS, /*Service to support LPASS */
WMI_SERVICE_EXTSCAN, /* Extended Scans */
WMI_SERVICE_D0WOW, /* D0-WOW Support */
WMI_SERVICE_HSOFFLOAD, /* Hotspot offload feature Support */
WMI_SERVICE_ROAM_HO_OFFLOAD, /* roam handover offload */
WMI_SERVICE_RX_FULL_REORDER, /* target-based Rx full reorder */
WMI_SERVICE_DHCP_OFFLOAD, /* DHCP offload support */
WMI_SERVICE_STA_RX_IPA_OFFLOAD_SUPPORT, /* STA RX DATA offload to IPA support */
WMI_SERVICE_MDNS_OFFLOAD, /* mDNS responder offload support */
WMI_SERVICE_SAP_AUTH_OFFLOAD, /* softap auth offload */
WMI_SERVICE_DUAL_BAND_SIMULTANEOUS_SUPPORT, /* Dual Band Simultaneous support */
WMI_SERVICE_OCB, /* OCB mode support */
WMI_SERVICE_AP_ARPNS_OFFLOAD, /* arp offload support for ap mode vdev */
WMI_SERVICE_PER_BAND_CHAINMASK_SUPPORT, /* Per band chainmask support */
WMI_SERVICE_PACKET_FILTER_OFFLOAD, /* Per vdev packet filters */
WMI_SERVICE_MGMT_TX_HTT, /* Mgmt Tx via HTT interface */
WMI_SERVICE_MGMT_TX_WMI, /* Mgmt Tx via WMI interface */
WMI_SERVICE_EXT_MSG, /* WMI_SERVICE_READY_EXT msg follows */
WMI_SERVICE_MAWC, /* Motion Aided WiFi Connectivity (MAWC)*/
/* target will send ASSOC_CONF after ASSOC_CMD is processed */
WMI_SERVICE_PEER_ASSOC_CONF,
/* enhanced green ap support */
WMI_SERVICE_EGAP,
/* FW supports 11W PMF Offload for STA */
WMI_SERVICE_STA_PMF_OFFLOAD,
WMI_MAX_SERVICE = 128 /* max service */
} WMI_SERVICE;
#define WMI_SERVICE_BM_SIZE ((WMI_MAX_SERVICE + sizeof(A_UINT32)- 1)/sizeof(A_UINT32))
/*
* depreciated the name WMI_SERVICE_ROAM_OFFLOAD, but here to help compiling
* with old host driver
*/
#define WMI_SERVICE_ROAM_OFFLOAD WMI_SERVICE_ROAM_SCAN_OFFLOAD
/*
* turn on the WMI service bit corresponding to the WMI service.
*/
#define WMI_SERVICE_ENABLE(pwmi_svc_bmap,svc_id) \
( (pwmi_svc_bmap)[(svc_id)/(sizeof(A_UINT32))] |= \
(1 << ((svc_id)%(sizeof(A_UINT32)))) )
#define WMI_SERVICE_DISABLE(pwmi_svc_bmap,svc_id) \
( (pwmi_svc_bmap)[(svc_id)/(sizeof(A_UINT32))] &= \
( ~(1 << ((svc_id)%(sizeof(A_UINT32)))) ) )
#define WMI_SERVICE_IS_ENABLED(pwmi_svc_bmap,svc_id) \
( ((pwmi_svc_bmap)[(svc_id)/(sizeof(A_UINT32))] & \
(1 << ((svc_id)%(sizeof(A_UINT32)))) ) != 0)
#ifdef __cplusplus
}
#endif
#endif /*_WMI_SERVICES_H_*/