qcacld-3.0: Relocate wlan_hdd_set_mon_chan()
Function wlan_hdd_set_mon_chan() is currently located in wlan_hdd_wext.c, but this function is independent of wireless extensions, so relocate it as part of the plan to omit wlan_hdd_wext.c from the build when wireless extensions is not enabled. Change-Id: I187305c1f01c7a3cb72f55a0ee885c4f4f0277aa CRs-Fixed: 2227097
Bu işleme şunda yer alıyor:

işlemeyi yapan:
nshrivas

ebeveyn
d56751bbc1
işleme
d9952752e0
@@ -3124,4 +3124,15 @@ bool hdd_is_cli_iface_up(struct hdd_context *hdd_ctx);
|
||||
*/
|
||||
void hdd_set_disconnect_status(struct hdd_adapter *adapter, bool disconnecting);
|
||||
|
||||
/**
|
||||
* wlan_hdd_set_mon_chan() - Set capture channel on the monitor mode interface.
|
||||
* @adapter: Handle to adapter
|
||||
* @chan: Monitor mode channel
|
||||
* @bandwidth: Capture channel bandwidth
|
||||
*
|
||||
* Return: 0 on success else error code.
|
||||
*/
|
||||
int wlan_hdd_set_mon_chan(struct hdd_adapter *adapter, uint32_t chan,
|
||||
uint32_t bandwidth);
|
||||
|
||||
#endif /* end #if !defined(WLAN_HDD_MAIN_H) */
|
||||
|
@@ -329,17 +329,6 @@ struct iw_request_info;
|
||||
int hdd_check_private_wext_control(struct hdd_context *hdd_ctx,
|
||||
struct iw_request_info *info);
|
||||
|
||||
/**
|
||||
* wlan_hdd_set_mon_chan() - Set capture channel on the monitor mode interface.
|
||||
* @adapter: Handle to adapter
|
||||
* @chan: Monitor mode channel
|
||||
* @bandwidth: Capture channel bandwidth
|
||||
*
|
||||
* Return: 0 on success else error code.
|
||||
*/
|
||||
int wlan_hdd_set_mon_chan(struct hdd_adapter *adapter, uint32_t chan,
|
||||
uint32_t bandwidth);
|
||||
|
||||
/**
|
||||
* hdd_crash_inject() - Inject a crash
|
||||
* @adapter: Adapter upon which the command was received
|
||||
|
@@ -5808,6 +5808,57 @@ void hdd_connect_result(struct net_device *dev, const u8 *bssid,
|
||||
}
|
||||
#endif
|
||||
|
||||
int wlan_hdd_set_mon_chan(struct hdd_adapter *adapter, uint32_t chan,
|
||||
uint32_t bandwidth)
|
||||
{
|
||||
struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter);
|
||||
struct hdd_station_ctx *sta_ctx = WLAN_HDD_GET_STATION_CTX_PTR(adapter);
|
||||
struct hdd_mon_set_ch_info *ch_info = &sta_ctx->ch_info;
|
||||
QDF_STATUS status;
|
||||
tHalHandle hal_hdl = hdd_ctx->hHal;
|
||||
struct qdf_mac_addr bssid;
|
||||
struct csr_roam_profile roam_profile;
|
||||
struct ch_params ch_params;
|
||||
|
||||
if (QDF_GLOBAL_MONITOR_MODE != hdd_get_conparam()) {
|
||||
hdd_err("Not supported, device is not in monitor mode");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
hdd_debug("Set monitor mode Channel %d", chan);
|
||||
qdf_mem_zero(&roam_profile, sizeof(roam_profile));
|
||||
roam_profile.ChannelInfo.ChannelList = &ch_info->channel;
|
||||
roam_profile.ChannelInfo.numOfChannels = 1;
|
||||
roam_profile.phyMode = ch_info->phy_mode;
|
||||
roam_profile.ch_params.ch_width = bandwidth;
|
||||
hdd_select_cbmode(adapter, chan, &roam_profile.ch_params);
|
||||
|
||||
qdf_mem_copy(bssid.bytes, adapter->mac_addr.bytes,
|
||||
QDF_MAC_ADDR_SIZE);
|
||||
|
||||
ch_params.ch_width = bandwidth;
|
||||
wlan_reg_set_channel_params(hdd_ctx->hdd_pdev, chan, 0, &ch_params);
|
||||
if (ch_params.ch_width == CH_WIDTH_INVALID) {
|
||||
hdd_err("Invalid capture channel or bandwidth for a country");
|
||||
return -EINVAL;
|
||||
}
|
||||
if (wlan_hdd_change_hw_mode_for_given_chnl(adapter, chan,
|
||||
POLICY_MGR_UPDATE_REASON_SET_OPER_CHAN)) {
|
||||
hdd_err("Failed to change hw mode");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
status = sme_roam_channel_change_req(hal_hdl, bssid, &ch_params,
|
||||
&roam_profile);
|
||||
if (status) {
|
||||
hdd_err("Status: %d Failed to set sme_roam Channel for monitor mode",
|
||||
status);
|
||||
}
|
||||
|
||||
adapter->mon_chan = chan;
|
||||
adapter->mon_bandwidth = bandwidth;
|
||||
return qdf_status_to_os_return(status);
|
||||
}
|
||||
|
||||
QDF_STATUS hdd_start_all_adapters(struct hdd_context *hdd_ctx)
|
||||
{
|
||||
|
@@ -9212,58 +9212,6 @@ static int iw_set_band_config(struct net_device *dev,
|
||||
return ret;
|
||||
}
|
||||
|
||||
int wlan_hdd_set_mon_chan(struct hdd_adapter *adapter, uint32_t chan,
|
||||
uint32_t bandwidth)
|
||||
{
|
||||
struct hdd_context *hdd_ctx = WLAN_HDD_GET_CTX(adapter);
|
||||
struct hdd_station_ctx *sta_ctx = WLAN_HDD_GET_STATION_CTX_PTR(adapter);
|
||||
struct hdd_mon_set_ch_info *ch_info = &sta_ctx->ch_info;
|
||||
QDF_STATUS status;
|
||||
tHalHandle hal_hdl = hdd_ctx->hHal;
|
||||
struct qdf_mac_addr bssid;
|
||||
struct csr_roam_profile roam_profile;
|
||||
struct ch_params ch_params;
|
||||
|
||||
if (QDF_GLOBAL_MONITOR_MODE != hdd_get_conparam()) {
|
||||
hdd_err("Not supported, device is not in monitor mode");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
hdd_debug("Set monitor mode Channel %d", chan);
|
||||
qdf_mem_zero(&roam_profile, sizeof(roam_profile));
|
||||
roam_profile.ChannelInfo.ChannelList = &ch_info->channel;
|
||||
roam_profile.ChannelInfo.numOfChannels = 1;
|
||||
roam_profile.phyMode = ch_info->phy_mode;
|
||||
roam_profile.ch_params.ch_width = bandwidth;
|
||||
hdd_select_cbmode(adapter, chan, &roam_profile.ch_params);
|
||||
|
||||
qdf_mem_copy(bssid.bytes, adapter->mac_addr.bytes,
|
||||
QDF_MAC_ADDR_SIZE);
|
||||
|
||||
ch_params.ch_width = bandwidth;
|
||||
wlan_reg_set_channel_params(hdd_ctx->hdd_pdev, chan, 0, &ch_params);
|
||||
if (ch_params.ch_width == CH_WIDTH_INVALID) {
|
||||
hdd_err("Invalid capture channel or bandwidth for a country");
|
||||
return -EINVAL;
|
||||
}
|
||||
if (wlan_hdd_change_hw_mode_for_given_chnl(adapter, chan,
|
||||
POLICY_MGR_UPDATE_REASON_SET_OPER_CHAN)) {
|
||||
hdd_err("Failed to change hw mode");
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
status = sme_roam_channel_change_req(hal_hdl, bssid, &ch_params,
|
||||
&roam_profile);
|
||||
if (status) {
|
||||
hdd_err("Status: %d Failed to set sme_roam Channel for monitor mode",
|
||||
status);
|
||||
}
|
||||
|
||||
adapter->mon_chan = chan;
|
||||
adapter->mon_bandwidth = bandwidth;
|
||||
return qdf_status_to_os_return(status);
|
||||
}
|
||||
|
||||
static int printk_adapter(void *priv, const char *fmt, ...)
|
||||
{
|
||||
int ret;
|
||||
|
Yeni konuda referans
Bir kullanıcı engelle