diff options
| author | Kalle Valo <kvalo@qca.qualcomm.com> | 2012-07-19 16:00:48 +0300 | 
|---|---|---|
| committer | Kalle Valo <kvalo@qca.qualcomm.com> | 2012-10-24 11:49:35 +0300 | 
| commit | 11f0bfcf73f4a90c8c0e0b244a272379b376adb1 (patch) | |
| tree | 0a7ff3e09d0059df8ceda77cea5c059964ebe40e /drivers/net/wireless/ath/ath6kl/wmi.c | |
| parent | c8c72b74e289a3439e9c2438ca675c5a746bf929 (diff) | |
| download | olio-linux-3.10-11f0bfcf73f4a90c8c0e0b244a272379b376adb1.tar.xz olio-linux-3.10-11f0bfcf73f4a90c8c0e0b244a272379b376adb1.zip  | |
ath6kl: refactor wmi scan command
ATH6KL_FW_CAPABILITY_STA_P2PDEV_DUPLEX was checked in cfg80211.c which is
a bit awkward when adding more callsites to the scan functions. Refactor
the code to wmi.c so that it's transparent to the callers.
Signed-off-by: Kalle Valo <kvalo@qca.qualcomm.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath6kl/wmi.c')
| -rw-r--r-- | drivers/net/wireless/ath/ath6kl/wmi.c | 25 | 
1 files changed, 20 insertions, 5 deletions
diff --git a/drivers/net/wireless/ath/ath6kl/wmi.c b/drivers/net/wireless/ath/ath6kl/wmi.c index a9d7e000017..05cc871f824 100644 --- a/drivers/net/wireless/ath/ath6kl/wmi.c +++ b/drivers/net/wireless/ath/ath6kl/wmi.c @@ -1899,11 +1899,12 @@ int ath6kl_wmi_disconnect_cmd(struct wmi *wmi, u8 if_idx)   * ath6kl_wmi_begin_scan_cmd instead. The new function supports P2P   * mgmt operations using station interface.   */ -int ath6kl_wmi_startscan_cmd(struct wmi *wmi, u8 if_idx, -			     enum wmi_scan_type scan_type, -			     u32 force_fgscan, u32 is_legacy, -			     u32 home_dwell_time, u32 force_scan_interval, -			     s8 num_chan, u16 *ch_list) +static int ath6kl_wmi_startscan_cmd(struct wmi *wmi, u8 if_idx, +				    enum wmi_scan_type scan_type, +				    u32 force_fgscan, u32 is_legacy, +				    u32 home_dwell_time, +				    u32 force_scan_interval, +				    s8 num_chan, u16 *ch_list)  {  	struct sk_buff *skb;  	struct wmi_start_scan_cmd *sc; @@ -1942,6 +1943,11 @@ int ath6kl_wmi_startscan_cmd(struct wmi *wmi, u8 if_idx,  	return ret;  } +/* + * beginscan supports (compared to old startscan) P2P mgmt operations using + * station interface, send additional information like supported rates to + * advertise and xmit rates for probe requests + */  int ath6kl_wmi_beginscan_cmd(struct wmi *wmi, u8 if_idx,  			     enum wmi_scan_type scan_type,  			     u32 force_fgscan, u32 is_legacy, @@ -1957,6 +1963,15 @@ int ath6kl_wmi_beginscan_cmd(struct wmi *wmi, u8 if_idx,  	int num_rates;  	u32 ratemask; +	if (!test_bit(ATH6KL_FW_CAPABILITY_STA_P2PDEV_DUPLEX, +		      ar->fw_capabilities)) { +		return ath6kl_wmi_startscan_cmd(wmi, if_idx, +						scan_type, force_fgscan, +						is_legacy, home_dwell_time, +						force_scan_interval, +						num_chan, ch_list); +	} +  	size = sizeof(struct wmi_begin_scan_cmd);  	if ((scan_type != WMI_LONG_SCAN) && (scan_type != WMI_SHORT_SCAN))  |