qcacld-3.0: hdd: Refactor wlan_startup (phase 4)
In HDD, hdd_wlan_startup which is called by probe is beast of a function to maintain. Over time it has grown to such an extent that it is almost 800 lines of code with in a single function. Divide the beast into logical smaller functions. Fix style issues like conditional compilation with in the function and other minor ones. Change-Id: Iec2dc3aac934bbb90b87d4e8581e877e5b0a561c CRs-fixed: 959287
このコミットが含まれているのは:
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2014-2015 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2014-2016 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
|
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
|
||||||
*
|
*
|
||||||
@@ -109,6 +109,9 @@ void cds_pkt_proto_trace_init(void);
|
|||||||
|
|
||||||
---------------------------------------------------------------------------*/
|
---------------------------------------------------------------------------*/
|
||||||
void cds_pkt_proto_trace_close(void);
|
void cds_pkt_proto_trace_close(void);
|
||||||
|
#else
|
||||||
|
static inline void cds_pkt_proto_trace_init(void) { }
|
||||||
|
static inline void cds_pkt_proto_trace_close(void) {}
|
||||||
#endif /* QCA_PKT_PROTO_TRACE */
|
#endif /* QCA_PKT_PROTO_TRACE */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -1147,10 +1147,6 @@ struct hdd_context_s {
|
|||||||
/* Lock to avoid race condition during start/stop bss */
|
/* Lock to avoid race condition during start/stop bss */
|
||||||
struct mutex sap_lock;
|
struct mutex sap_lock;
|
||||||
|
|
||||||
#ifdef WLAN_KD_READY_NOTIFIER
|
|
||||||
bool kd_nl_init;
|
|
||||||
#endif /* WLAN_KD_READY_NOTIFIER */
|
|
||||||
|
|
||||||
#ifdef FEATURE_OEM_DATA_SUPPORT
|
#ifdef FEATURE_OEM_DATA_SUPPORT
|
||||||
/* OEM App registered or not */
|
/* OEM App registered or not */
|
||||||
bool oem_app_registered;
|
bool oem_app_registered;
|
||||||
@@ -1462,23 +1458,6 @@ bool hdd_is_5g_supported(hdd_context_t *pHddCtx);
|
|||||||
|
|
||||||
int wlan_hdd_scan_abort(hdd_adapter_t *pAdapter);
|
int wlan_hdd_scan_abort(hdd_adapter_t *pAdapter);
|
||||||
|
|
||||||
#ifdef WLAN_FEATURE_STATS_EXT
|
|
||||||
void wlan_hdd_cfg80211_stats_ext_init(hdd_context_t *pHddCtx);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef WLAN_FEATURE_LINK_LAYER_STATS
|
|
||||||
void wlan_hdd_cfg80211_link_layer_stats_init(hdd_context_t *pHddCtx);
|
|
||||||
static inline bool hdd_link_layer_stats_supported(void)
|
|
||||||
{
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
static inline bool hdd_link_layer_stats_supported(void)
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
#endif /* WLAN_FEATURE_LINK_LAYER_STATS */
|
|
||||||
|
|
||||||
void hdd_get_fw_version(hdd_context_t *hdd_ctx,
|
void hdd_get_fw_version(hdd_context_t *hdd_ctx,
|
||||||
uint32_t *major_spid, uint32_t *minor_spid,
|
uint32_t *major_spid, uint32_t *minor_spid,
|
||||||
uint32_t *siid, uint32_t *crmid);
|
uint32_t *siid, uint32_t *crmid);
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2012-2015 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2012-2016 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
|
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
|
||||||
*
|
*
|
||||||
@@ -25,8 +25,6 @@
|
|||||||
* to the Linux Foundation.
|
* to the Linux Foundation.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef FEATURE_OEM_DATA_SUPPORT
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DOC: wlan_hdd_oemdata.h
|
* DOC: wlan_hdd_oemdata.h
|
||||||
*
|
*
|
||||||
@@ -36,6 +34,8 @@
|
|||||||
#ifndef __WLAN_HDD_OEM_DATA_H__
|
#ifndef __WLAN_HDD_OEM_DATA_H__
|
||||||
#define __WLAN_HDD_OEM_DATA_H__
|
#define __WLAN_HDD_OEM_DATA_H__
|
||||||
|
|
||||||
|
#ifdef FEATURE_OEM_DATA_SUPPORT
|
||||||
|
|
||||||
#ifndef OEM_DATA_REQ_SIZE
|
#ifndef OEM_DATA_REQ_SIZE
|
||||||
#define OEM_DATA_REQ_SIZE 280
|
#define OEM_DATA_REQ_SIZE 280
|
||||||
#endif
|
#endif
|
||||||
@@ -166,7 +166,10 @@ int iw_get_oem_data_cap(struct net_device *dev, struct iw_request_info *info,
|
|||||||
int oem_activate_service(struct hdd_context_s *hdd_ctx);
|
int oem_activate_service(struct hdd_context_s *hdd_ctx);
|
||||||
|
|
||||||
void hdd_send_oem_data_rsp_msg(int length, uint8_t *oemDataRsp);
|
void hdd_send_oem_data_rsp_msg(int length, uint8_t *oemDataRsp);
|
||||||
|
#else
|
||||||
#endif /* __WLAN_HDD_OEM_DATA_H__ */
|
static inline int oem_activate_service(struct hdd_context_s *hdd_ctx)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
#endif /* FEATURE_OEM_DATA_SUPPORT */
|
#endif /* FEATURE_OEM_DATA_SUPPORT */
|
||||||
|
#endif /* __WLAN_HDD_OEM_DATA_H__ */
|
||||||
|
@@ -5448,8 +5448,9 @@ int hdd_wlan_startup(struct device *dev, void *hif_sc)
|
|||||||
hdd_adapter_t *adapter = NULL;
|
hdd_adapter_t *adapter = NULL;
|
||||||
hdd_context_t *hdd_ctx = NULL;
|
hdd_context_t *hdd_ctx = NULL;
|
||||||
int ret;
|
int ret;
|
||||||
tSirTxPowerLimit *hddtxlimit;
|
tSirTxPowerLimit hddtxlimit;
|
||||||
bool rtnl_held;
|
bool rtnl_held;
|
||||||
|
tSirRetStatus hal_status;
|
||||||
|
|
||||||
ENTER();
|
ENTER();
|
||||||
|
|
||||||
@@ -5473,10 +5474,6 @@ int hdd_wlan_startup(struct device *dev, void *hif_sc)
|
|||||||
goto success;
|
goto success;
|
||||||
}
|
}
|
||||||
|
|
||||||
cds_set_recovery_in_progress(false);
|
|
||||||
|
|
||||||
cds_set_connection_in_progress(false);
|
|
||||||
|
|
||||||
hdd_wlan_green_ap_init(hdd_ctx);
|
hdd_wlan_green_ap_init(hdd_ctx);
|
||||||
|
|
||||||
status = cds_open();
|
status = cds_open();
|
||||||
@@ -5559,27 +5556,19 @@ int hdd_wlan_startup(struct device *dev, void *hif_sc)
|
|||||||
FL("can't update mac config, using MAC from ini file"));
|
FL("can't update mac config, using MAC from ini file"));
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
/*
|
||||||
CDF_STATUS cdf_ret_status;
|
* Set the MAC Address Currently this is used by HAL to add self sta.
|
||||||
/*
|
* Remove this once self sta is added as part of session open.
|
||||||
* Set the MAC Address Currently this is used by HAL to
|
*/
|
||||||
* add self sta. Remove this once self sta is added as
|
hal_status = cfg_set_str(hdd_ctx->hHal, WNI_CFG_STA_ID,
|
||||||
* part of session open.
|
hdd_ctx->config->intfMacAddr[0].bytes,
|
||||||
*/
|
sizeof(hdd_ctx->config->intfMacAddr[0]));
|
||||||
cdf_ret_status = cfg_set_str(hdd_ctx->hHal, WNI_CFG_STA_ID,
|
|
||||||
(uint8_t *) &hdd_ctx->config->
|
|
||||||
intfMacAddr[0],
|
|
||||||
sizeof(hdd_ctx->config->
|
|
||||||
intfMacAddr[0]));
|
|
||||||
|
|
||||||
if (!CDF_IS_STATUS_SUCCESS(cdf_ret_status)) {
|
if (!IS_SIR_STATUS_SUCCESS(hal_status)) {
|
||||||
hddLog(CDF_TRACE_LEVEL_ERROR,
|
hdd_err("Failed to set MAC Address. HALStatus is %08d [x%08x]",
|
||||||
FL(
|
hal_status, hal_status);
|
||||||
"Failed to set MAC Address. HALStatus is %08d [x%08x]"
|
ret = -EINVAL;
|
||||||
),
|
goto err_wiphy_unregister;
|
||||||
cdf_ret_status, cdf_ret_status);
|
|
||||||
goto err_wiphy_unregister;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hdd_ipa_init(hdd_ctx) == CDF_STATUS_E_FAILURE)
|
if (hdd_ipa_init(hdd_ctx) == CDF_STATUS_E_FAILURE)
|
||||||
@@ -5603,9 +5592,8 @@ int hdd_wlan_startup(struct device *dev, void *hif_sc)
|
|||||||
FL("hdd_post_cds_enable_config failed"));
|
FL("hdd_post_cds_enable_config failed"));
|
||||||
goto err_cds_disable;
|
goto err_cds_disable;
|
||||||
}
|
}
|
||||||
#ifdef QCA_PKT_PROTO_TRACE
|
|
||||||
cds_pkt_proto_trace_init();
|
cds_pkt_proto_trace_init();
|
||||||
#endif /* QCA_PKT_PROTO_TRACE */
|
|
||||||
|
|
||||||
rtnl_held = hdd_hold_rtnl_lock();
|
rtnl_held = hdd_hold_rtnl_lock();
|
||||||
|
|
||||||
@@ -5637,16 +5625,13 @@ int hdd_wlan_startup(struct device *dev, void *hif_sc)
|
|||||||
|
|
||||||
sme_register11d_scan_done_callback(hdd_ctx->hHal, hdd_11d_scan_done);
|
sme_register11d_scan_done_callback(hdd_ctx->hHal, hdd_11d_scan_done);
|
||||||
|
|
||||||
#ifdef FEATURE_OEM_DATA_SUPPORT
|
|
||||||
sme_register_oem_data_rsp_callback(hdd_ctx->hHal,
|
sme_register_oem_data_rsp_callback(hdd_ctx->hHal,
|
||||||
hdd_send_oem_data_rsp_msg);
|
hdd_send_oem_data_rsp_msg);
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Open debugfs interface */
|
status = hdd_debugfs_init(adapter);
|
||||||
if (CDF_STATUS_SUCCESS != hdd_debugfs_init(adapter)) {
|
|
||||||
hddLog(CDF_TRACE_LEVEL_ERROR,
|
if (CDF_IS_STATUS_SUCCESS(status))
|
||||||
FL("hdd_debugfs_init failed!"));
|
hdd_err("hdd_debugfs_init failed: %d!", status);
|
||||||
}
|
|
||||||
|
|
||||||
/* FW capabilities received, Set the Dot11 mode */
|
/* FW capabilities received, Set the Dot11 mode */
|
||||||
sme_setdef_dot11mode(hdd_ctx->hHal);
|
sme_setdef_dot11mode(hdd_ctx->hHal);
|
||||||
@@ -5656,32 +5641,22 @@ int hdd_wlan_startup(struct device *dev, void *hif_sc)
|
|||||||
hddLog(CDF_TRACE_LEVEL_FATAL, FL("nl_srv_init failed"));
|
hddLog(CDF_TRACE_LEVEL_FATAL, FL("nl_srv_init failed"));
|
||||||
goto err_close_adapter;
|
goto err_close_adapter;
|
||||||
}
|
}
|
||||||
#ifdef WLAN_KD_READY_NOTIFIER
|
|
||||||
hdd_ctx->kd_nl_init = 1;
|
|
||||||
#endif /* WLAN_KD_READY_NOTIFIER */
|
|
||||||
|
|
||||||
#ifdef FEATURE_OEM_DATA_SUPPORT
|
ret = oem_activate_service(hdd_ctx);
|
||||||
/* Initialize the OEM service */
|
if (ret) {
|
||||||
if (oem_activate_service(hdd_ctx) != 0) {
|
hdd_alert("oem_activate_service failed: %d", ret);
|
||||||
hddLog(CDF_TRACE_LEVEL_FATAL,
|
|
||||||
FL("oem_activate_service failed"));
|
|
||||||
goto err_nl_srv;
|
goto err_nl_srv;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef PTT_SOCK_SVC_ENABLE
|
ret = ptt_sock_activate_svc();
|
||||||
/* Initialize the PTT service */
|
if (ret) {
|
||||||
if (ptt_sock_activate_svc() != 0) {
|
hdd_alert("ptt_sock_activate_svc failed: %d", ret);
|
||||||
hddLog(CDF_TRACE_LEVEL_FATAL,
|
|
||||||
FL("ptt_sock_activate_svc failed"));
|
|
||||||
goto err_nl_srv;
|
goto err_nl_srv;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
/* Initialize the CNSS-DIAG service */
|
ret = cnss_diag_activate_service();
|
||||||
if (cnss_diag_activate_service() < 0) {
|
if (ret) {
|
||||||
hddLog(CDF_TRACE_LEVEL_FATAL,
|
hdd_alert("cnss_diag_activate_service failed: %d", ret);
|
||||||
FL("cnss_diag_activate_service failed"));
|
|
||||||
goto err_nl_srv;
|
goto err_nl_srv;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5749,19 +5724,11 @@ int hdd_wlan_startup(struct device *dev, void *hif_sc)
|
|||||||
if (0 != hdd_lro_init(hdd_ctx))
|
if (0 != hdd_lro_init(hdd_ctx))
|
||||||
hdd_err("Unable to initialize LRO in fw");
|
hdd_err("Unable to initialize LRO in fw");
|
||||||
|
|
||||||
/* SAR power limit */
|
hddtxlimit.txPower2g = hdd_ctx->config->TxPower2g;
|
||||||
hddtxlimit = cdf_mem_malloc(sizeof(tSirTxPowerLimit));
|
hddtxlimit.txPower5g = hdd_ctx->config->TxPower5g;
|
||||||
if (!hddtxlimit) {
|
status = sme_txpower_limit(hdd_ctx->hHal, &hddtxlimit);
|
||||||
hddLog(CDF_TRACE_LEVEL_ERROR,
|
if (CDF_IS_STATUS_SUCCESS(status))
|
||||||
FL("Memory allocation for TxPowerLimit failed!"));
|
hdd_err("Error setting txlimit in sme: %d", status);
|
||||||
goto err_unreg_netdev_notifier;
|
|
||||||
}
|
|
||||||
hddtxlimit->txPower2g = hdd_ctx->config->TxPower2g;
|
|
||||||
hddtxlimit->txPower5g = hdd_ctx->config->TxPower5g;
|
|
||||||
|
|
||||||
if (CDF_STATUS_SUCCESS != sme_txpower_limit(hdd_ctx->hHal, hddtxlimit))
|
|
||||||
hddLog(CDF_TRACE_LEVEL_ERROR,
|
|
||||||
FL("Error setting txlimit in sme"));
|
|
||||||
|
|
||||||
#ifdef MSM_PLATFORM
|
#ifdef MSM_PLATFORM
|
||||||
spin_lock_init(&hdd_ctx->bus_bw_lock);
|
spin_lock_init(&hdd_ctx->bus_bw_lock);
|
||||||
@@ -5770,25 +5737,20 @@ int hdd_wlan_startup(struct device *dev, void *hif_sc)
|
|||||||
hdd_bus_bw_compute_cbk, (void *)hdd_ctx);
|
hdd_bus_bw_compute_cbk, (void *)hdd_ctx);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef WLAN_FEATURE_STATS_EXT
|
|
||||||
wlan_hdd_cfg80211_stats_ext_init(hdd_ctx);
|
wlan_hdd_cfg80211_stats_ext_init(hdd_ctx);
|
||||||
#endif
|
|
||||||
#ifdef FEATURE_WLAN_EXTSCAN
|
|
||||||
sme_ext_scan_register_callback(hdd_ctx->hHal,
|
sme_ext_scan_register_callback(hdd_ctx->hHal,
|
||||||
wlan_hdd_cfg80211_extscan_callback);
|
wlan_hdd_cfg80211_extscan_callback);
|
||||||
#endif /* FEATURE_WLAN_EXTSCAN */
|
|
||||||
sme_set_rssi_threshold_breached_cb(hdd_ctx->hHal,
|
sme_set_rssi_threshold_breached_cb(hdd_ctx->hHal,
|
||||||
hdd_rssi_threshold_breached);
|
hdd_rssi_threshold_breached);
|
||||||
#ifdef WLAN_FEATURE_LINK_LAYER_STATS
|
|
||||||
wlan_hdd_cfg80211_link_layer_stats_init(hdd_ctx);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef WLAN_FEATURE_LPSS
|
hdd_cfg80211_link_layer_stats_init(hdd_ctx);
|
||||||
|
|
||||||
wlan_hdd_send_all_scan_intf_info(hdd_ctx);
|
wlan_hdd_send_all_scan_intf_info(hdd_ctx);
|
||||||
wlan_hdd_send_version_pkg(hdd_ctx->target_fw_version,
|
wlan_hdd_send_version_pkg(hdd_ctx->target_fw_version,
|
||||||
hdd_ctx->target_hw_version,
|
hdd_ctx->target_hw_version,
|
||||||
hdd_ctx->target_hw_name);
|
hdd_ctx->target_hw_name);
|
||||||
#endif
|
|
||||||
|
|
||||||
cdf_spinlock_init(&hdd_ctx->hdd_roc_req_q_lock);
|
cdf_spinlock_init(&hdd_ctx->hdd_roc_req_q_lock);
|
||||||
cdf_list_init((&hdd_ctx->hdd_roc_req_q), MAX_ROC_REQ_QUEUE_ENTRY);
|
cdf_list_init((&hdd_ctx->hdd_roc_req_q), MAX_ROC_REQ_QUEUE_ENTRY);
|
||||||
@@ -6328,6 +6290,24 @@ void wlan_hdd_send_all_scan_intf_info(hdd_context_t *hdd_ctx)
|
|||||||
if (!scan_intf_found)
|
if (!scan_intf_found)
|
||||||
wlan_hdd_send_status_pkg(pDataAdapter, NULL, 1, 0);
|
wlan_hdd_send_status_pkg(pDataAdapter, NULL, 1, 0);
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
static inline void wlan_hdd_send_status_pkg(hdd_adapter_t *pAdapter,
|
||||||
|
hdd_station_ctx_t *pHddStaCtx,
|
||||||
|
uint8_t is_on, uint8_t is_connected)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void wlan_hdd_send_version_pkg(uint32_t fw_version, uint32_t
|
||||||
|
chip_id, const char *chip_name)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void wlan_hdd_send_all_scan_intf_info(hdd_context_t *pHddCtx)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef FEATURE_WLAN_AUTO_SHUTDOWN
|
#ifdef FEATURE_WLAN_AUTO_SHUTDOWN
|
||||||
|
@@ -1100,12 +1100,12 @@ static void wlan_hdd_cfg80211_link_layer_stats_callback(void *ctx,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wlan_hdd_cfg80211_link_layer_stats_init() - initialize link layer stats
|
* hdd_cfg80211_link_layer_stats_init() - Initialize link layer stats
|
||||||
* @pHddCtx: Pointer to hdd context
|
* @pHddCtx: Pointer to hdd context
|
||||||
*
|
*
|
||||||
* Return: None
|
* Return: None
|
||||||
*/
|
*/
|
||||||
void wlan_hdd_cfg80211_link_layer_stats_init(hdd_context_t *pHddCtx)
|
void hdd_cfg80211_link_layer_stats_init(hdd_context_t *pHddCtx)
|
||||||
{
|
{
|
||||||
sme_set_link_layer_stats_ind_cb(pHddCtx->hHal,
|
sme_set_link_layer_stats_ind_cb(pHddCtx->hHal,
|
||||||
wlan_hdd_cfg80211_link_layer_stats_callback);
|
wlan_hdd_cfg80211_link_layer_stats_callback);
|
||||||
|
@@ -90,6 +90,8 @@ struct index_data_rate_type {
|
|||||||
*/
|
*/
|
||||||
#define LL_STATS_EVENT_BUF_SIZE 4096
|
#define LL_STATS_EVENT_BUF_SIZE 4096
|
||||||
|
|
||||||
|
void hdd_cfg80211_link_layer_stats_init(hdd_context_t *pHddCtx);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* wlan_hdd_cfg80211_ll_stats_set() - set link layer stats
|
* wlan_hdd_cfg80211_ll_stats_set() - set link layer stats
|
||||||
* @wiphy: Pointer to wiphy
|
* @wiphy: Pointer to wiphy
|
||||||
@@ -134,12 +136,29 @@ int wlan_hdd_cfg80211_ll_stats_clear(struct wiphy *wiphy,
|
|||||||
int data_len);
|
int data_len);
|
||||||
|
|
||||||
void hdd_init_ll_stats_ctx(void);
|
void hdd_init_ll_stats_ctx(void);
|
||||||
|
|
||||||
|
static inline bool hdd_link_layer_stats_supported(void)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
|
static inline void hdd_cfg80211_link_layer_stats_init(hdd_context_t *pHddCtx)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
static inline void hdd_init_ll_stats_ctx(void)
|
static inline void hdd_init_ll_stats_ctx(void)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline bool hdd_link_layer_stats_supported(void)
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
#endif /* End of WLAN_FEATURE_LINK_LAYER_STATS */
|
#endif /* End of WLAN_FEATURE_LINK_LAYER_STATS */
|
||||||
|
|
||||||
#ifdef WLAN_FEATURE_STATS_EXT
|
#ifdef WLAN_FEATURE_STATS_EXT
|
||||||
@@ -156,6 +175,10 @@ int wlan_hdd_cfg80211_stats_ext_request(struct wiphy *wiphy,
|
|||||||
struct wireless_dev *wdev,
|
struct wireless_dev *wdev,
|
||||||
const void *data,
|
const void *data,
|
||||||
int data_len);
|
int data_len);
|
||||||
|
|
||||||
|
void wlan_hdd_cfg80211_stats_ext_init(hdd_context_t *pHddCtx);
|
||||||
|
#else
|
||||||
|
static inline void wlan_hdd_cfg80211_stats_ext_init(hdd_context_t *pHddCtx) {}
|
||||||
#endif /* End of WLAN_FEATURE_STATS_EXT */
|
#endif /* End of WLAN_FEATURE_STATS_EXT */
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -357,6 +357,12 @@ extern CDF_STATUS sme_register11d_scan_done_callback(tHalHandle hHal,
|
|||||||
#ifdef FEATURE_OEM_DATA_SUPPORT
|
#ifdef FEATURE_OEM_DATA_SUPPORT
|
||||||
extern CDF_STATUS sme_register_oem_data_rsp_callback(tHalHandle h_hal,
|
extern CDF_STATUS sme_register_oem_data_rsp_callback(tHalHandle h_hal,
|
||||||
sme_send_oem_data_rsp_msg callback);
|
sme_send_oem_data_rsp_msg callback);
|
||||||
|
#else
|
||||||
|
static inline CDF_STATUS sme_register_oem_data_rsp_callback(tHalHandle h_hal,
|
||||||
|
sme_send_oem_data_rsp_msg callback)
|
||||||
|
{
|
||||||
|
return CDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
extern CDF_STATUS sme_wow_add_pattern(tHalHandle hHal,
|
extern CDF_STATUS sme_wow_add_pattern(tHalHandle hHal,
|
||||||
@@ -832,6 +838,12 @@ sme_set_ssid_hotlist(tHalHandle hal,
|
|||||||
|
|
||||||
CDF_STATUS sme_ext_scan_register_callback(tHalHandle hHal,
|
CDF_STATUS sme_ext_scan_register_callback(tHalHandle hHal,
|
||||||
void (*pExtScanIndCb)(void *, const uint16_t, void *));
|
void (*pExtScanIndCb)(void *, const uint16_t, void *));
|
||||||
|
#else
|
||||||
|
static inline CDF_STATUS sme_ext_scan_register_callback(tHalHandle hHal,
|
||||||
|
void (*pExtScanIndCb)(void *, const uint16_t, void *))
|
||||||
|
{
|
||||||
|
return CDF_STATUS_SUCCESS;
|
||||||
|
}
|
||||||
#endif /* FEATURE_WLAN_EXTSCAN */
|
#endif /* FEATURE_WLAN_EXTSCAN */
|
||||||
CDF_STATUS sme_abort_roam_scan(tHalHandle hHal, uint8_t sessionId);
|
CDF_STATUS sme_abort_roam_scan(tHalHandle hHal, uint8_t sessionId);
|
||||||
#ifdef WLAN_FEATURE_LINK_LAYER_STATS
|
#ifdef WLAN_FEATURE_LINK_LAYER_STATS
|
||||||
|
@@ -12047,12 +12047,23 @@ CDF_STATUS sme_txpower_limit(tHalHandle hHal, tSirTxPowerLimit *psmetx)
|
|||||||
CDF_STATUS cdf_status = CDF_STATUS_SUCCESS;
|
CDF_STATUS cdf_status = CDF_STATUS_SUCCESS;
|
||||||
cds_msg_t cds_message;
|
cds_msg_t cds_message;
|
||||||
tpAniSirGlobal pMac = PMAC_STRUCT(hHal);
|
tpAniSirGlobal pMac = PMAC_STRUCT(hHal);
|
||||||
|
tSirTxPowerLimit *tx_power_limit;
|
||||||
|
|
||||||
|
tx_power_limit = cdf_mem_malloc(sizeof(*tx_power_limit));
|
||||||
|
if (!tx_power_limit) {
|
||||||
|
CDF_TRACE(CDF_MODULE_ID_SME, CDF_TRACE_LEVEL_ERROR,
|
||||||
|
"%s: Memory allocation for TxPowerLimit failed!",
|
||||||
|
__func__);
|
||||||
|
return CDF_STATUS_E_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
*tx_power_limit = *psmetx;
|
||||||
|
|
||||||
status = sme_acquire_global_lock(&pMac->sme);
|
status = sme_acquire_global_lock(&pMac->sme);
|
||||||
if (CDF_IS_STATUS_SUCCESS(status)) {
|
if (CDF_IS_STATUS_SUCCESS(status)) {
|
||||||
cds_message.type = WMA_TX_POWER_LIMIT;
|
cds_message.type = WMA_TX_POWER_LIMIT;
|
||||||
cds_message.reserved = 0;
|
cds_message.reserved = 0;
|
||||||
cds_message.bodyptr = psmetx;
|
cds_message.bodyptr = tx_power_limit;
|
||||||
|
|
||||||
cdf_status = cds_mq_post_message(CDS_MQ_ID_WMA, &cds_message);
|
cdf_status = cds_mq_post_message(CDS_MQ_ID_WMA, &cds_message);
|
||||||
if (!CDF_IS_STATUS_SUCCESS(cdf_status)) {
|
if (!CDF_IS_STATUS_SUCCESS(cdf_status)) {
|
||||||
@@ -12060,7 +12071,7 @@ CDF_STATUS sme_txpower_limit(tHalHandle hHal, tSirTxPowerLimit *psmetx)
|
|||||||
"%s: not able to post WMA_TX_POWER_LIMIT",
|
"%s: not able to post WMA_TX_POWER_LIMIT",
|
||||||
__func__);
|
__func__);
|
||||||
status = CDF_STATUS_E_FAILURE;
|
status = CDF_STATUS_E_FAILURE;
|
||||||
cdf_mem_free(psmetx);
|
cdf_mem_free(tx_power_limit);
|
||||||
}
|
}
|
||||||
sme_release_global_lock(&pMac->sme);
|
sme_release_global_lock(&pMac->sme);
|
||||||
}
|
}
|
||||||
@@ -13079,14 +13090,6 @@ CDF_STATUS sme_ext_scan_register_callback(tHalHandle hHal,
|
|||||||
}
|
}
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
|
|
||||||
#else
|
|
||||||
CDF_STATUS sme_ext_scan_register_callback(tHalHandle hHal,
|
|
||||||
void (*pExtScanIndCb)(void *, const uint16_t, void *))
|
|
||||||
{
|
|
||||||
return CDF_STATUS_SUCCESS;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* FEATURE_WLAN_EXTSCAN */
|
#endif /* FEATURE_WLAN_EXTSCAN */
|
||||||
|
|
||||||
#ifdef WLAN_FEATURE_LINK_LAYER_STATS
|
#ifdef WLAN_FEATURE_LINK_LAYER_STATS
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2013-2015 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2013-2016 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
|
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
|
||||||
*
|
*
|
||||||
@@ -57,7 +57,6 @@
|
|||||||
|
|
||||||
static bool appstarted = false;
|
static bool appstarted = false;
|
||||||
static bool senddriverstatus = false;
|
static bool senddriverstatus = false;
|
||||||
static bool kd_nl_init = false;
|
|
||||||
static int cnss_diag_pid = INVALID_PID;
|
static int cnss_diag_pid = INVALID_PID;
|
||||||
static int get_version = 0;
|
static int get_version = 0;
|
||||||
static int gprint_limiter = 0;
|
static int gprint_limiter = 0;
|
||||||
@@ -4264,12 +4263,11 @@ int cnss_diag_activate_service()
|
|||||||
|
|
||||||
/* Register the msg handler for msgs addressed to WLAN_NL_MSG_OEM */
|
/* Register the msg handler for msgs addressed to WLAN_NL_MSG_OEM */
|
||||||
ret = nl_srv_register(WLAN_NL_MSG_CNSS_DIAG, cnss_diag_msg_callback);
|
ret = nl_srv_register(WLAN_NL_MSG_CNSS_DIAG, cnss_diag_msg_callback);
|
||||||
if (ret == -EINVAL) {
|
if (ret) {
|
||||||
AR_DEBUG_PRINTF(ATH_DEBUG_ERR,
|
AR_DEBUG_PRINTF(ATH_DEBUG_ERR,
|
||||||
("CNSS-DIAG Registeration failed \n"));
|
("CNSS-DIAG Registration failed"));
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
kd_nl_init = true;
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -4459,6 +4457,5 @@ int dbglog_deinit(wmi_unified_t wmi_handle)
|
|||||||
if (res != 0)
|
if (res != 0)
|
||||||
return res;
|
return res;
|
||||||
|
|
||||||
kd_nl_init = false;
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (c) 2012-2015 The Linux Foundation. All rights reserved.
|
* Copyright (c) 2012-2016 The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
|
* Previously licensed under the ISC license by Qualcomm Atheros, Inc.
|
||||||
*
|
*
|
||||||
@@ -92,9 +92,19 @@
|
|||||||
* Length : 4 bytes [LEN_PAYLOAD]
|
* Length : 4 bytes [LEN_PAYLOAD]
|
||||||
* Payload : LEN_PAYLOAD bytes
|
* Payload : LEN_PAYLOAD bytes
|
||||||
*/
|
*/
|
||||||
|
#ifdef PTT_SOCK_SVC_ENABLE
|
||||||
int ptt_sock_activate_svc(void);
|
int ptt_sock_activate_svc(void);
|
||||||
void ptt_sock_deactivate_svc(void);
|
void ptt_sock_deactivate_svc(void);
|
||||||
int ptt_sock_send_msg_to_app(tAniHdr *wmsg, int radio, int src_mod, int pid);
|
int ptt_sock_send_msg_to_app(tAniHdr *wmsg, int radio, int src_mod, int pid);
|
||||||
|
#else
|
||||||
|
static inline int ptt_sock_activate_svc(void) { return 0; }
|
||||||
|
static inline void ptt_sock_deactivate_svc(void) { return; }
|
||||||
|
static inline int ptt_sock_send_msg_to_app(tAniHdr *wmsg, int radio,
|
||||||
|
int src_mod, int pid)
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Format of message exchanged between the PTT Socket App in userspace and the
|
* Format of message exchanged between the PTT Socket App in userspace and the
|
||||||
|
新しいイシューから参照
ユーザーをブロックする