mwl8k: simplify mwl8k_cmd_use_fixed_rate()
authorLennert Buytenhek <buytenh@wantstofly.org>
Fri, 8 Jan 2010 17:30:16 +0000 (18:30 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 12 Jan 2010 19:02:09 +0000 (14:02 -0500)
As we always use the auto rate adaptation feature and never pass in
a rate table, USE_FIXED_RATE can be simplified somewhat.  While we're
at it, rename it to *_sta, as this is the STA version of the command.

Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/mwl8k.c

index 8f5f7c9f75f7917e8eaa1149c83e80a3087fda03..20e7cf2e266c034a12630d84def5caf74d4daecf 100644 (file)
@@ -2482,49 +2482,30 @@ static int mwl8k_cmd_mimo_config(struct ieee80211_hw *hw, __u8 rx, __u8 tx)
 }
 
 /*
- * CMD_USE_FIXED_RATE.
+ * CMD_USE_FIXED_RATE (STA version).
  */
-#define MWL8K_RATE_TABLE_SIZE  8
-#define MWL8K_UCAST_RATE       0
-#define MWL8K_USE_AUTO_RATE    0x0002
-
-struct mwl8k_rate_entry {
-       /* Set to 1 if HT rate, 0 if legacy.  */
-       __le32  is_ht_rate;
-
-       /* Set to 1 to use retry_count field.  */
-       __le32  enable_retry;
-
-       /* Specified legacy rate or MCS.  */
-       __le32  rate;
-
-       /* Number of allowed retries.  */
-       __le32  retry_count;
-} __attribute__((packed));
-
-struct mwl8k_rate_table {
-       /* 1 to allow specified rate and below */
-       __le32  allow_rate_drop;
-       __le32  num_rates;
-       struct mwl8k_rate_entry rate_entry[MWL8K_RATE_TABLE_SIZE];
+struct mwl8k_cmd_use_fixed_rate_sta {
+       struct mwl8k_cmd_pkt header;
+       __le32 action;
+       __le32 allow_rate_drop;
+       __le32 num_rates;
+       struct {
+               __le32 is_ht_rate;
+               __le32 enable_retry;
+               __le32 rate;
+               __le32 retry_count;
+       } rate_entry[8];
+       __le32 rate_type;
+       __le32 reserved1;
+       __le32 reserved2;
 } __attribute__((packed));
 
-struct mwl8k_cmd_use_fixed_rate {
-       struct  mwl8k_cmd_pkt header;
-       __le32  action;
-       struct mwl8k_rate_table rate_table;
-
-       /* Unicast, Broadcast or Multicast */
-       __le32  rate_type;
-       __le32  reserved1;
-       __le32  reserved2;
-} __attribute__((packed));
+#define MWL8K_USE_AUTO_RATE    0x0002
+#define MWL8K_UCAST_RATE       0
 
-static int mwl8k_cmd_use_fixed_rate(struct ieee80211_hw *hw,
-       u32 action, u32 rate_type, struct mwl8k_rate_table *rate_table)
+static int mwl8k_cmd_use_fixed_rate_sta(struct ieee80211_hw *hw)
 {
-       struct mwl8k_cmd_use_fixed_rate *cmd;
-       int count;
+       struct mwl8k_cmd_use_fixed_rate_sta *cmd;
        int rc;
 
        cmd = kzalloc(sizeof(*cmd), GFP_KERNEL);
@@ -2533,32 +2514,8 @@ static int mwl8k_cmd_use_fixed_rate(struct ieee80211_hw *hw,
 
        cmd->header.code = cpu_to_le16(MWL8K_CMD_USE_FIXED_RATE);
        cmd->header.length = cpu_to_le16(sizeof(*cmd));
-
-       cmd->action = cpu_to_le32(action);
-       cmd->rate_type = cpu_to_le32(rate_type);
-
-       if (rate_table != NULL) {
-               /*
-                * Copy over each field manually so that endian
-                * conversion can be done.
-                */
-               cmd->rate_table.allow_rate_drop =
-                               cpu_to_le32(rate_table->allow_rate_drop);
-               cmd->rate_table.num_rates =
-                               cpu_to_le32(rate_table->num_rates);
-
-               for (count = 0; count < rate_table->num_rates; count++) {
-                       struct mwl8k_rate_entry *dst =
-                               &cmd->rate_table.rate_entry[count];
-                       struct mwl8k_rate_entry *src =
-                               &rate_table->rate_entry[count];
-
-                       dst->is_ht_rate = cpu_to_le32(src->is_ht_rate);
-                       dst->enable_retry = cpu_to_le32(src->enable_retry);
-                       dst->rate = cpu_to_le32(src->rate);
-                       dst->retry_count = cpu_to_le32(src->retry_count);
-               }
-       }
+       cmd->action = cpu_to_le32(MWL8K_USE_AUTO_RATE);
+       cmd->rate_type = cpu_to_le32(MWL8K_UCAST_RATE);
 
        rc = mwl8k_post_cmd(hw, &cmd->header);
        kfree(cmd);
@@ -3062,8 +3019,7 @@ static void mwl8k_bss_info_changed(struct ieee80211_hw *hw,
                if (rc)
                        goto out;
 
-               rc = mwl8k_cmd_use_fixed_rate(hw, MWL8K_USE_AUTO_RATE,
-                       MWL8K_UCAST_RATE, NULL);
+               rc = mwl8k_cmd_use_fixed_rate_sta(hw);
                if (rc)
                        goto out;
        }