aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath6kl/wmi.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/ath/ath6kl/wmi.c')
-rw-r--r--drivers/net/wireless/ath/ath6kl/wmi.c37
1 files changed, 32 insertions, 5 deletions
diff --git a/drivers/net/wireless/ath/ath6kl/wmi.c b/drivers/net/wireless/ath/ath6kl/wmi.c
index bbbe0a74d3c3..fce29f7f2e5c 100644
--- a/drivers/net/wireless/ath/ath6kl/wmi.c
+++ b/drivers/net/wireless/ath/ath6kl/wmi.c
@@ -3182,8 +3182,9 @@ int ath6kl_wmi_remain_on_chnl_cmd(struct wmi *wmi, u8 if_idx, u32 freq, u32 dur)
3182 * ath6kl_wmi_send_mgmt_cmd instead. The new function supports P2P 3182 * ath6kl_wmi_send_mgmt_cmd instead. The new function supports P2P
3183 * mgmt operations using station interface. 3183 * mgmt operations using station interface.
3184 */ 3184 */
3185int ath6kl_wmi_send_action_cmd(struct wmi *wmi, u8 if_idx, u32 id, u32 freq, 3185static int ath6kl_wmi_send_action_cmd(struct wmi *wmi, u8 if_idx, u32 id,
3186 u32 wait, const u8 *data, u16 data_len) 3186 u32 freq, u32 wait, const u8 *data,
3187 u16 data_len)
3187{ 3188{
3188 struct sk_buff *skb; 3189 struct sk_buff *skb;
3189 struct wmi_send_action_cmd *p; 3190 struct wmi_send_action_cmd *p;
@@ -3219,9 +3220,9 @@ int ath6kl_wmi_send_action_cmd(struct wmi *wmi, u8 if_idx, u32 id, u32 freq,
3219 NO_SYNC_WMIFLAG); 3220 NO_SYNC_WMIFLAG);
3220} 3221}
3221 3222
3222int ath6kl_wmi_send_mgmt_cmd(struct wmi *wmi, u8 if_idx, u32 id, u32 freq, 3223static int __ath6kl_wmi_send_mgmt_cmd(struct wmi *wmi, u8 if_idx, u32 id,
3223 u32 wait, const u8 *data, u16 data_len, 3224 u32 freq, u32 wait, const u8 *data,
3224 u32 no_cck) 3225 u16 data_len, u32 no_cck)
3225{ 3226{
3226 struct sk_buff *skb; 3227 struct sk_buff *skb;
3227 struct wmi_send_mgmt_cmd *p; 3228 struct wmi_send_mgmt_cmd *p;
@@ -3258,6 +3259,32 @@ int ath6kl_wmi_send_mgmt_cmd(struct wmi *wmi, u8 if_idx, u32 id, u32 freq,
3258 NO_SYNC_WMIFLAG); 3259 NO_SYNC_WMIFLAG);
3259} 3260}
3260 3261
3262int ath6kl_wmi_send_mgmt_cmd(struct wmi *wmi, u8 if_idx, u32 id, u32 freq,
3263 u32 wait, const u8 *data, u16 data_len,
3264 u32 no_cck)
3265{
3266 int status;
3267 struct ath6kl *ar = wmi->parent_dev;
3268
3269 if (test_bit(ATH6KL_FW_CAPABILITY_STA_P2PDEV_DUPLEX,
3270 ar->fw_capabilities)) {
3271 /*
3272 * If capable of doing P2P mgmt operations using
3273 * station interface, send additional information like
3274 * supported rates to advertise and xmit rates for
3275 * probe requests
3276 */
3277 status = __ath6kl_wmi_send_mgmt_cmd(ar->wmi, if_idx, id, freq,
3278 wait, data, data_len,
3279 no_cck);
3280 } else {
3281 status = ath6kl_wmi_send_action_cmd(ar->wmi, if_idx, id, freq,
3282 wait, data, data_len);
3283 }
3284
3285 return status;
3286}
3287
3261int ath6kl_wmi_send_probe_response_cmd(struct wmi *wmi, u8 if_idx, u32 freq, 3288int ath6kl_wmi_send_probe_response_cmd(struct wmi *wmi, u8 if_idx, u32 freq,
3262 const u8 *dst, const u8 *data, 3289 const u8 *dst, const u8 *data,
3263 u16 data_len) 3290 u16 data_len)