aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/mwl8k.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net/wireless/mwl8k.c')
-rw-r--r--drivers/net/wireless/mwl8k.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/drivers/net/wireless/mwl8k.c b/drivers/net/wireless/mwl8k.c
index 20e7cf2e266c..ec79033801ab 100644
--- a/drivers/net/wireless/mwl8k.c
+++ b/drivers/net/wireless/mwl8k.c
@@ -2524,6 +2524,47 @@ static int mwl8k_cmd_use_fixed_rate_sta(struct ieee80211_hw *hw)
2524} 2524}
2525 2525
2526/* 2526/*
2527 * CMD_USE_FIXED_RATE (AP version).
2528 */
2529struct mwl8k_cmd_use_fixed_rate_ap {
2530 struct mwl8k_cmd_pkt header;
2531 __le32 action;
2532 __le32 allow_rate_drop;
2533 __le32 num_rates;
2534 struct mwl8k_rate_entry_ap {
2535 __le32 is_ht_rate;
2536 __le32 enable_retry;
2537 __le32 rate;
2538 __le32 retry_count;
2539 } rate_entry[4];
2540 u8 multicast_rate;
2541 u8 multicast_rate_type;
2542 u8 management_rate;
2543} __attribute__((packed));
2544
2545static int
2546mwl8k_cmd_use_fixed_rate_ap(struct ieee80211_hw *hw, int mcast, int mgmt)
2547{
2548 struct mwl8k_cmd_use_fixed_rate_ap *cmd;
2549 int rc;
2550
2551 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
2552 if (cmd == NULL)
2553 return -ENOMEM;
2554
2555 cmd->header.code = cpu_to_le16(MWL8K_CMD_USE_FIXED_RATE);
2556 cmd->header.length = cpu_to_le16(sizeof(*cmd));
2557 cmd->action = cpu_to_le32(MWL8K_USE_AUTO_RATE);
2558 cmd->multicast_rate = mcast;
2559 cmd->management_rate = mgmt;
2560
2561 rc = mwl8k_post_cmd(hw, &cmd->header);
2562 kfree(cmd);
2563
2564 return rc;
2565}
2566
2567/*
2527 * CMD_ENABLE_SNIFFER. 2568 * CMD_ENABLE_SNIFFER.
2528 */ 2569 */
2529struct mwl8k_cmd_enable_sniffer { 2570struct mwl8k_cmd_enable_sniffer {