qcacmn: Implement interface to set WLM level

WLAN Latency module (WLM) is added by fw to gain latency
because of schedule out of service like power saving,
scanning, roaming etc. per the level set by framework.

Change-Id: I6b8775e5f492b6f287d60d39610a544114185a23
CRs-Fixed: 2152290
This commit is contained in:
Paul Zhang
2017-12-08 16:08:00 +08:00
committed by snandini
parent ebdb2daf68
commit d6d1635ec8
6 changed files with 138 additions and 0 deletions

View File

@@ -2910,6 +2910,45 @@ struct aggr_add_ts_param {
uint8_t sessionId;
};
/**
* struct wlm_latency_level_param - WLM parameters
* @wlm_latency_level: wlm latency level to set
* 0 - normal, 1 - moderate, 2 - low, 3 - ultralow
* @wlm_latency_flags: wlm latency flags to set
* |31 12| 11 | 10 |9 8|7 6|5 4|3 2| 1 | 0 |
* +------+------+------+------+------+------+------+-----+-----+
* | RSVD | SSLP | CSLP | RSVD | Roam | RSVD | DWLT | DFS | SUP |
* +------+-------------+-------------+-------------------------+
* | WAL | PS | Roam | Scan |
*
* bit 0: Avoid scan request from HLOS if setting
* bit 1: Skip DFS channel SCAN if setting
* bit 2-3: Define policy of dwell time/duration for each foreign channel
* (b2 b3)
* (0 0 ): Default scan dwell time
* (0 1 ): Reserve
* (1 0 ): Shrink off channel dwell time
* (1 1 ): Reserve
* bit 4-5: Reserve for scan
* bit 6-7: Define roaming policy
* (b6 b7)
* (0 0 ): Default roaming behavior, allow roaming in all scenarios
* (0 1 ): Disallow all roaming
* (1 0 ): Allow roaming when final bmissed
* (1 1 ): Reserve
* bit 8-9: Reserve for roaming
* bit 10: Disable css power collapse if setting
* bit 11: Disable sys sleep if setting
* bit 12-31: Reserve for future useage
* @vdev_id: vdev id
*/
struct wlm_latency_level_param {
uint16_t wlm_latency_level;
uint32_t wlm_latency_flags;
uint16_t vdev_id;
};
#define WMI_MAX_FILTER_TEST_DATA_LEN 8
#define WMI_MAX_NUM_MULTICAST_ADDRESS 240
#define WMI_MAX_NUM_FILTERS 20