qcacmn: Add support for NLA type CAP_RESP in LOWI

Host driver processes cld80211 vendor sub command
CLD80211_VENDOR_SUB_CMD_GET_CAPS and respond with
NLA type CAP response

CRs-Fixed: 2595140
Change-Id: I5a6aa1fac537ca618404520b81c541a20dafd6fb
This commit is contained in:
Vinay Gannevaram
2019-12-23 21:58:09 +05:30
committed by nshrivas
parent 644413b274
commit 23a3603951
10 changed files with 654 additions and 151 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright (c) 2012-2017 The Linux Foundation. All rights reserved.
* Copyright (c) 2012-2017, 2020 The Linux Foundation. All rights reserved.
*
* Permission to use, copy, modify, and/or distribute this software for
* any purpose with or without fee is hereby granted, provided that the
@@ -105,4 +105,73 @@ static inline int os_if_wifi_pos_populate_caps(struct wlan_objmgr_psoc *psoc,
}
#endif
#ifdef CNSS_GENL
/**
* enum cld80211_vendor_sub_cmds
* @CLD80211_VENDOR_SUB_CMD_INVALID: invalid cmd type
* @CLD80211_VENDOR_SUB_CMD_REGISTRATION: app registration
* @CLD80211_VENDOR_SUB_CMD_SET_CAPS: set driver capabilities
* @CLD80211_VENDOR_SUB_CMD_GET_CAPS: get driver capabilities
* @CLD80211_VENDOR_SUB_CMD_GET_CH_INFO: get channel info
* @CLD80211_VENDOR_SUB_CMD_OEM_DATA: oem data req/rsp
* @CLD80211_VENDOR_SUB_CMD_OEM_ERROR: oem error rsp
* @CLD80211_VENDOR_SUB_CMD_PEER_STATUS_IND: peer status indication
* @CLD80211_VENDOR_SUB_CMD_MAX: Max cld80211 vendor sub cmds
*/
enum cld80211_vendor_sub_cmds {
CLD80211_VENDOR_SUB_CMD_INVALID = 0,
CLD80211_VENDOR_SUB_CMD_REGISTRATION = 1,
CLD80211_VENDOR_SUB_CMD_SET_CAPS = 2,
CLD80211_VENDOR_SUB_CMD_GET_CAPS = 3,
CLD80211_VENDOR_SUB_CMD_GET_CH_INFO = 4,
CLD80211_VENDOR_SUB_CMD_OEM_DATA = 5,
CLD80211_VENDOR_SUB_CMD_OEM_ERROR = 6,
CLD80211_VENDOR_SUB_CMD_PEER_STATUS_IND = 7,
/* keep last */
CLD80211_VENDOR_SUB_CMD__AFTER_LAST,
CLD80211_VENDOR_SUB_CMD_MAX =
CLD80211_VENDOR_SUB_CMD__AFTER_LAST - 1
};
/**
* enum cld80211_sub_attr_cap_rsp - Capability response sub attribute
* @CLD80211_SUB_ATTR_CAPS_INVALID: Invalid capability
* @CLD80211_SUB_ATTR_CAPS_OEM_TARGET_SIGNATURE: OEM target signature
* @CLD80211_SUB_ATTR_CAPS_OEM_TARGET_TYPE: OEM target type
* @CLD80211_SUB_ATTR_CAPS_OEM_FW_VERSION: OEM firmware version
* @CLD80211_SUB_ATTR_CAPS_DRIVER_VERSION_MAJOR: Driver version major
* @CLD80211_SUB_ATTR_CAPS_DRIVER_VERSION_MINOR: Driver version minor
* @CLD80211_SUB_ATTR_CAPS_DRIVER_VERSION_PATCH: Driver version patch
* @CLD80211_SUB_ATTR_CAPS_DRIVER_VERSION_BUILD: Driver version build
* @CLD80211_SUB_ATTR_CAPS_ALLOWED_DWELL_TIME_MIN: Allowed dwell time min
* @CLD80211_SUB_ATTR_CAPS_ALLOWED_DWELL_TIME_MAX: Allowed dwell time max
* @CLD80211_SUB_ATTR_CAPS_CURRENT_DWELL_TIME_MIN: Current dwell time min
* @CLD80211_SUB_ATTR_CAPS_CURRENT_DWELL_TIME_MAX: Current dwell time max
* @CLD80211_SUB_ATTR_CAPS_SUPPORTED_BANDS: Supported bands
* @CLD80211_SUB_ATTR_CAPS_USER_DEFINED_CAPS: User defined capabilities
* @CLD80211_SUB_ATTR_CAPS_MAX: Max number for CAP sub attribute
*
*/
enum cld80211_sub_attr_cap_rsp {
CLD80211_SUB_ATTR_CAPS_INVALID = 0,
CLD80211_SUB_ATTR_CAPS_OEM_TARGET_SIGNATURE = 1,
CLD80211_SUB_ATTR_CAPS_OEM_TARGET_TYPE = 2,
CLD80211_SUB_ATTR_CAPS_OEM_FW_VERSION = 3,
CLD80211_SUB_ATTR_CAPS_DRIVER_VERSION_MAJOR = 4,
CLD80211_SUB_ATTR_CAPS_DRIVER_VERSION_MINOR = 5,
CLD80211_SUB_ATTR_CAPS_DRIVER_VERSION_PATCH = 6,
CLD80211_SUB_ATTR_CAPS_DRIVER_VERSION_BUILD = 7,
CLD80211_SUB_ATTR_CAPS_ALLOWED_DWELL_TIME_MIN = 8,
CLD80211_SUB_ATTR_CAPS_ALLOWED_DWELL_TIME_MAX = 9,
CLD80211_SUB_ATTR_CAPS_CURRENT_DWELL_TIME_MIN = 10,
CLD80211_SUB_ATTR_CAPS_CURRENT_DWELL_TIME_MAX = 11,
CLD80211_SUB_ATTR_CAPS_SUPPORTED_BANDS = 12,
CLD80211_SUB_ATTR_CAPS_USER_DEFINED_CAPS = 13,
/* keep last */
CLD80211_SUB_ATTR_CAPS_AFTER_LAST,
CLD80211_SUB_ATTR_CAPS_MAX =
CLD80211_SUB_ATTR_CAPS_AFTER_LAST - 1
};
#endif
#endif /* _OS_IF_WIFI_POS_H_ */