qcacld-3.0: Add support for CFR in adrastea target in Kbuild
Add support for CFR feature for adrastea target. A new feature flag CONFIG_WLAN_CFR_ADRASTEA is introduced for this purpose. Also adrastea do not support enhanced CFR so when only WLAN_CFR_ENABLE and WLAN_CFR_ADRASTEA are enabled, some compilation issues are seen as CONFIG_WLAN_ENH_CFR_ENABLE is not set. Fix these compilation issues as well as introduce a new feature flag to add support for CFR in adrastea. Change-Id: I52bc235c4d271004698163897c15721023410017 CRs-Fixed: 2705119
This commit is contained in:
parent
8890408df0
commit
6ac5a1226e
8
Kbuild
8
Kbuild
@ -1081,8 +1081,13 @@ WLAN_CFR_OBJS := $(WLAN_CFR_CORE_DIR)/cfr_common.o \
|
||||
$(WLAN_CFR_DISP_DIR)/wlan_cfr_ucfg_api.o \
|
||||
$(WLAN_CFR_DISP_DIR)/wlan_cfr_utils_api.o \
|
||||
$(WLAN_COMMON_ROOT)/target_if/cfr/src/target_if_cfr.o \
|
||||
$(WLAN_COMMON_ROOT)/target_if/cfr/src/target_if_cfr_enh.o \
|
||||
$(WLAN_COMMON_ROOT)/target_if/cfr/src/target_if_cfr_6490.o
|
||||
ifeq ($(CONFIG_WLAN_ENH_CFR_ENABLE),y)
|
||||
WLAN_CFR_OBJS += $(WLAN_COMMON_ROOT)/target_if/cfr/src/target_if_cfr_enh.o
|
||||
endif
|
||||
ifeq ($(CONFIG_WLAN_CFR_ADRASTEA),y)
|
||||
WLAN_CFR_OBJS += $(WLAN_COMMON_ROOT)/target_if/cfr/src/target_if_cfr_adrastea.o
|
||||
endif
|
||||
endif
|
||||
|
||||
$(call add-wlan-objs,wlan_cfr,$(WLAN_CFR_OBJS))
|
||||
@ -2849,6 +2854,7 @@ cppflags-$(CONFIG_WLAN_CONV_SPECTRAL_ENABLE) += -DWLAN_CONV_SPECTRAL_ENABLE
|
||||
cppflags-$(CONFIG_WLAN_CFR_ENABLE) += -DWLAN_CFR_ENABLE
|
||||
cppflags-$(CONFIG_WLAN_ENH_CFR_ENABLE) += -DWLAN_ENH_CFR_ENABLE
|
||||
cppflags-$(CONFIG_WLAN_ENH_CFR_ENABLE) += -DWLAN_CFR_PM
|
||||
cppflags-$(CONFIG_WLAN_CFR_ADRASTEA) += -DWLAN_CFR_ADRASTEA
|
||||
cppflags-$(CONFIG_WLAN_CFR_ENABLE) += -DCFR_USE_FIXED_FOLDER
|
||||
cppflags-$(CONFIG_WLAN_FEATURE_MEDIUM_ASSESS) += -DWLAN_FEATURE_MEDIUM_ASSESS
|
||||
cppflags-$(CONFIG_FEATURE_RADAR_HISTORY) += -DFEATURE_RADAR_HISTORY
|
||||
|
@ -348,6 +348,72 @@ wlan_cfg80211_cfr_set_config(struct wlan_objmgr_vdev *vdev,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int
|
||||
wlan_cfg80211_peer_enh_cfr_capture(struct hdd_adapter *adapter,
|
||||
struct nlattr **tb)
|
||||
{
|
||||
struct cfr_wlanconfig_param params = { 0 };
|
||||
struct wlan_objmgr_vdev *vdev;
|
||||
bool is_start_capture = false;
|
||||
int ret = 0;
|
||||
|
||||
if (tb[QCA_WLAN_VENDOR_ATTR_PEER_CFR_ENABLE]) {
|
||||
is_start_capture = nla_get_flag(tb[
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_ENABLE]);
|
||||
}
|
||||
|
||||
if (is_start_capture &&
|
||||
!tb[QCA_WLAN_VENDOR_ATTR_PEER_CFR_ENABLE_GROUP_BITMAP]) {
|
||||
hdd_err("Invalid group bitmap");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
vdev = hdd_objmgr_get_vdev_by_user(adapter, WLAN_CFR_ID);
|
||||
if (!vdev) {
|
||||
hdd_err("can't get vdev");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (is_start_capture) {
|
||||
ret = wlan_cfg80211_cfr_set_config(vdev, tb);
|
||||
if (ret) {
|
||||
hdd_err("set config failed");
|
||||
goto out;
|
||||
}
|
||||
params.en_cfg = nla_get_u32(tb[
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_ENABLE_GROUP_BITMAP]);
|
||||
hdd_debug("params.en_cfg %d", params.en_cfg);
|
||||
ucfg_cfr_set_en_bitmap(vdev, ¶ms);
|
||||
} else {
|
||||
hdd_debug("cleanup rcc mode");
|
||||
ucfg_cfr_set_rcc_mode(vdev, RCC_DIS_ALL_MODE, 0);
|
||||
}
|
||||
|
||||
if (is_start_capture)
|
||||
ucfg_cfr_resume(wlan_vdev_get_pdev(vdev));
|
||||
|
||||
ucfg_cfr_subscribe_ppdu_desc(wlan_vdev_get_pdev(vdev),
|
||||
is_start_capture);
|
||||
ucfg_cfr_committed_rcc_config(vdev);
|
||||
if (!is_start_capture) {
|
||||
ucfg_cfr_stop_indication(vdev);
|
||||
ucfg_cfr_suspend(wlan_vdev_get_pdev(vdev));
|
||||
hdd_debug("stop indication done");
|
||||
}
|
||||
|
||||
out:
|
||||
hdd_objmgr_put_vdev_by_user(vdev, WLAN_CFR_ID);
|
||||
return ret;
|
||||
}
|
||||
#else
|
||||
static int
|
||||
wlan_cfg80211_peer_enh_cfr_capture(struct hdd_adapter *adapter,
|
||||
struct nlattr **tb)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef WLAN_CFR_ADRASTEA
|
||||
static QDF_STATUS
|
||||
wlan_cfg80211_peer_cfr_capture_cfg_adrastea(struct hdd_adapter *adapter,
|
||||
@ -461,72 +527,6 @@ wlan_cfg80211_peer_cfr_capture_cfg_adrastea(struct hdd_adapter *adapter,
|
||||
}
|
||||
#endif
|
||||
|
||||
static int
|
||||
wlan_cfg80211_peer_enh_cfr_capture(struct hdd_adapter *adapter,
|
||||
struct nlattr **tb)
|
||||
{
|
||||
struct cfr_wlanconfig_param params = { 0 };
|
||||
struct wlan_objmgr_vdev *vdev;
|
||||
bool is_start_capture = false;
|
||||
int ret = 0;
|
||||
|
||||
if (tb[QCA_WLAN_VENDOR_ATTR_PEER_CFR_ENABLE]) {
|
||||
is_start_capture = nla_get_flag(tb[
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_ENABLE]);
|
||||
}
|
||||
|
||||
if (is_start_capture &&
|
||||
!tb[QCA_WLAN_VENDOR_ATTR_PEER_CFR_ENABLE_GROUP_BITMAP]) {
|
||||
hdd_err("Invalid group bitmap");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
vdev = hdd_objmgr_get_vdev_by_user(adapter, WLAN_CFR_ID);
|
||||
if (!vdev) {
|
||||
hdd_err("can't get vdev");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
if (is_start_capture) {
|
||||
ret = wlan_cfg80211_cfr_set_config(vdev, tb);
|
||||
if (ret) {
|
||||
hdd_err("set config failed");
|
||||
goto out;
|
||||
}
|
||||
params.en_cfg = nla_get_u32(tb[
|
||||
QCA_WLAN_VENDOR_ATTR_PEER_CFR_ENABLE_GROUP_BITMAP]);
|
||||
hdd_debug("params.en_cfg %d", params.en_cfg);
|
||||
ucfg_cfr_set_en_bitmap(vdev, ¶ms);
|
||||
} else {
|
||||
hdd_debug("cleanup rcc mode");
|
||||
ucfg_cfr_set_rcc_mode(vdev, RCC_DIS_ALL_MODE, 0);
|
||||
}
|
||||
|
||||
if (is_start_capture)
|
||||
ucfg_cfr_resume(wlan_vdev_get_pdev(vdev));
|
||||
|
||||
ucfg_cfr_subscribe_ppdu_desc(wlan_vdev_get_pdev(vdev),
|
||||
is_start_capture);
|
||||
ucfg_cfr_committed_rcc_config(vdev);
|
||||
if (!is_start_capture) {
|
||||
ucfg_cfr_stop_indication(vdev);
|
||||
ucfg_cfr_suspend(wlan_vdev_get_pdev(vdev));
|
||||
hdd_debug("stop indication done");
|
||||
}
|
||||
|
||||
out:
|
||||
hdd_objmgr_put_vdev_by_user(vdev, WLAN_CFR_ID);
|
||||
return ret;
|
||||
}
|
||||
#else
|
||||
static int
|
||||
wlan_cfg80211_peer_enh_cfr_capture(struct hdd_adapter *adapter,
|
||||
struct nlattr **tb)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
static int
|
||||
wlan_cfg80211_peer_cfr_capture_cfg(struct wiphy *wiphy,
|
||||
struct hdd_adapter *adapter,
|
||||
|
Loading…
Reference in New Issue
Block a user