qcacmn: Refactor the wmi code for PMO component adaption

Currently, Host maintain multiple data structure at different
layers for offload related features like arp/ns/gtk etc.
Instead of using many structure use single data structure across
all layers for offload related feature (arp/ns/gtk) which is now
exposed by PMO. Hence to include PMO header's in WMI, refactor the
WMI code for PMO component by carving out PMO specific functionality
separatley.

Change-Id: I8314d5ece49bf6972fbe706d635385ae22d11b2e
CRs-Fixed: 2004523
This commit is contained in:
Mukul Sharma
2017-02-25 01:50:47 +05:30
committed by qcabuildsw
parent e66c6bf550
commit ba196f56f4
4 changed files with 269 additions and 187 deletions

View File

@@ -75,16 +75,6 @@
#define WMI_ROAM_SCAN_PSK_SIZE 32
#endif
#define WMI_NOISE_FLOOR_DBM_DEFAULT (-96)
#define WMI_MAC_IPV6_ADDR_LEN 16
#define WMI_OFFLOAD_DISABLE 0
#define WMI_OFFLOAD_ENABLE 1
#ifdef WLAN_NS_OFFLOAD
/* support only one IPv6 offload */
#define WMI_MAC_NS_OFFLOAD_SIZE 1
/* Number of target IP V6 addresses for NS offload */
#define WMI_MAC_NUM_TARGET_IPV6_NS_OFFLOAD_NA 16
#define WMI_IPV6_ADDR_VALID 1
#endif /* WLAN_NS_OFFLOAD */
#define WMI_EXTSCAN_MAX_HOTLIST_SSIDS 8
#define WMI_ROAM_MAX_CHANNELS 80
#ifdef FEATURE_WLAN_EXTSCAN
@@ -3102,27 +3092,6 @@ struct periodic_tx_pattern {
uint8_t ucPattern[WMI_PERIODIC_TX_PTRN_MAX_SIZE];
};
#define WMI_GTK_OFFLOAD_KEK_BYTES 16
#define WMI_GTK_OFFLOAD_KCK_BYTES 16
#define WMI_GTK_OFFLOAD_ENABLE 0
#define WMI_GTK_OFFLOAD_DISABLE 1
/**
* struct gtk_offload_params - gtk offload parameters
* @ulFlags: optional flags
* @aKCK: Key confirmation key
* @aKEK: key encryption key
* @ullKeyReplayCounter: replay counter
* @bssid: bss id
*/
struct gtk_offload_params {
uint32_t ulFlags;
uint8_t aKCK[WMI_GTK_OFFLOAD_KCK_BYTES];
uint8_t aKEK[WMI_GTK_OFFLOAD_KEK_BYTES];
uint64_t ullKeyReplayCounter;
struct qdf_mac_addr bssid;
};
/**
* struct flashing_req_params - led flashing parameter
* @reqId: request id
@@ -3287,50 +3256,6 @@ struct wmi_dual_mac_config {
void *set_dual_mac_cb;
};
#ifdef WLAN_NS_OFFLOAD
/**
* struct ns_offload_req_params - ns offload request paramter
* @srcIPv6Addr: src ipv6 address
* @selfIPv6Addr: self ipv6 address
* @targetIPv6Addr: target ipv6 address
* @self_macaddr: self mac address
* @srcIPv6AddrValid: src ipv6 address valid flag
* @targetIPv6AddrValid: target ipv6 address valid flag
* @target_ipv6_addr_ac_type: target ipv6 address type
* @slotIdx: slot index
*/
struct ns_offload_req_params {
uint8_t srcIPv6Addr[WMI_MAC_IPV6_ADDR_LEN];
uint8_t selfIPv6Addr[WMI_MAC_NUM_TARGET_IPV6_NS_OFFLOAD_NA][WMI_MAC_IPV6_ADDR_LEN];
uint8_t targetIPv6Addr[WMI_MAC_NUM_TARGET_IPV6_NS_OFFLOAD_NA][WMI_MAC_IPV6_ADDR_LEN];
struct qdf_mac_addr self_macaddr;
uint8_t srcIPv6AddrValid;
uint8_t targetIPv6AddrValid[WMI_MAC_NUM_TARGET_IPV6_NS_OFFLOAD_NA];
uint8_t target_ipv6_addr_ac_type[WMI_MAC_NUM_TARGET_IPV6_NS_OFFLOAD_NA];
uint8_t slotIdx;
};
#endif /* WLAN_NS_OFFLOAD */
/**
* struct host_offload_req_param - arp offload parameter
* @offloadType: offload type
* @enableOrDisable: enable or disable
* @num_ns_offload_count: offload count
*/
struct host_offload_req_param {
uint8_t offloadType;
uint8_t enableOrDisable;
uint32_t num_ns_offload_count;
union {
uint8_t hostIpv4Addr[WMI_IPV4_ADDR_LEN];
uint8_t hostIpv6Addr[WMI_MAC_IPV6_ADDR_LEN];
} params;
#ifdef WLAN_NS_OFFLOAD
struct ns_offload_req_params nsOffloadInfo;
#endif /* WLAN_NS_OFFLOAD */
struct qdf_mac_addr bssid;
};
/**
* struct ssid_hotlist_param - param for SSID Hotlist
* @ssid: SSID which is being hotlisted
@@ -7355,22 +7280,6 @@ enum WMI_HOST_CALIBRATION_STATUS {
WMI_HOST_CALIBRATION_NOT_OK,
};
#define WMI_SUPPORTED_ACTION_CATEGORY 256
#define WMI_SUPPORTED_ACTION_CATEGORY_ELE_LIST (WMI_SUPPORTED_ACTION_CATEGORY/32)
/**
* struct action_wakeup_set_param - action wakeup set params
* @vdev_id: virtual device id
* @operation: 0 reset to fw default, 1 set the bits,
* 2 add the setting bits, 3 delete the setting bits
* @action_category_map: bit mapping.
*/
struct action_wakeup_set_param {
uint32_t vdev_id;
uint32_t operation;
uint32_t action_category_map[WMI_SUPPORTED_ACTION_CATEGORY_ELE_LIST];
};
/**
* struct wmi_host_pdev_utf_event - Host defined struct to hold utf event data
* @data: Pointer to data