diff options
| author | Agrawal Ashish <ashishka@codeaurora.org> | 2016-09-02 19:59:26 +0530 |
|---|---|---|
| committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2016-09-21 17:02:26 -0700 |
| commit | b141b09b362a8187505093802ecb4fe48aa9b500 (patch) | |
| tree | 63da9aaebe2053d32af075817e8f2df88d61ba77 | |
| parent | 4c104387cc3880fd42ccd248693dbb6833da60fe (diff) | |
qcacld-3.0: Add feature flag for DSRC feature
qcacld-2.0 to qcacld-3.0 propagation
Currently DSRC feature is compiled for all the
targets even if DSRC is not required.
Fix to protect DSRC changes with DSRC enabled feature.
Change-Id: I2e6f975366e1de8aa8afb818a073e1591f76d7fb
CRs-Fixed: 1053362
| -rw-r--r-- | Kbuild | 17 | ||||
| -rw-r--r-- | core/hdd/inc/wlan_hdd_main.h | 2 | ||||
| -rw-r--r-- | core/hdd/src/wlan_hdd_ocb.h | 93 | ||||
| -rw-r--r-- | core/sme/inc/sme_api.h | 76 | ||||
| -rw-r--r-- | core/sme/src/common/sme_api.c | 3 | ||||
| -rw-r--r-- | core/wma/src/wma_ocb.h | 81 |
6 files changed, 266 insertions, 6 deletions
@@ -145,6 +145,11 @@ ifeq ($(KERNEL_BUILD), 0) #enable TSF get feature CONFIG_WLAN_SYNC_TSF := y + #Enable DSRC feature + + ifeq ($(CONFIG_QCA_WIFI_SDIO), 1) + CONFIG_WLAN_FEATURE_DSRC := y + endif ifneq ($(CONFIG_ROME_IF),sdio) #Flag to enable memdump feature @@ -349,7 +354,6 @@ HDD_OBJS := $(HDD_SRC_DIR)/wlan_hdd_assoc.o \ $(HDD_SRC_DIR)/wlan_hdd_hostapd.o \ $(HDD_SRC_DIR)/wlan_hdd_ioctl.o \ $(HDD_SRC_DIR)/wlan_hdd_main.o \ - $(HDD_SRC_DIR)/wlan_hdd_ocb.o \ $(HDD_SRC_DIR)/wlan_hdd_oemdata.o \ $(HDD_SRC_DIR)/wlan_hdd_power.o \ $(HDD_SRC_DIR)/wlan_hdd_regulatory.o \ @@ -361,6 +365,9 @@ HDD_OBJS := $(HDD_SRC_DIR)/wlan_hdd_assoc.o \ $(HDD_SRC_DIR)/wlan_hdd_wmm.o \ $(HDD_SRC_DIR)/wlan_hdd_wowl.o +ifeq ($(CONFIG_WLAN_FEATURE_DSRC), y) +HDD_OBJS+= $(HDD_SRC_DIR)/wlan_hdd_ocb.o +endif ifeq ($(CONFIG_WLAN_FEATURE_LPSS),y) HDD_OBJS += $(HDD_SRC_DIR)/wlan_hdd_lpass.o @@ -923,10 +930,12 @@ WMA_OBJS := $(WMA_SRC_DIR)/wma_main.o \ $(WMA_SRC_DIR)/wma_utils.o \ $(WMA_SRC_DIR)/wma_features.o \ $(WMA_SRC_DIR)/wma_dfs_interface.o \ - $(WMA_SRC_DIR)/wma_ocb.o \ $(WMA_SRC_DIR)/wlan_qct_wma_legacy.o\ $(WMA_NDP_OBJS) +ifeq ($(CONFIG_WLAN_FEATURE_DSRC), y) +WMA_OBJS+= $(WMA_DIR)/wma_ocb.o +endif ifeq ($(CONFIG_MPC_UT_FRAMEWORK),y) WMA_OBJS += $(WMA_SRC_DIR)/wma_utils_ut.o endif @@ -1284,6 +1293,10 @@ CDEFINES += -DCONFIG_HL_SUPPORT \ -DFEATURE_WLAN_FORCE_SAP_SCC endif +ifeq ($(CONFIG_WLAN_FEATURE_DSRC), y) +CDEFINES += -DWLAN_FEATURE_DSRC +endif + #Enable USB specific APIS ifeq ($(CONFIG_HIF_USB), 1) CDEFINES += -DHIF_USB \ diff --git a/core/hdd/inc/wlan_hdd_main.h b/core/hdd/inc/wlan_hdd_main.h index 2e72cb203bd6..f6d56290772d 100644 --- a/core/hdd/inc/wlan_hdd_main.h +++ b/core/hdd/inc/wlan_hdd_main.h @@ -1061,8 +1061,10 @@ struct hdd_adapter_s { struct sir_dcc_update_ndl_response dcc_update_ndl_resp; /* MAC addresses used for OCB interfaces */ +#ifdef WLAN_FEATURE_DSRC struct qdf_mac_addr ocb_mac_address[QDF_MAX_CONCURRENCY_PERSONA]; int ocb_mac_addr_count; +#endif /* BITMAP indicating pause reason */ uint32_t pause_map; diff --git a/core/hdd/src/wlan_hdd_ocb.h b/core/hdd/src/wlan_hdd_ocb.h index 73f700bdba0b..2074511a15d3 100644 --- a/core/hdd/src/wlan_hdd_ocb.h +++ b/core/hdd/src/wlan_hdd_ocb.h @@ -238,7 +238,7 @@ enum qca_wlan_vendor_attr_dcc_update_ndl { QCA_WLAN_VENDOR_ATTR_DCC_UPDATE_NDL_MAX = QCA_WLAN_VENDOR_ATTR_DCC_UPDATE_NDL_AFTER_LAST - 1, }; - +#ifdef WLAN_FEATURE_DSRC void hdd_set_dot11p_config(hdd_context_t *hdd_ctx); void hdd_remove_ocb_tx_header(struct sk_buff *skb); @@ -290,6 +290,97 @@ int wlan_hdd_cfg80211_dcc_update_ndl(struct wiphy *wiphy, void wlan_hdd_dcc_register_for_dcc_stats_event(hdd_context_t *hdd_ctx); void wlan_hdd_dcc_stats_event(void *context_ptr, void *response_ptr); +#else +static inline void hdd_set_dot11p_config(hdd_context_t *hdd_ctx) +{ + return; +} + +static inline void hdd_remove_ocb_tx_header(struct sk_buff *skb) +{ + return; +} +static inline int iw_set_dot11p_channel_sched(struct net_device *dev, + struct iw_request_info *info, + union iwreq_data *wrqu, char *extra) +{ + return 0; +} + +static inline int wlan_hdd_cfg80211_ocb_set_config(struct wiphy *wiphy, + struct wireless_dev *wdev, + const void *data, + int data_len) +{ + return 0; +} + +static inline int wlan_hdd_cfg80211_ocb_set_utc_time(struct wiphy *wiphy, + struct wireless_dev *wdev, + const void *data, + int data_len) +{ + return 0; +} + +static inline int wlan_hdd_cfg80211_ocb_start_timing_advert(struct wiphy *wiphy, + struct wireless_dev *wdev, + const void *data, + int data_len) +{ + return 0; +} + +static inline int wlan_hdd_cfg80211_ocb_stop_timing_advert(struct wiphy *wiphy, + struct wireless_dev *wdev, + const void *data, + int data_len) +{ + return 0; +} + +static inline int wlan_hdd_cfg80211_ocb_get_tsf_timer(struct wiphy *wiphy, + struct wireless_dev *wdev, + const void *data, + int data_len) +{ + return 0; +} + +static inline int wlan_hdd_cfg80211_dcc_get_stats(struct wiphy *wiphy, + struct wireless_dev *wdev, + const void *data, + int data_len) +{ + return 0; +} + +static inline int wlan_hdd_cfg80211_dcc_clear_stats(struct wiphy *wiphy, + struct wireless_dev *wdev, + const void *data, + int data_len) +{ + return 0; +} + +static inline int wlan_hdd_cfg80211_dcc_update_ndl(struct wiphy *wiphy, + struct wireless_dev *wdev, + const void *data, + int data_len) +{ + return 0; +} +static inline void wlan_hdd_dcc_register_for_dcc_stats_event( + hdd_context_t *hdd_ctx) +{ + return; +} +static inline void wlan_hdd_dcc_stats_event(void *context_ptr, + void *response_ptr) +{ + return; +} +#endif #endif /* __WLAN_HDD_OCB_H */ diff --git a/core/sme/inc/sme_api.h b/core/sme/inc/sme_api.h index ba05de447f5c..f9abc72bef2c 100644 --- a/core/sme/inc/sme_api.h +++ b/core/sme/inc/sme_api.h @@ -1021,6 +1021,7 @@ QDF_STATUS sme_update_roam_scan_hi_rssi_scan_params(tHalHandle hal_handle, int32_t val); void wlan_sap_enable_phy_error_logs(tHalHandle hal, bool enable_log); +#ifdef WLAN_FEATURE_DSRC void sme_set_dot11p_config(tHalHandle hal, bool enable_dot11p); QDF_STATUS sme_ocb_set_config(tHalHandle hHal, void *context, @@ -1058,6 +1059,81 @@ QDF_STATUS sme_register_for_dcc_stats_event(tHalHandle hHal, void *context, ocb_callback callback); QDF_STATUS sme_deregister_for_dcc_stats_event(tHalHandle hHal); +#else +static inline void sme_set_dot11p_config(tHalHandle hal, bool enable_dot11p) +{ + return; +} + +static inline QDF_STATUS sme_ocb_set_config(tHalHandle hHal, void *context, + ocb_callback callback, + struct sir_ocb_config *config) +{ + return QDF_STATUS_SUCCESS; +} + +static inline QDF_STATUS sme_ocb_set_utc_time(struct sir_ocb_utc *utc) +{ + return QDF_STATUS_SUCCESS; +} + +static inline QDF_STATUS sme_ocb_start_timing_advert( + struct sir_ocb_timing_advert *timing_advert) +{ + return QDF_STATUS_SUCCESS; +} + +static inline QDF_STATUS sme_ocb_stop_timing_advert(struct sir_ocb_timing_advert + *timing_advert) +{ + return QDF_STATUS_SUCCESS; +} + +static inline int sme_ocb_gen_timing_advert_frame(tHalHandle hHal, + tSirMacAddr self_addr, uint8_t **buf, + uint32_t *timestamp_offset, + uint32_t *time_value_offset) +{ + return 0; +} + +static inline QDF_STATUS sme_ocb_get_tsf_timer(tHalHandle hHal, void *context, + ocb_callback callback, + struct sir_ocb_get_tsf_timer *request) +{ + return QDF_STATUS_SUCCESS; +} + +static inline QDF_STATUS sme_dcc_get_stats(tHalHandle hHal, void *context, + ocb_callback callback, + struct sir_dcc_get_stats *request) +{ + return QDF_STATUS_SUCCESS; +} + +static inline QDF_STATUS sme_dcc_clear_stats(uint32_t vdev_id, + uint32_t dcc_stats_bitmap) +{ + return QDF_STATUS_SUCCESS; +} + +static inline QDF_STATUS sme_dcc_update_ndl(tHalHandle hHal, void *context, + ocb_callback callback, + struct sir_dcc_update_ndl *request) +{ + return QDF_STATUS_SUCCESS; +} + +static inline QDF_STATUS sme_register_for_dcc_stats_event(tHalHandle hHal, + void *context, ocb_callback callback) +{ + return QDF_STATUS_SUCCESS; +} +static inline QDF_STATUS sme_deregister_for_dcc_stats_event(tHalHandle hHal) +{ + return QDF_STATUS_SUCCESS; +} +#endif void sme_add_set_thermal_level_callback(tHalHandle hal, sme_set_thermal_level_callback callback); diff --git a/core/sme/src/common/sme_api.c b/core/sme/src/common/sme_api.c index 3c08777f594b..987e5efaa855 100644 --- a/core/sme/src/common/sme_api.c +++ b/core/sme/src/common/sme_api.c @@ -11060,7 +11060,7 @@ void sme_get_command_q_status(tHalHandle hHal) return; } - +#ifdef WLAN_FEATURE_DSRC /** * sme_set_dot11p_config() - API to set the 802.11p config * @hHal: The handle returned by macOpen @@ -11633,6 +11633,7 @@ QDF_STATUS sme_deregister_for_dcc_stats_event(tHalHandle h_hal) return status; } +#endif void sme_get_recovery_stats(tHalHandle hHal) { diff --git a/core/wma/src/wma_ocb.h b/core/wma/src/wma_ocb.h index c2e5ae37ebe7..878a7c9d4fd8 100644 --- a/core/wma/src/wma_ocb.h +++ b/core/wma/src/wma_ocb.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015 The Linux Foundation. All rights reserved. + * Copyright (c) 2015-2016 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -31,6 +31,7 @@ #include "wma.h" #include "sir_api.h" +#ifdef WLAN_FEATURE_DSRC int wma_ocb_set_config_resp(tp_wma_handle wma_handle, uint8_t status); int wma_ocb_set_config_req(tp_wma_handle handle, @@ -64,5 +65,81 @@ int wma_dcc_update_ndl(tp_wma_handle wma_handle, struct sir_dcc_update_ndl *update_ndl_param); int wma_ocb_register_event_handlers(tp_wma_handle wma_handle); - +#else +static inline int wma_ocb_set_config_resp(tp_wma_handle wma_handle, + uint8_t status) +{ + return 0; +} + +static inline int wma_ocb_set_config_req(tp_wma_handle handle, + struct sir_ocb_config *config_req) +{ + return 0; +} + +static inline int wma_ocb_set_config_event_handler(void *handle, + uint8_t *event_buf, uint32_t len) +{ + return 0; +} + +static inline int wma_ocb_start_resp_ind_cont(tp_wma_handle wma_handle) +{ + return 0; +} + +static inline int wma_ocb_set_config(tp_wma_handle wma_handle, + struct sir_ocb_config *config) +{ + return 0; +} + +static inline int wma_ocb_set_utc_time(tp_wma_handle wma_handle, + struct sir_ocb_utc *utc) +{ + return 0; +} + +static inline int wma_ocb_start_timing_advert(tp_wma_handle wma_handle, + struct sir_ocb_timing_advert *timing_advert) +{ + return 0; +} + +static inline int wma_ocb_stop_timing_advert(tp_wma_handle wma_handle, + struct sir_ocb_timing_advert *timing_advert) +{ + return 0; +} + +static inline int wma_ocb_get_tsf_timer(tp_wma_handle wma_handle, + struct sir_ocb_get_tsf_timer *request) +{ + return 0; +} + +static inline int wma_dcc_get_stats(tp_wma_handle wma_handle, + struct sir_dcc_get_stats *get_stats_param) +{ + return 0 ; +} + +static inline int wma_dcc_clear_stats(tp_wma_handle wma_handle, + struct sir_dcc_clear_stats *clear_stats_param) +{ + return 0; +} + +static inline int wma_dcc_update_ndl(tp_wma_handle wma_handle, + struct sir_dcc_update_ndl *update_ndl_param) +{ + return 0; +} + +static inline int wma_ocb_register_event_handlers(tp_wma_handle wma_handle) +{ + return 0; +} +#endif #endif /* __WMA_OCB_H */ |
