rt2x00: merge beacon setup fixes, disable unused hw beacon slots
authorFelix Fietkau <nbd@openwrt.org>
Thu, 5 Jun 2014 14:09:14 +0000 (14:09 +0000)
committerFelix Fietkau <nbd@openwrt.org>
Thu, 5 Jun 2014 14:09:14 +0000 (14:09 +0000)
Signed-off-by: Felix Fietkau <nbd@openwrt.org>
SVN-Revision: 41016

37 files changed:
package/kernel/mac80211/patches/300-pending_work.patch
package/kernel/mac80211/patches/600-0002-rt2x00-rt2800lib-introduce-RT2800_HAS_HIGH_SHARED_ME.patch
package/kernel/mac80211/patches/600-0003-rt2x00-rt2800-serialize-shared-memory-access.patch
package/kernel/mac80211/patches/600-0004-rt2x00-rt2800lib-fix-beacon-generation-on-RT3593.patch
package/kernel/mac80211/patches/600-0005-rt2x00-rt2800lib-add-hw_beacon_count-field-to-struct.patch
package/kernel/mac80211/patches/600-0006-rt2x00-rt2800lib-init-additional-beacon-offset-regis.patch
package/kernel/mac80211/patches/600-0007-rt2x00-rt2800lib-fix-max-supported-beacon-count-for-.patch
package/kernel/mac80211/patches/600-0009-rt2x00-rt2800lib-enable-support-for-RT3883.patch
package/kernel/mac80211/patches/600-0010-rt2x00-rt2800lib-add-rf_vals-for-RF3853.patch
package/kernel/mac80211/patches/600-0011-rt2x00-rt2800lib-enable-VCO-calibration-for-RF3853.patch
package/kernel/mac80211/patches/600-0012-rt2x00-rt2800lib-add-channel-configuration-function-.patch
package/kernel/mac80211/patches/600-0013-rt2x00-rt2800lib-enable-RF3853-support.patch
package/kernel/mac80211/patches/600-0014-rt2x00-rt2800lib-add-MAC-register-initialization-for.patch
package/kernel/mac80211/patches/600-0016-rt2x00-rt2800lib-add-BBP-register-initialization-for.patch
package/kernel/mac80211/patches/600-0017-rt2x00-rt2800lib-add-RFCSR-initialization-for-RT3883.patch
package/kernel/mac80211/patches/600-0019-rt2x00-rt2800lib-force-rf-type-to-RF3853-on-RT3883.patch
package/kernel/mac80211/patches/600-0020-rt2x00-rt2800lib-add-channel-configuration-code-for-.patch
package/kernel/mac80211/patches/600-0021-rt2x00-rt2800lib-fix-txpower_to_dev-function-for-RT3.patch
package/kernel/mac80211/patches/600-0022-rt2x00-rt2800lib-use-correct-txpower-calculation-fun.patch
package/kernel/mac80211/patches/600-0023-rt2x00-rt2800lib-hardcode-txmixer-gain-values-to-zer.patch
package/kernel/mac80211/patches/600-0026-rt2x00-rt2800lib-use-correct-beacon-count-for-RT3883.patch
package/kernel/mac80211/patches/600-0027-rt2x00-rt2800lib-fix-antenna-configuration-for-RT388.patch
package/kernel/mac80211/patches/600-0028-rt2x00-rt2800lib-fix-LNA-gain-configuration-for-RT38.patch
package/kernel/mac80211/patches/600-0029-rt2x00-rt2800lib-fix-VGC-setup-for-RT3883.patch
package/kernel/mac80211/patches/600-0030-rt2x00-rt2800lib-fix-EEPROM-LNA-validation-for-RT388.patch
package/kernel/mac80211/patches/600-0031-rt2x00-rt2800lib-fix-txpower-compensation-for-RT3883.patch
package/kernel/mac80211/patches/600-0032-rt2x00-rt2800lib-enable-RT2800_HAS_HIGH_SHARED_MEM-f.patch
package/kernel/mac80211/patches/603-rt2x00-introduce-rt2x00eeprom.patch
package/kernel/mac80211/patches/607-rt2x00-allow_disabling_bands_through_platform_data.patch
package/kernel/mac80211/patches/608-add_platform_data_mac_addr.patch
package/kernel/mac80211/patches/610-rt2x00-fix-rt3352-ext-pa.patch
package/kernel/mac80211/patches/611-rt2x00-rf_vals-rt3352-xtal20.patch
package/kernel/mac80211/patches/615-rt2x00-fix_20mhz_clk.patch
package/kernel/mac80211/patches/616-rt2x00-support-rt5350.patch
package/kernel/mac80211/patches/619-rt2x00-change-led-polarity-from-OF.patch
package/kernel/mac80211/patches/620-rt2x00-add-AP+STA-support.patch
package/kernel/mac80211/patches/620-rt2x00-rt3352-rf-id.patch

index c621ddbdacdb398eb3c14d71ad73536b08407ea8..a1750e6e30c1b18f87d0ec1212bad24a3d458691 100644 (file)
@@ -1,3 +1,66 @@
+commit f3831a4e3903dbc1a57d5df56deb6a143fd001bc
+Author: Stanislaw Gruszka <sgruszka@redhat.com>
+Date:   Thu Jun 5 13:52:27 2014 +0200
+
+    rt2x00: do not initialize BCN_OFFSET registers
+    
+    We setup BCN_OFFSET{0,1} registers dynamically, don't have to
+    initialize them.
+    
+    Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
+
+commit e5c58ca7a48d4c82f282749a978052c47fd95998
+Author: Stanislaw Gruszka <sgruszka@redhat.com>
+Date:   Thu Jun 5 13:52:26 2014 +0200
+
+    rt2x00: change order when stop beaconing
+    
+    When no beaconing is needed, first stop beacon queue (disable beaconing
+    globally) to avoid possible sending of not prepared beacon on short
+    period after clearing beacon and before stop of BCN queue.
+    
+    Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
+
+commit 382c1b9e03f52d0cd741ef1d942cad0f649f0744
+Author: Stanislaw Gruszka <sgruszka@redhat.com>
+Date:   Thu Jun 5 13:52:25 2014 +0200
+
+    rt2x00: change default MAC_BSSID_DW1_BSS_BCN_NUM
+    
+    We setup MAC_BSSID_DW1_BSS_BCN_NUM dynamically when numbers of active
+    beacons increase. Change default to 0 to tell hardware that we want to
+    send only one beacon as default.
+    
+    Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
+
+commit 3b400571dd033e46fa7e76c5bb92a3ce8198afa9
+Author: Stanislaw Gruszka <sgruszka@redhat.com>
+Date:   Thu Jun 5 13:52:24 2014 +0200
+
+    rt2x00: change beaconing setup on RT2800
+    
+    As reported by Matthias, on 5572 chip, even if we clear up TXWI
+    of corresponding beacon, hardware still try to send it or do other
+    action that increase power consumption peak up to 1A.
+    
+    To avoid the issue, setup beaconing dynamically by configuring offsets
+    of currently active beacons and MAC_BSSID_DW1_BSS_BCN_NUM variable,
+    which limit number of beacons that hardware will try to send.
+    
+    Reported-by: Matthias Fend <Matthias.Fend@wolfvision.net>
+    Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
+
+commit 916e591b2cc41f7e572992175ca56d866d7bc958
+Author: Stanislaw Gruszka <sgruszka@redhat.com>
+Date:   Thu Jun 5 13:52:23 2014 +0200
+
+    rt2x00: change beaconing locking
+    
+    This patch is needed for further changes to keep global variables
+    consistent when changing beaconing on diffrent vif's.
+    
+    Signed-off-by: Stanislaw Gruszka <sgruszka@redhat.com>
+
 commit 930b0dffd1731f3f418f9132faea720a23b7af61
 Author: Johannes Berg <johannes.berg@intel.com>
 Date:   Tue Jun 3 11:18:47 2014 +0200
@@ -384,3 +447,240 @@ Date:   Mon May 19 21:20:49 2014 +0200
                        spin_unlock(&sta->ps_lock);
                        return TX_CONTINUE;
                }
+--- a/drivers/net/wireless/rt2x00/rt2800lib.c
++++ b/drivers/net/wireless/rt2x00/rt2800lib.c
+@@ -947,6 +947,40 @@ static inline u8 rt2800_get_beacon_offse
+       return BEACON_BASE_TO_OFFSET(rt2800_hw_beacon_base(rt2x00dev, index));
+ }
++static void rt2800_update_beacons_setup(struct rt2x00_dev *rt2x00dev)
++{
++      struct data_queue *queue = rt2x00dev->bcn;
++      struct queue_entry *entry;
++      int i, bcn_num = 0;
++      u64 off, reg = 0;
++      u32 bssid_dw1;
++
++      /*
++       * Setup offsets of all active beacons in BCN_OFFSET{0,1} registers.
++       */
++      for (i = 0; i < queue->limit; i++) {
++              entry = &queue->entries[i];
++              if (!test_bit(ENTRY_BCN_ENABLED, &entry->flags))
++                      continue;
++              off = rt2800_get_beacon_offset(rt2x00dev, entry->entry_idx);
++              reg |= off << (8 * bcn_num);
++              bcn_num++;
++      }
++
++      WARN_ON_ONCE(bcn_num != rt2x00dev->intf_beaconing);
++
++      rt2800_register_write(rt2x00dev, BCN_OFFSET0, (u32) reg);
++      rt2800_register_write(rt2x00dev, BCN_OFFSET1, (u32) (reg >> 32));
++
++      /*
++       * H/W sends up to MAC_BSSID_DW1_BSS_BCN_NUM + 1 consecutive beacons.
++       */
++      rt2800_register_read(rt2x00dev, MAC_BSSID_DW1, &bssid_dw1);
++      rt2x00_set_field32(&bssid_dw1, MAC_BSSID_DW1_BSS_BCN_NUM,
++                         bcn_num > 0 ? bcn_num - 1 : 0);
++      rt2800_register_write(rt2x00dev, MAC_BSSID_DW1, bssid_dw1);
++}
++
+ void rt2800_write_beacon(struct queue_entry *entry, struct txentry_desc *txdesc)
+ {
+       struct rt2x00_dev *rt2x00dev = entry->queue->rt2x00dev;
+@@ -1003,6 +1037,12 @@ void rt2800_write_beacon(struct queue_en
+       rt2800_register_multiwrite(rt2x00dev, beacon_base, entry->skb->data,
+                                  entry->skb->len + padding_len);
++      __set_bit(ENTRY_BCN_ENABLED, &entry->flags);
++
++      /*
++       * Change global beacons settings.
++       */
++      rt2800_update_beacons_setup(rt2x00dev);
+       /*
+        * Restore beaconing state.
+@@ -1053,8 +1093,13 @@ void rt2800_clear_beacon(struct queue_en
+        * Clear beacon.
+        */
+       rt2800_clear_beacon_register(rt2x00dev, entry->entry_idx);
++      __clear_bit(ENTRY_BCN_ENABLED, &entry->flags);
+       /*
++       * Change global beacons settings.
++       */
++      rt2800_update_beacons_setup(rt2x00dev);
++      /*
+        * Restore beaconing state.
+        */
+       rt2800_register_write(rt2x00dev, BCN_TIME_CFG, orig_reg);
+@@ -1556,7 +1601,7 @@ void rt2800_config_intf(struct rt2x00_de
+               if (!is_zero_ether_addr((const u8 *)conf->bssid)) {
+                       reg = le32_to_cpu(conf->bssid[1]);
+                       rt2x00_set_field32(&reg, MAC_BSSID_DW1_BSS_ID_MASK, 3);
+-                      rt2x00_set_field32(&reg, MAC_BSSID_DW1_BSS_BCN_NUM, 7);
++                      rt2x00_set_field32(&reg, MAC_BSSID_DW1_BSS_BCN_NUM, 0);
+                       conf->bssid[1] = cpu_to_le32(reg);
+               }
+@@ -4517,28 +4562,6 @@ static int rt2800_init_registers(struct 
+       if (ret)
+               return ret;
+-      rt2800_register_read(rt2x00dev, BCN_OFFSET0, &reg);
+-      rt2x00_set_field32(&reg, BCN_OFFSET0_BCN0,
+-                         rt2800_get_beacon_offset(rt2x00dev, 0));
+-      rt2x00_set_field32(&reg, BCN_OFFSET0_BCN1,
+-                         rt2800_get_beacon_offset(rt2x00dev, 1));
+-      rt2x00_set_field32(&reg, BCN_OFFSET0_BCN2,
+-                         rt2800_get_beacon_offset(rt2x00dev, 2));
+-      rt2x00_set_field32(&reg, BCN_OFFSET0_BCN3,
+-                         rt2800_get_beacon_offset(rt2x00dev, 3));
+-      rt2800_register_write(rt2x00dev, BCN_OFFSET0, reg);
+-
+-      rt2800_register_read(rt2x00dev, BCN_OFFSET1, &reg);
+-      rt2x00_set_field32(&reg, BCN_OFFSET1_BCN4,
+-                         rt2800_get_beacon_offset(rt2x00dev, 4));
+-      rt2x00_set_field32(&reg, BCN_OFFSET1_BCN5,
+-                         rt2800_get_beacon_offset(rt2x00dev, 5));
+-      rt2x00_set_field32(&reg, BCN_OFFSET1_BCN6,
+-                         rt2800_get_beacon_offset(rt2x00dev, 6));
+-      rt2x00_set_field32(&reg, BCN_OFFSET1_BCN7,
+-                         rt2800_get_beacon_offset(rt2x00dev, 7));
+-      rt2800_register_write(rt2x00dev, BCN_OFFSET1, reg);
+-
+       rt2800_register_write(rt2x00dev, LEGACY_BASIC_RATE, 0x0000013f);
+       rt2800_register_write(rt2x00dev, HT_BASIC_RATE, 0x00008003);
+--- a/drivers/net/wireless/rt2x00/rt2x00dev.c
++++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
+@@ -141,8 +141,11 @@ static void rt2x00lib_intf_scheduled_ite
+       if (!test_bit(DEVICE_STATE_ENABLED_RADIO, &rt2x00dev->flags))
+               return;
+-      if (test_and_clear_bit(DELAYED_UPDATE_BEACON, &intf->delayed_flags))
++      if (test_and_clear_bit(DELAYED_UPDATE_BEACON, &intf->delayed_flags)) {
++              mutex_lock(&intf->beacon_skb_mutex);
+               rt2x00queue_update_beacon(rt2x00dev, vif);
++              mutex_unlock(&intf->beacon_skb_mutex);
++      }
+ }
+ static void rt2x00lib_intf_scheduled(struct work_struct *work)
+@@ -216,7 +219,7 @@ static void rt2x00lib_beaconupdate_iter(
+        * never be called for USB devices.
+        */
+       WARN_ON(rt2x00_is_usb(rt2x00dev));
+-      rt2x00queue_update_beacon_locked(rt2x00dev, vif);
++      rt2x00queue_update_beacon(rt2x00dev, vif);
+ }
+ void rt2x00lib_beacondone(struct rt2x00_dev *rt2x00dev)
+--- a/drivers/net/wireless/rt2x00/rt2x00mac.c
++++ b/drivers/net/wireless/rt2x00/rt2x00mac.c
+@@ -624,25 +624,24 @@ void rt2x00mac_bss_info_changed(struct i
+        * Start/stop beaconing.
+        */
+       if (changes & BSS_CHANGED_BEACON_ENABLED) {
++              mutex_lock(&intf->beacon_skb_mutex);
+               if (!bss_conf->enable_beacon && intf->enable_beacon) {
+                       rt2x00dev->intf_beaconing--;
+                       intf->enable_beacon = false;
+-                      /*
+-                       * Clear beacon in the H/W for this vif. This is needed
+-                       * to disable beaconing on this particular interface
+-                       * and keep it running on other interfaces.
+-                       */
+-                      rt2x00queue_clear_beacon(rt2x00dev, vif);
+                       if (rt2x00dev->intf_beaconing == 0) {
+                               /*
+                                * Last beaconing interface disabled
+                                * -> stop beacon queue.
+                                */
+-                              mutex_lock(&intf->beacon_skb_mutex);
+                               rt2x00queue_stop_queue(rt2x00dev->bcn);
+-                              mutex_unlock(&intf->beacon_skb_mutex);
+                       }
++                      /*
++                       * Clear beacon in the H/W for this vif. This is needed
++                       * to disable beaconing on this particular interface
++                       * and keep it running on other interfaces.
++                       */
++                      rt2x00queue_clear_beacon(rt2x00dev, vif);
+               } else if (bss_conf->enable_beacon && !intf->enable_beacon) {
+                       rt2x00dev->intf_beaconing++;
+                       intf->enable_beacon = true;
+@@ -658,11 +657,10 @@ void rt2x00mac_bss_info_changed(struct i
+                                * First beaconing interface enabled
+                                * -> start beacon queue.
+                                */
+-                              mutex_lock(&intf->beacon_skb_mutex);
+                               rt2x00queue_start_queue(rt2x00dev->bcn);
+-                              mutex_unlock(&intf->beacon_skb_mutex);
+                       }
+               }
++              mutex_unlock(&intf->beacon_skb_mutex);
+       }
+       /*
+--- a/drivers/net/wireless/rt2x00/rt2x00queue.c
++++ b/drivers/net/wireless/rt2x00/rt2x00queue.c
+@@ -754,8 +754,6 @@ int rt2x00queue_clear_beacon(struct rt2x
+       if (unlikely(!intf->beacon))
+               return -ENOBUFS;
+-      mutex_lock(&intf->beacon_skb_mutex);
+-
+       /*
+        * Clean up the beacon skb.
+        */
+@@ -768,13 +766,11 @@ int rt2x00queue_clear_beacon(struct rt2x
+       if (rt2x00dev->ops->lib->clear_beacon)
+               rt2x00dev->ops->lib->clear_beacon(intf->beacon);
+-      mutex_unlock(&intf->beacon_skb_mutex);
+-
+       return 0;
+ }
+-int rt2x00queue_update_beacon_locked(struct rt2x00_dev *rt2x00dev,
+-                                   struct ieee80211_vif *vif)
++int rt2x00queue_update_beacon(struct rt2x00_dev *rt2x00dev,
++                            struct ieee80211_vif *vif)
+ {
+       struct rt2x00_intf *intf = vif_to_intf(vif);
+       struct skb_frame_desc *skbdesc;
+@@ -815,19 +811,6 @@ int rt2x00queue_update_beacon_locked(str
+ }
+-int rt2x00queue_update_beacon(struct rt2x00_dev *rt2x00dev,
+-                            struct ieee80211_vif *vif)
+-{
+-      struct rt2x00_intf *intf = vif_to_intf(vif);
+-      int ret;
+-
+-      mutex_lock(&intf->beacon_skb_mutex);
+-      ret = rt2x00queue_update_beacon_locked(rt2x00dev, vif);
+-      mutex_unlock(&intf->beacon_skb_mutex);
+-
+-      return ret;
+-}
+-
+ bool rt2x00queue_for_each_entry(struct data_queue *queue,
+                               enum queue_index start,
+                               enum queue_index end,
+--- a/drivers/net/wireless/rt2x00/rt2x00queue.h
++++ b/drivers/net/wireless/rt2x00/rt2x00queue.h
+@@ -353,6 +353,7 @@ struct txentry_desc {
+  */
+ enum queue_entry_flags {
+       ENTRY_BCN_ASSIGNED,
++      ENTRY_BCN_ENABLED,
+       ENTRY_OWNER_DEVICE_DATA,
+       ENTRY_DATA_PENDING,
+       ENTRY_DATA_IO_FAILED,
index 98c9203f132085ed0ba6d1106f7a016becdd5931..60d4c554cdce9266a66dc2ecefedc6dfd9b0915c 100644 (file)
@@ -24,7 +24,7 @@ Changes since v1:
 
 --- a/drivers/net/wireless/rt2x00/rt2800lib.c
 +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
-@@ -7711,6 +7711,7 @@ static int rt2800_probe_rt(struct rt2x00
+@@ -7734,6 +7734,7 @@ static int rt2800_probe_rt(struct rt2x00
  
  int rt2800_probe_hw(struct rt2x00_dev *rt2x00dev)
  {
@@ -32,7 +32,7 @@ Changes since v1:
        int retval;
        u32 reg;
  
-@@ -7718,6 +7719,9 @@ int rt2800_probe_hw(struct rt2x00_dev *r
+@@ -7741,6 +7742,9 @@ int rt2800_probe_hw(struct rt2x00_dev *r
        if (retval)
                return retval;
  
index 97e213fb52169194340c8b92735b16aa58a6addb..2accf73b67e799b1cc3fe64c5861419faf036bee 100644 (file)
@@ -69,7 +69,7 @@ Changes since v1: ---
                rt2800_mcu_request(rt2x00dev, MCU_BOOT_SIGNAL, 0, 0, 0);
        }
        msleep(1);
-@@ -1001,8 +1011,10 @@ void rt2800_write_beacon(struct queue_en
+@@ -1035,8 +1045,10 @@ void rt2800_write_beacon(struct queue_en
  
        beacon_base = rt2800_hw_beacon_base(rt2x00dev, entry->entry_idx);
  
@@ -77,10 +77,10 @@ Changes since v1: ---
        rt2800_register_multiwrite(rt2x00dev, beacon_base, entry->skb->data,
                                   entry->skb->len + padding_len);
 +      rt2800_shared_mem_unlock(rt2x00dev);
+       __set_bit(ENTRY_BCN_ENABLED, &entry->flags);
  
        /*
-        * Restore beaconing state.
-@@ -1026,6 +1038,8 @@ static inline void rt2800_clear_beacon_r
+@@ -1066,6 +1078,8 @@ static inline void rt2800_clear_beacon_r
  
        beacon_base = rt2800_hw_beacon_base(rt2x00dev, index);
  
@@ -89,7 +89,7 @@ Changes since v1: ---
        /*
         * For the Beacon base registers we only need to clear
         * the whole TXWI which (when set to 0) will invalidate
-@@ -1033,6 +1047,8 @@ static inline void rt2800_clear_beacon_r
+@@ -1073,6 +1087,8 @@ static inline void rt2800_clear_beacon_r
         */
        for (i = 0; i < txwi_desc_size; i += sizeof(__le32))
                rt2800_register_write(rt2x00dev, beacon_base + i, 0);
@@ -98,7 +98,7 @@ Changes since v1: ---
  }
  
  void rt2800_clear_beacon(struct queue_entry *entry)
-@@ -1216,7 +1232,9 @@ static void rt2800_delete_wcid_attr(stru
+@@ -1261,7 +1277,9 @@ static void rt2800_delete_wcid_attr(stru
  {
        u32 offset;
        offset = MAC_WCID_ATTR_ENTRY(wcid);
@@ -108,7 +108,7 @@ Changes since v1: ---
  }
  
  static void rt2800_config_wcid_attr_bssidx(struct rt2x00_dev *rt2x00dev,
-@@ -1229,11 +1247,13 @@ static void rt2800_config_wcid_attr_bssi
+@@ -1274,11 +1292,13 @@ static void rt2800_config_wcid_attr_bssi
         * The BSS Idx numbers is split in a main value of 3 bits,
         * and a extended field for adding one additional bit to the value.
         */
@@ -122,7 +122,7 @@ Changes since v1: ---
  }
  
  static void rt2800_config_wcid_attr_cipher(struct rt2x00_dev *rt2x00dev,
-@@ -1246,6 +1266,7 @@ static void rt2800_config_wcid_attr_ciph
+@@ -1291,6 +1311,7 @@ static void rt2800_config_wcid_attr_ciph
  
        offset = MAC_WCID_ATTR_ENTRY(key->hw_key_idx);
  
@@ -130,7 +130,7 @@ Changes since v1: ---
        if (crypto->cmd == SET_KEY) {
                rt2800_register_read(rt2x00dev, offset, &reg);
                rt2x00_set_field32(&reg, MAC_WCID_ATTRIBUTE_KEYTAB,
-@@ -1270,6 +1291,7 @@ static void rt2800_config_wcid_attr_ciph
+@@ -1315,6 +1336,7 @@ static void rt2800_config_wcid_attr_ciph
                rt2x00_set_field32(&reg, MAC_WCID_ATTRIBUTE_RX_WIUDF, 0);
                rt2800_register_write(rt2x00dev, offset, reg);
        }
@@ -138,7 +138,7 @@ Changes since v1: ---
  
        offset = MAC_IVEIV_ENTRY(key->hw_key_idx);
  
-@@ -1279,8 +1301,11 @@ static void rt2800_config_wcid_attr_ciph
+@@ -1324,8 +1346,11 @@ static void rt2800_config_wcid_attr_ciph
            (crypto->cipher == CIPHER_AES))
                iveiv_entry.iv[3] |= 0x20;
        iveiv_entry.iv[3] |= key->keyidx << 6;
@@ -150,7 +150,7 @@ Changes since v1: ---
  }
  
  int rt2800_config_shared_key(struct rt2x00_dev *rt2x00dev,
-@@ -1303,8 +1328,11 @@ int rt2800_config_shared_key(struct rt2x
+@@ -1348,8 +1373,11 @@ int rt2800_config_shared_key(struct rt2x
                       sizeof(key_entry.rx_mic));
  
                offset = SHARED_KEY_ENTRY(key->hw_key_idx);
@@ -162,7 +162,7 @@ Changes since v1: ---
        }
  
        /*
-@@ -1319,10 +1347,12 @@ int rt2800_config_shared_key(struct rt2x
+@@ -1364,10 +1392,12 @@ int rt2800_config_shared_key(struct rt2x
  
        offset = SHARED_KEY_MODE_ENTRY(key->hw_key_idx / 8);
  
@@ -175,7 +175,7 @@ Changes since v1: ---
  
        /*
         * Update WCID information
-@@ -1392,8 +1422,11 @@ int rt2800_config_pairwise_key(struct rt
+@@ -1437,8 +1467,11 @@ int rt2800_config_pairwise_key(struct rt
                       sizeof(key_entry.rx_mic));
  
                offset = PAIRWISE_KEY_ENTRY(key->hw_key_idx);
@@ -187,7 +187,7 @@ Changes since v1: ---
        }
  
        /*
-@@ -4875,14 +4908,19 @@ static int rt2800_init_registers(struct 
+@@ -4898,14 +4931,19 @@ static int rt2800_init_registers(struct 
        /*
         * ASIC will keep garbage value after boot, clear encryption keys.
         */
@@ -207,7 +207,7 @@ Changes since v1: ---
        }
  
        /*
-@@ -5008,8 +5046,10 @@ static int rt2800_wait_bbp_ready(struct 
+@@ -5031,8 +5069,10 @@ static int rt2800_wait_bbp_ready(struct 
         * BBP was enabled after firmware was loaded,
         * but we need to reactivate it now.
         */
@@ -218,7 +218,7 @@ Changes since v1: ---
        msleep(1);
  
        for (i = 0; i < REGISTER_BUSY_COUNT; i++) {
-@@ -6705,11 +6745,19 @@ int rt2800_enable_radio(struct rt2x00_de
+@@ -6728,11 +6768,19 @@ int rt2800_enable_radio(struct rt2x00_de
        /*
         * Send signal during boot time to initialize firmware.
         */
@@ -239,7 +239,7 @@ Changes since v1: ---
        msleep(1);
  
        /*
-@@ -7715,6 +7763,8 @@ int rt2800_probe_hw(struct rt2x00_dev *r
+@@ -7738,6 +7786,8 @@ int rt2800_probe_hw(struct rt2x00_dev *r
        int retval;
        u32 reg;
  
@@ -248,7 +248,7 @@ Changes since v1: ---
        retval = rt2800_probe_rt(rt2x00dev);
        if (retval)
                return retval;
-@@ -7794,8 +7844,11 @@ void rt2800_get_tkip_seq(struct ieee8021
+@@ -7817,8 +7867,11 @@ void rt2800_get_tkip_seq(struct ieee8021
        u32 offset;
  
        offset = MAC_IVEIV_ENTRY(hw_key_idx);
index 5cb6eaec6bbb390b01b62ff3e45de65ba4a9e351..7167f283c422fd6cb6650ffcfa80c9c423edd28a 100644 (file)
@@ -98,7 +98,7 @@ Changes since v1: ---
        return HW_BEACON_BASE(index);
  }
  
-@@ -1012,8 +1048,12 @@ void rt2800_write_beacon(struct queue_en
+@@ -1046,8 +1082,12 @@ void rt2800_write_beacon(struct queue_en
        beacon_base = rt2800_hw_beacon_base(rt2x00dev, entry->entry_idx);
  
        rt2800_shared_mem_lock(rt2x00dev);
@@ -109,9 +109,9 @@ Changes since v1: ---
 +      rt2800_deselect_beacon_mem(rt2x00dev);
 +
        rt2800_shared_mem_unlock(rt2x00dev);
+       __set_bit(ENTRY_BCN_ENABLED, &entry->flags);
  
-       /*
-@@ -1040,6 +1080,8 @@ static inline void rt2800_clear_beacon_r
+@@ -1080,6 +1120,8 @@ static inline void rt2800_clear_beacon_r
  
        rt2800_shared_mem_lock(rt2x00dev);
  
@@ -120,7 +120,7 @@ Changes since v1: ---
        /*
         * For the Beacon base registers we only need to clear
         * the whole TXWI which (when set to 0) will invalidate
-@@ -1048,6 +1090,8 @@ static inline void rt2800_clear_beacon_r
+@@ -1088,6 +1130,8 @@ static inline void rt2800_clear_beacon_r
        for (i = 0; i < txwi_desc_size; i += sizeof(__le32))
                rt2800_register_write(rt2x00dev, beacon_base + i, 0);
  
index d832f99404b4224cb2abd6db2c44a900feeee500..0b509df128c9033ec9eba82aaaad2cf29c52832f 100644 (file)
@@ -24,7 +24,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- a/drivers/net/wireless/rt2x00/rt2800lib.c
 +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
-@@ -4583,6 +4583,7 @@ EXPORT_SYMBOL_GPL(rt2800_link_tuner);
+@@ -4628,6 +4628,7 @@ EXPORT_SYMBOL_GPL(rt2800_link_tuner);
   */
  static int rt2800_init_registers(struct rt2x00_dev *rt2x00dev)
  {
@@ -32,7 +32,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
        u32 reg;
        u16 eeprom;
        unsigned int i;
-@@ -4970,7 +4971,7 @@ static int rt2800_init_registers(struct 
+@@ -4993,7 +4994,7 @@ static int rt2800_init_registers(struct 
        /*
         * Clear all beacons
         */
@@ -41,7 +41,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
                rt2800_clear_beacon_register(rt2x00dev, i);
  
        if (rt2x00_is_usb(rt2x00dev)) {
-@@ -7816,6 +7817,8 @@ int rt2800_probe_hw(struct rt2x00_dev *r
+@@ -7839,6 +7840,8 @@ int rt2800_probe_hw(struct rt2x00_dev *r
        if (rt2x00_rt(rt2x00dev, RT3593))
                __set_bit(RT2800_HAS_HIGH_SHARED_MEM, &drv_data->rt2800_flags);
  
index 040c69c92808d26d1939d3a0d069d3523193ec9b..95f44b524ee22c351af8f3fc009027530b0858ac 100644 (file)
@@ -34,9 +34,9 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
   */
 --- a/drivers/net/wireless/rt2x00/rt2800lib.c
 +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
-@@ -4617,6 +4617,30 @@ static int rt2800_init_registers(struct 
-                          rt2800_get_beacon_offset(rt2x00dev, 7));
-       rt2800_register_write(rt2x00dev, BCN_OFFSET1, reg);
+@@ -4640,6 +4640,30 @@ static int rt2800_init_registers(struct 
+       if (ret)
+               return ret;
  
 +      if (drv_data->hw_beacon_count == 16) {
 +              rt2800_register_read(rt2x00dev, BCN_OFFSET2, &reg);
index 752cd8931543b3c3ea4710d43e5c8f91d164441f..303d2bedb25f7ea0ee9fab508d115a883109faf5 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- a/drivers/net/wireless/rt2x00/rt2800lib.c
 +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
-@@ -7841,7 +7841,10 @@ int rt2800_probe_hw(struct rt2x00_dev *r
+@@ -7864,7 +7864,10 @@ int rt2800_probe_hw(struct rt2x00_dev *r
        if (rt2x00_rt(rt2x00dev, RT3593))
                __set_bit(RT2800_HAS_HIGH_SHARED_MEM, &drv_data->rt2800_flags);
  
index 8cb93ecb606df9eb9148cb654f32fd4667c684f6..848d95f02889774554b6da4b5cc6dd9b4ded8a67 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- a/drivers/net/wireless/rt2x00/rt2800lib.c
 +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
-@@ -7811,6 +7811,7 @@ static int rt2800_probe_rt(struct rt2x00
+@@ -7834,6 +7834,7 @@ static int rt2800_probe_rt(struct rt2x00
        case RT3390:
        case RT3572:
        case RT3593:
index e85ae979cc0870ec92dda19ebee824064765ee2c..4ccd47f05d6ac0bcb520383d57e40aa228a547d1 100644 (file)
@@ -31,7 +31,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
  #define RF5372                                0x5372
 --- a/drivers/net/wireless/rt2x00/rt2800lib.c
 +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
-@@ -7431,6 +7431,66 @@ static const struct rf_channel rf_vals_3
+@@ -7454,6 +7454,66 @@ static const struct rf_channel rf_vals_3
        {173, 0x61, 0, 9},
  };
  
@@ -98,7 +98,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
  static const struct rf_channel rf_vals_5592_xtal20[] = {
        /* Channel, N, K, mod, R */
        {1, 482, 4, 10, 3},
-@@ -7659,6 +7719,11 @@ static int rt2800_probe_hw_mode(struct r
+@@ -7682,6 +7742,11 @@ static int rt2800_probe_hw_mode(struct r
                spec->channels = rf_vals_3x;
                break;
  
index 898e38597a4a79f3e809f0b15791bb7b4e8d9c5a..7dbfd7fbb479271b5a540cdf39f25e16cbb6a90a 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- a/drivers/net/wireless/rt2x00/rt2800lib.c
 +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
-@@ -4348,6 +4348,7 @@ void rt2800_vco_calibration(struct rt2x0
+@@ -4393,6 +4393,7 @@ void rt2800_vco_calibration(struct rt2x0
        case RF3053:
        case RF3070:
        case RF3290:
@@ -18,7 +18,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
        case RF5360:
        case RF5370:
        case RF5372:
-@@ -7838,6 +7839,7 @@ static int rt2800_probe_hw_mode(struct r
+@@ -7861,6 +7862,7 @@ static int rt2800_probe_hw_mode(struct r
        case RF3053:
        case RF3070:
        case RF3290:
index 1de99ea1a9c1ace020fa704034ec60ba71dcc4d9..4c28f9b0c4d1138f522abdf05f30f6a8fb15dc9e 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- a/drivers/net/wireless/rt2x00/rt2800lib.c
 +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
-@@ -2604,6 +2604,211 @@ static void rt2800_config_channel_rf3053
+@@ -2649,6 +2649,211 @@ static void rt2800_config_channel_rf3053
        }
  }
  
@@ -223,7 +223,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
  #define POWER_BOUND           0x27
  #define POWER_BOUND_5G                0x2b
  
-@@ -3216,6 +3421,9 @@ static void rt2800_config_channel(struct
+@@ -3261,6 +3466,9 @@ static void rt2800_config_channel(struct
        case RF3322:
                rt2800_config_channel_rf3322(rt2x00dev, conf, rf, info);
                break;
index e7e17a949ec7ac4379b79f4d9c530804e86b2527..9419e62ce432c0fb5b33c124f7008e5c66d0c0a9 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- a/drivers/net/wireless/rt2x00/rt2800lib.c
 +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
-@@ -7397,6 +7397,7 @@ static int rt2800_init_eeprom(struct rt2
+@@ -7420,6 +7420,7 @@ static int rt2800_init_eeprom(struct rt2
        case RF3290:
        case RF3320:
        case RF3322:
index 95423d1755246fb8d3e7de59d9f98d7285476ee8..65c67205eed7d128fbb521fe0402b0aaff79542e 100644 (file)
@@ -35,7 +35,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
  #define RX_FILTER_CFG                 0x1400
 --- a/drivers/net/wireless/rt2x00/rt2800lib.c
 +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
-@@ -4972,6 +4972,12 @@ static int rt2800_init_registers(struct 
+@@ -4995,6 +4995,12 @@ static int rt2800_init_registers(struct 
                        rt2800_register_write(rt2x00dev, TX_SW_CFG2,
                                              0x00000000);
                }
@@ -48,7 +48,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
        } else if (rt2x00_rt(rt2x00dev, RT5390) ||
                   rt2x00_rt(rt2x00dev, RT5392) ||
                   rt2x00_rt(rt2x00dev, RT5592)) {
-@@ -5002,9 +5008,11 @@ static int rt2800_init_registers(struct 
+@@ -5025,9 +5031,11 @@ static int rt2800_init_registers(struct 
  
        rt2800_register_read(rt2x00dev, MAX_LEN_CFG, &reg);
        rt2x00_set_field32(&reg, MAX_LEN_CFG_MAX_MPDU, AGGREGATION_SIZE);
@@ -63,7 +63,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
                rt2x00_set_field32(&reg, MAX_LEN_CFG_MAX_PSDU, 2);
        else
                rt2x00_set_field32(&reg, MAX_LEN_CFG_MAX_PSDU, 1);
-@@ -5157,6 +5165,11 @@ static int rt2800_init_registers(struct 
+@@ -5180,6 +5188,11 @@ static int rt2800_init_registers(struct 
        reg = rt2x00_rt(rt2x00dev, RT5592) ? 0x00000082 : 0x00000002;
        rt2800_register_write(rt2x00dev, TXOP_HLDR_ET, reg);
  
index d9694da40d4adf26c6e51c24dae831f33084da83..bba96db057d35bdbf8ca319265567a06d2fb8ca4 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- a/drivers/net/wireless/rt2x00/rt2800lib.c
 +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
-@@ -5775,6 +5775,47 @@ static void rt2800_init_bbp_3593(struct 
+@@ -5798,6 +5798,47 @@ static void rt2800_init_bbp_3593(struct 
                rt2800_bbp_write(rt2x00dev, 103, 0xc0);
  }
  
@@ -59,7 +59,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
  static void rt2800_init_bbp_53xx(struct rt2x00_dev *rt2x00dev)
  {
        int ant, div_mode;
-@@ -5993,6 +6034,9 @@ static void rt2800_init_bbp(struct rt2x0
+@@ -6016,6 +6057,9 @@ static void rt2800_init_bbp(struct rt2x0
        case RT3593:
                rt2800_init_bbp_3593(rt2x00dev);
                return;
index dc45109afa30c1df51092d18bf6414a5dd460779..568e60eeae7df59be07033a7d14dd925195359cf 100644 (file)
@@ -21,7 +21,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
  /*
 --- a/drivers/net/wireless/rt2x00/rt2800lib.c
 +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
-@@ -6810,6 +6810,144 @@ static void rt2800_init_rfcsr_3593(struc
+@@ -6833,6 +6833,144 @@ static void rt2800_init_rfcsr_3593(struc
        /* TODO: enable stream mode support */
  }
  
@@ -166,7 +166,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
  static void rt2800_init_rfcsr_5390(struct rt2x00_dev *rt2x00dev)
  {
        rt2800_rf_init_calibration(rt2x00dev, 2);
-@@ -7041,6 +7179,9 @@ static void rt2800_init_rfcsr(struct rt2
+@@ -7064,6 +7202,9 @@ static void rt2800_init_rfcsr(struct rt2
        case RT3390:
                rt2800_init_rfcsr_3390(rt2x00dev);
                break;
index 4bfe8e16d1d2ad41f15ca094a66084d197db0b93..50fa94f8775df7e0a454a764a2dbeeed786adefd 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- a/drivers/net/wireless/rt2x00/rt2800lib.c
 +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
-@@ -7578,6 +7578,8 @@ static int rt2800_init_eeprom(struct rt2
+@@ -7601,6 +7601,8 @@ static int rt2800_init_eeprom(struct rt2
            rt2x00_rt(rt2x00dev, RT5390) ||
            rt2x00_rt(rt2x00dev, RT5392))
                rt2800_eeprom_read(rt2x00dev, EEPROM_CHIP_ID, &rf);
index 59b74adbe7c9a8cd17d224a4aa6d8a910afb75dd..e717baa4c44a123aaca649f53b9973390853ae91 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- a/drivers/net/wireless/rt2x00/rt2800lib.c
 +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
-@@ -3384,6 +3384,36 @@ static char rt2800_txpower_to_dev(struct
+@@ -3429,6 +3429,36 @@ static char rt2800_txpower_to_dev(struct
                return clamp_t(char, txpower, MIN_A_TXPOWER, MAX_A_TXPOWER);
  }
  
@@ -47,7 +47,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
  static void rt2800_config_channel(struct rt2x00_dev *rt2x00dev,
                                  struct ieee80211_conf *conf,
                                  struct rf_channel *rf,
-@@ -3402,6 +3432,12 @@ static void rt2800_config_channel(struct
+@@ -3447,6 +3477,12 @@ static void rt2800_config_channel(struct
                        rt2800_txpower_to_dev(rt2x00dev, rf->channel,
                                              info->default_power3);
  
@@ -60,7 +60,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
        switch (rt2x00dev->chip.rf) {
        case RF2020:
        case RF3020:
-@@ -3483,6 +3519,15 @@ static void rt2800_config_channel(struct
+@@ -3528,6 +3564,15 @@ static void rt2800_config_channel(struct
                rt2800_bbp_write(rt2x00dev, 63, 0x37 - rt2x00dev->lna_gain);
                rt2800_bbp_write(rt2x00dev, 64, 0x37 - rt2x00dev->lna_gain);
                rt2800_bbp_write(rt2x00dev, 77, 0x98);
@@ -76,7 +76,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
        } else {
                rt2800_bbp_write(rt2x00dev, 62, 0x37 - rt2x00dev->lna_gain);
                rt2800_bbp_write(rt2x00dev, 63, 0x37 - rt2x00dev->lna_gain);
-@@ -3495,6 +3540,7 @@ static void rt2800_config_channel(struct
+@@ -3540,6 +3585,7 @@ static void rt2800_config_channel(struct
                    !rt2x00_rt(rt2x00dev, RT5392)) {
                        if (rt2x00_has_cap_external_lna_bg(rt2x00dev)) {
                                rt2800_bbp_write(rt2x00dev, 82, 0x62);
@@ -84,7 +84,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
                                rt2800_bbp_write(rt2x00dev, 75, 0x46);
                        } else {
                                if (rt2x00_rt(rt2x00dev, RT3593))
-@@ -3503,19 +3549,22 @@ static void rt2800_config_channel(struct
+@@ -3548,19 +3594,22 @@ static void rt2800_config_channel(struct
                                        rt2800_bbp_write(rt2x00dev, 82, 0x84);
                                rt2800_bbp_write(rt2x00dev, 75, 0x50);
                        }
@@ -110,7 +110,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
                        rt2800_bbp_write(rt2x00dev, 83, 0x9a);
  
                if (rt2x00_has_cap_external_lna_a(rt2x00dev))
-@@ -3640,6 +3689,23 @@ static void rt2800_config_channel(struct
+@@ -3685,6 +3734,23 @@ static void rt2800_config_channel(struct
                usleep_range(1000, 1500);
        }
  
index e88a7c6f60f166d3e4e83d8da4c7d013db913d40..177312845fc2da11c8e8fdccd7fb25165609af94 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- a/drivers/net/wireless/rt2x00/rt2800lib.c
 +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
-@@ -3371,13 +3371,15 @@ static char rt2800_txpower_to_dev(struct
+@@ -3416,13 +3416,15 @@ static char rt2800_txpower_to_dev(struct
                                  unsigned int channel,
                                  char txpower)
  {
index 95484a0ca3be95746c61a1732dcc4b7538885e89..4956373d05abca08ac1ddfef6ab8ddc088f20e39 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- a/drivers/net/wireless/rt2x00/rt2800lib.c
 +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
-@@ -4581,7 +4581,8 @@ static void rt2800_config_txpower(struct
+@@ -4626,7 +4626,8 @@ static void rt2800_config_txpower(struct
                                  struct ieee80211_channel *chan,
                                  int power_level)
  {
index c57af608e4521b1b6ecfb547e231d188842097b1..a692fd82362141786030d298b0cb69416006f27e 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- a/drivers/net/wireless/rt2x00/rt2800lib.c
 +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
-@@ -7460,7 +7460,8 @@ static u8 rt2800_get_txmixer_gain_24g(st
+@@ -7483,7 +7483,8 @@ static u8 rt2800_get_txmixer_gain_24g(st
  {
        u16 word;
  
@@ -21,7 +21,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
                return 0;
  
        rt2800_eeprom_read(rt2x00dev, EEPROM_TXMIXER_GAIN_BG, &word);
-@@ -7474,7 +7475,8 @@ static u8 rt2800_get_txmixer_gain_5g(str
+@@ -7497,7 +7498,8 @@ static u8 rt2800_get_txmixer_gain_5g(str
  {
        u16 word;
  
index f606ed4b0d135f161f294bfca84ed14611ec16d4..f8fe496471bb5779691854d82f9c0a7ed7b811a6 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- a/drivers/net/wireless/rt2x00/rt2800lib.c
 +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
-@@ -8392,7 +8392,8 @@ int rt2800_probe_hw(struct rt2x00_dev *r
+@@ -8415,7 +8415,8 @@ int rt2800_probe_hw(struct rt2x00_dev *r
        if (rt2x00_rt(rt2x00dev, RT3593))
                __set_bit(RT2800_HAS_HIGH_SHARED_MEM, &drv_data->rt2800_flags);
  
index 4096493e0fee709628d3732c948c6727a256c048..22f7110a7e5422768d3c04128668053788b90046 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- a/drivers/net/wireless/rt2x00/rt2800lib.c
 +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
-@@ -1916,7 +1916,8 @@ void rt2800_config_ant(struct rt2x00_dev
+@@ -1961,7 +1961,8 @@ void rt2800_config_ant(struct rt2x00_dev
        rt2800_bbp_write(rt2x00dev, 3, r3);
        rt2800_bbp_write(rt2x00dev, 1, r1);
  
index 2fc9d9d23ab589dbf07585eca87473b7f46fe281..9945f38fbd295f77a316cefe5a1b2ab7d79c7dff 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- a/drivers/net/wireless/rt2x00/rt2800lib.c
 +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
-@@ -1939,7 +1939,8 @@ static void rt2800_config_lna_gain(struc
+@@ -1984,7 +1984,8 @@ static void rt2800_config_lna_gain(struc
                rt2800_eeprom_read(rt2x00dev, EEPROM_LNA, &eeprom);
                lna_gain = rt2x00_get_field16(eeprom, EEPROM_LNA_A0);
        } else if (libconf->rf.channel <= 128) {
@@ -20,7 +20,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
                        rt2800_eeprom_read(rt2x00dev, EEPROM_EXT_LNA2, &eeprom);
                        lna_gain = rt2x00_get_field16(eeprom,
                                                      EEPROM_EXT_LNA2_A1);
-@@ -1949,7 +1950,8 @@ static void rt2800_config_lna_gain(struc
+@@ -1994,7 +1995,8 @@ static void rt2800_config_lna_gain(struc
                                                      EEPROM_RSSI_BG2_LNA_A1);
                }
        } else {
index 060d4c6465962c14e0fb1ca4790c14106889d730..80b36686ef4f4c4c51f0b324ca72a2b73b000cd7 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- a/drivers/net/wireless/rt2x00/rt2800lib.c
 +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
-@@ -4780,7 +4780,8 @@ static u8 rt2800_get_default_vgc(struct 
+@@ -4825,7 +4825,8 @@ static u8 rt2800_get_default_vgc(struct 
                else
                        vgc = 0x2e + rt2x00dev->lna_gain;
        } else { /* 5GHZ band */
@@ -20,7 +20,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
                        vgc = 0x20 + (rt2x00dev->lna_gain * 5) / 3;
                else if (rt2x00_rt(rt2x00dev, RT5592))
                        vgc = 0x24 + (2 * rt2x00dev->lna_gain);
-@@ -4800,7 +4801,8 @@ static inline void rt2800_set_vgc(struct
+@@ -4845,7 +4846,8 @@ static inline void rt2800_set_vgc(struct
  {
        if (qual->vgc_level != vgc_level) {
                if (rt2x00_rt(rt2x00dev, RT3572) ||
@@ -30,7 +30,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
                        rt2800_bbp_write_with_rx_chain(rt2x00dev, 66,
                                                       vgc_level);
                } else if (rt2x00_rt(rt2x00dev, RT5592)) {
-@@ -4847,6 +4849,11 @@ void rt2800_link_tuner(struct rt2x00_dev
+@@ -4892,6 +4894,11 @@ void rt2800_link_tuner(struct rt2x00_dev
                }
                break;
  
index 3e9a7d9ad315d14330f88ec9d046a101d86d4a61..424acff635b3320d3e10fb1623692280ec8441a7 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- a/drivers/net/wireless/rt2x00/rt2800lib.c
 +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
-@@ -7597,7 +7597,8 @@ static int rt2800_validate_eeprom(struct
+@@ -7620,7 +7620,8 @@ static int rt2800_validate_eeprom(struct
        rt2800_eeprom_read(rt2x00dev, EEPROM_RSSI_BG2, &word);
        if (abs(rt2x00_get_field16(word, EEPROM_RSSI_BG2_OFFSET2)) > 10)
                rt2x00_set_field16(&word, EEPROM_RSSI_BG2_OFFSET2, 0);
@@ -20,7 +20,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
                if (rt2x00_get_field16(word, EEPROM_RSSI_BG2_LNA_A1) == 0x00 ||
                    rt2x00_get_field16(word, EEPROM_RSSI_BG2_LNA_A1) == 0xff)
                        rt2x00_set_field16(&word, EEPROM_RSSI_BG2_LNA_A1,
-@@ -7617,7 +7618,8 @@ static int rt2800_validate_eeprom(struct
+@@ -7640,7 +7641,8 @@ static int rt2800_validate_eeprom(struct
        rt2800_eeprom_read(rt2x00dev, EEPROM_RSSI_A2, &word);
        if (abs(rt2x00_get_field16(word, EEPROM_RSSI_A2_OFFSET2)) > 10)
                rt2x00_set_field16(&word, EEPROM_RSSI_A2_OFFSET2, 0);
@@ -30,7 +30,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
                if (rt2x00_get_field16(word, EEPROM_RSSI_A2_LNA_A2) == 0x00 ||
                    rt2x00_get_field16(word, EEPROM_RSSI_A2_LNA_A2) == 0xff)
                        rt2x00_set_field16(&word, EEPROM_RSSI_A2_LNA_A2,
-@@ -7625,7 +7627,8 @@ static int rt2800_validate_eeprom(struct
+@@ -7648,7 +7650,8 @@ static int rt2800_validate_eeprom(struct
        }
        rt2800_eeprom_write(rt2x00dev, EEPROM_RSSI_A2, word);
  
index b87f36aaa5763f4a0c893c9bbc6a2f4d1efea670..00be526ed050aa52a310a5173726d5cad0700b30 100644 (file)
@@ -10,7 +10,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- a/drivers/net/wireless/rt2x00/rt2800lib.c
 +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
-@@ -3958,6 +3958,9 @@ static u8 rt2800_compensate_txpower(stru
+@@ -4003,6 +4003,9 @@ static u8 rt2800_compensate_txpower(stru
        if (rt2x00_rt(rt2x00dev, RT3593))
                return min_t(u8, txpower, 0xc);
  
index 18d65e0ca1adc95105852631de15b4fd77dc8da1..7c4c1ab42b5c1f5a0286cdfd33c1c8be5ece8f23 100644 (file)
@@ -11,7 +11,7 @@ Signed-off-by: Gabor Juhos <juhosg@openwrt.org>
 
 --- a/drivers/net/wireless/rt2x00/rt2800lib.c
 +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
-@@ -8405,7 +8405,8 @@ int rt2800_probe_hw(struct rt2x00_dev *r
+@@ -8428,7 +8428,8 @@ int rt2800_probe_hw(struct rt2x00_dev *r
        if (retval)
                return retval;
  
index b7ba2af703de227c901f72c08df345e04f9bc546..e5ba10ed0805f749f4f7535660d1975e3f58acca 100644 (file)
        DECLARE_KFIFO_PTR(txstatus_fifo, u32);
 --- a/drivers/net/wireless/rt2x00/rt2x00dev.c
 +++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
-@@ -1324,6 +1324,10 @@ int rt2x00lib_probe_dev(struct rt2x00_de
+@@ -1327,6 +1327,10 @@ int rt2x00lib_probe_dev(struct rt2x00_de
        INIT_DELAYED_WORK(&rt2x00dev->autowakeup_work, rt2x00lib_autowakeup);
        INIT_WORK(&rt2x00dev->sleep_work, rt2x00lib_sleep);
  
        /*
         * Let the driver probe the device to detect the capabilities.
         */
-@@ -1454,6 +1458,11 @@ void rt2x00lib_remove_dev(struct rt2x00_
+@@ -1457,6 +1461,11 @@ void rt2x00lib_remove_dev(struct rt2x00_
         */
        if (rt2x00dev->drv_data)
                kfree(rt2x00dev->drv_data);
index 4116735982c3f2d2e90df5be81a684e1e726757b..70f7b783ad43f009479e8a6de0b12f5a579c2002 100644 (file)
@@ -12,7 +12,7 @@
  #endif /* _RT2X00_PLATFORM_H */
 --- a/drivers/net/wireless/rt2x00/rt2x00dev.c
 +++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
-@@ -937,6 +937,22 @@ static int rt2x00lib_probe_hw_modes(stru
+@@ -940,6 +940,22 @@ static int rt2x00lib_probe_hw_modes(stru
        unsigned int num_rates;
        unsigned int i;
  
index 1db09a324f09607d5734c9a00338837861ab7071..4c2a8b83322e8af516658e13800a5083a18bb129 100644 (file)
@@ -10,7 +10,7 @@
        int disable_5ghz;
 --- a/drivers/net/wireless/rt2x00/rt2x00dev.c
 +++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
-@@ -928,6 +928,18 @@ static void rt2x00lib_rate(struct ieee80
+@@ -931,6 +931,18 @@ static void rt2x00lib_rate(struct ieee80
                entry->flags |= IEEE80211_RATE_SHORT_PREAMBLE;
  }
  
index 725f81fea42386ed53f28b49517c0f187252fd93..010a9e2cfaf9f512a7f6a6d91317f483e4baa2c5 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/rt2x00/rt2800lib.c
 +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
-@@ -3505,11 +3505,18 @@ static void rt2800_config_channel(struct
+@@ -3550,11 +3550,18 @@ static void rt2800_config_channel(struct
        /*
         * Change BBP settings
         */
@@ -19,7 +19,7 @@
        } else if (rt2x00_rt(rt2x00dev, RT3593)) {
                if (rf->channel > 14) {
                        /* Disable CCK Packet detection on 5GHz */
-@@ -6585,6 +6592,12 @@ static void rt2800_init_rfcsr_3290(struc
+@@ -6608,6 +6615,12 @@ static void rt2800_init_rfcsr_3290(struc
  
  static void rt2800_init_rfcsr_3352(struct rt2x00_dev *rt2x00dev)
  {
@@ -32,7 +32,7 @@
        rt2800_rf_init_calibration(rt2x00dev, 30);
  
        rt2800_rfcsr_write(rt2x00dev, 0, 0xf0);
-@@ -6620,15 +6633,30 @@ static void rt2800_init_rfcsr_3352(struc
+@@ -6643,15 +6656,30 @@ static void rt2800_init_rfcsr_3352(struc
        rt2800_rfcsr_write(rt2x00dev, 31, 0x80);
        rt2800_rfcsr_write(rt2x00dev, 32, 0x80);
        rt2800_rfcsr_write(rt2x00dev, 33, 0x00);
@@ -66,7 +66,7 @@
        rt2800_rfcsr_write(rt2x00dev, 43, 0xdb);
        rt2800_rfcsr_write(rt2x00dev, 44, 0xdb);
        rt2800_rfcsr_write(rt2x00dev, 45, 0xdb);
-@@ -6636,15 +6664,20 @@ static void rt2800_init_rfcsr_3352(struc
+@@ -6659,15 +6687,20 @@ static void rt2800_init_rfcsr_3352(struc
        rt2800_rfcsr_write(rt2x00dev, 47, 0x0d);
        rt2800_rfcsr_write(rt2x00dev, 48, 0x14);
        rt2800_rfcsr_write(rt2x00dev, 49, 0x00);
@@ -96,7 +96,7 @@
        rt2800_rfcsr_write(rt2x00dev, 59, 0x00);
        rt2800_rfcsr_write(rt2x00dev, 60, 0x00);
        rt2800_rfcsr_write(rt2x00dev, 61, 0x00);
-@@ -7665,6 +7698,7 @@ static int rt2800_init_eeprom(struct rt2
+@@ -7688,6 +7721,7 @@ static int rt2800_init_eeprom(struct rt2
         * RT53xx: defined in "EEPROM_CHIP_ID" field
         */
        if (rt2x00_rt(rt2x00dev, RT3290) ||
            rt2x00_rt(rt2x00dev, RT5390) ||
            rt2x00_rt(rt2x00dev, RT5392))
                rt2800_eeprom_read(rt2x00dev, EEPROM_CHIP_ID, &rf);
-@@ -7759,7 +7793,8 @@ static int rt2800_init_eeprom(struct rt2
+@@ -7782,7 +7816,8 @@ static int rt2800_init_eeprom(struct rt2
        /*
         * Detect if this device has Bluetooth co-existence.
         */
                __set_bit(CAPABILITY_BT_COEXIST, &rt2x00dev->cap_flags);
  
        /*
-@@ -7788,6 +7823,22 @@ static int rt2800_init_eeprom(struct rt2
+@@ -7811,6 +7846,22 @@ static int rt2800_init_eeprom(struct rt2
                                        EIRP_MAX_TX_POWER_LIMIT)
                __set_bit(CAPABILITY_POWER_LIMIT, &rt2x00dev->cap_flags);
  
index 6b29aa83b4671db28aa81d15273d36a38bc34620..65af89a8e83c4f66c00255123d37a4541e437e9a 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/rt2x00/rt2800lib.c
 +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
-@@ -8175,6 +8175,27 @@ static const struct rf_channel rf_vals_5
+@@ -8198,6 +8198,27 @@ static const struct rf_channel rf_vals_5
        {196, 83, 0, 12, 1},
  };
  
@@ -28,7 +28,7 @@
  static int rt2800_probe_hw_mode(struct rt2x00_dev *rt2x00dev)
  {
        struct hw_mode_spec *spec = &rt2x00dev->spec;
-@@ -8262,7 +8283,10 @@ static int rt2800_probe_hw_mode(struct r
+@@ -8285,7 +8306,10 @@ static int rt2800_probe_hw_mode(struct r
        case RF5390:
        case RF5392:
                spec->num_channels = 14;
@@ -40,7 +40,7 @@
                break;
  
        case RF3052:
-@@ -8445,6 +8469,19 @@ static int rt2800_probe_rt(struct rt2x00
+@@ -8468,6 +8492,19 @@ static int rt2800_probe_rt(struct rt2x00
        return 0;
  }
  
@@ -60,7 +60,7 @@
  int rt2800_probe_hw(struct rt2x00_dev *rt2x00dev)
  {
        struct rt2800_drv_data *drv_data = rt2x00dev->drv_data;
-@@ -8487,6 +8524,15 @@ int rt2800_probe_hw(struct rt2x00_dev *r
+@@ -8510,6 +8547,15 @@ int rt2800_probe_hw(struct rt2x00_dev *r
        rt2800_register_write(rt2x00dev, GPIO_CTRL, reg);
  
        /*
index 07b2f84d5b0720dabfe74cc7ed7a04fbe8703ad2..d147d62ea04e7f869425f5ff4e20b008d4b3bcb2 100644 (file)
@@ -8,7 +8,7 @@
  
  #include "rt2x00.h"
  #include "rt2800lib.h"
-@@ -8471,13 +8472,14 @@ static int rt2800_probe_rt(struct rt2x00
+@@ -8494,13 +8495,14 @@ static int rt2800_probe_rt(struct rt2x00
  
  int rt2800_probe_clk(struct rt2x00_dev *rt2x00dev)
  {
index fd897e93c8ab3e9583e36451a2cbbefc867b59c1..41a7f34454a4c2fcd7c6675d72279c71638baab3 100644 (file)
@@ -10,7 +10,7 @@
  #define RF5372                                0x5372
 --- a/drivers/net/wireless/rt2x00/rt2800lib.c
 +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
-@@ -2993,6 +2993,13 @@ static void rt2800_config_channel_rf53xx
+@@ -3038,6 +3038,13 @@ static void rt2800_config_channel_rf53xx
  
                                rt2800_rfcsr_write(rt2x00dev, 59,
                                                   r59_non_bt[idx]);
@@ -24,7 +24,7 @@
                        }
                }
        }
-@@ -3471,6 +3478,7 @@ static void rt2800_config_channel(struct
+@@ -3516,6 +3523,7 @@ static void rt2800_config_channel(struct
                rt2800_config_channel_rf3853(rt2x00dev, conf, rf, info);
                break;
        case RF3070:
@@ -32,7 +32,7 @@
        case RF5360:
        case RF5370:
        case RF5372:
-@@ -3488,6 +3496,7 @@ static void rt2800_config_channel(struct
+@@ -3533,6 +3541,7 @@ static void rt2800_config_channel(struct
        if (rt2x00_rf(rt2x00dev, RF3070) ||
            rt2x00_rf(rt2x00dev, RF3290) ||
            rt2x00_rf(rt2x00dev, RF3322) ||
@@ -40,7 +40,7 @@
            rt2x00_rf(rt2x00dev, RF5360) ||
            rt2x00_rf(rt2x00dev, RF5370) ||
            rt2x00_rf(rt2x00dev, RF5372) ||
-@@ -3765,7 +3774,8 @@ static void rt2800_config_channel(struct
+@@ -3810,7 +3819,8 @@ static void rt2800_config_channel(struct
        /*
         * Clear update flag
         */
@@ -50,7 +50,7 @@
                rt2800_bbp_read(rt2x00dev, 49, &bbp);
                rt2x00_set_field8(&bbp, BBP49_UPDATE_FLAG, 0);
                rt2800_bbp_write(rt2x00dev, 49, bbp);
-@@ -4644,6 +4654,7 @@ void rt2800_vco_calibration(struct rt2x0
+@@ -4689,6 +4699,7 @@ void rt2800_vco_calibration(struct rt2x0
        case RF3070:
        case RF3290:
        case RF3853:
@@ -58,7 +58,7 @@
        case RF5360:
        case RF5370:
        case RF5372:
-@@ -5078,6 +5089,8 @@ static int rt2800_init_registers(struct 
+@@ -5101,6 +5112,8 @@ static int rt2800_init_registers(struct 
                rt2800_register_write(rt2x00dev, TX_SW_CFG0, 0x00000404);
                rt2800_register_write(rt2x00dev, TX_SW_CFG1, 0x00080606);
                rt2800_register_write(rt2x00dev, TX_SW_CFG2, 0x00000000);
@@ -67,7 +67,7 @@
        } else {
                rt2800_register_write(rt2x00dev, TX_SW_CFG0, 0x00000000);
                rt2800_register_write(rt2x00dev, TX_SW_CFG1, 0x00080606);
-@@ -5733,9 +5746,13 @@ static void rt2800_init_bbp_3352(struct 
+@@ -5756,9 +5769,13 @@ static void rt2800_init_bbp_3352(struct 
  
        rt2800_bbp_write(rt2x00dev, 82, 0x62);
  
@@ -84,7 +84,7 @@
  
        rt2800_bbp_write(rt2x00dev, 86, 0x38);
  
-@@ -5749,9 +5766,13 @@ static void rt2800_init_bbp_3352(struct 
+@@ -5772,9 +5789,13 @@ static void rt2800_init_bbp_3352(struct 
  
        rt2800_bbp_write(rt2x00dev, 104, 0x92);
  
  
        rt2800_bbp_write(rt2x00dev, 120, 0x50);
  
-@@ -5776,6 +5797,13 @@ static void rt2800_init_bbp_3352(struct 
+@@ -5799,6 +5820,13 @@ static void rt2800_init_bbp_3352(struct 
        rt2800_bbp_write(rt2x00dev, 143, 0xa2);
  
        rt2800_bbp_write(rt2x00dev, 148, 0xc8);
  }
  
  static void rt2800_init_bbp_3390(struct rt2x00_dev *rt2x00dev)
-@@ -6117,6 +6145,7 @@ static void rt2800_init_bbp(struct rt2x0
+@@ -6140,6 +6168,7 @@ static void rt2800_init_bbp(struct rt2x0
                rt2800_init_bbp_3290(rt2x00dev);
                break;
        case RT3352:
                rt2800_init_bbp_3352(rt2x00dev);
                break;
        case RT3390:
-@@ -7068,6 +7097,76 @@ static void rt2800_init_rfcsr_3883(struc
+@@ -7091,6 +7120,76 @@ static void rt2800_init_rfcsr_3883(struc
        rt2800_rfcsr_write(rt2x00dev, 20, rfcsr);
  }
  
  static void rt2800_init_rfcsr_5390(struct rt2x00_dev *rt2x00dev)
  {
        rt2800_rf_init_calibration(rt2x00dev, 2);
-@@ -7308,6 +7407,9 @@ static void rt2800_init_rfcsr(struct rt2
+@@ -7331,6 +7430,9 @@ static void rt2800_init_rfcsr(struct rt2
        case RT3593:
                rt2800_init_rfcsr_3593(rt2x00dev);
                break;
        case RT5390:
                rt2800_init_rfcsr_5390(rt2x00dev);
                break;
-@@ -7567,6 +7669,12 @@ static int rt2800_validate_eeprom(struct
+@@ -7590,6 +7692,12 @@ static int rt2800_validate_eeprom(struct
                rt2x00_set_field16(&word, EEPROM_NIC_CONF0_RF_TYPE, RF2820);
                rt2800_eeprom_write(rt2x00dev, EEPROM_NIC_CONF0, word);
                rt2x00_eeprom_dbg(rt2x00dev, "Antenna: 0x%04x\n", word);
        } else if (rt2x00_rt(rt2x00dev, RT2860) ||
                   rt2x00_rt(rt2x00dev, RT2872)) {
                /*
-@@ -7705,6 +7813,8 @@ static int rt2800_init_eeprom(struct rt2
+@@ -7728,6 +7836,8 @@ static int rt2800_init_eeprom(struct rt2
                rt2800_eeprom_read(rt2x00dev, EEPROM_CHIP_ID, &rf);
        else if (rt2x00_rt(rt2x00dev, RT3883))
                rf = RF3853;
        else
                rf = rt2x00_get_field16(eeprom, EEPROM_NIC_CONF0_RF_TYPE);
  
-@@ -7724,6 +7834,7 @@ static int rt2800_init_eeprom(struct rt2
+@@ -7747,6 +7857,7 @@ static int rt2800_init_eeprom(struct rt2
        case RF3320:
        case RF3322:
        case RF3853:
        case RF5360:
        case RF5370:
        case RF5372:
-@@ -8278,6 +8389,7 @@ static int rt2800_probe_hw_mode(struct r
+@@ -8301,6 +8412,7 @@ static int rt2800_probe_hw_mode(struct r
        case RF3290:
        case RF3320:
        case RF3322:
        case RF5360:
        case RF5370:
        case RF5372:
-@@ -8416,6 +8528,7 @@ static int rt2800_probe_hw_mode(struct r
+@@ -8439,6 +8551,7 @@ static int rt2800_probe_hw_mode(struct r
        case RF3070:
        case RF3290:
        case RF3853:
        case RF5360:
        case RF5370:
        case RF5372:
-@@ -8455,6 +8568,7 @@ static int rt2800_probe_rt(struct rt2x00
+@@ -8478,6 +8591,7 @@ static int rt2800_probe_rt(struct rt2x00
        case RT3572:
        case RT3593:
        case RT3883:
index 5da38534ceba06fb9a26fa78fe29e9c22f037e4f..96c080ac04aee01daff23b22dc4780935f27c88d 100644 (file)
@@ -8,7 +8,7 @@
  
  #include "rt2x00.h"
  #include "rt2800lib.h"
-@@ -7923,6 +7924,17 @@ static int rt2800_init_eeprom(struct rt2
+@@ -7946,6 +7947,17 @@ static int rt2800_init_eeprom(struct rt2
        rt2800_init_led(rt2x00dev, &rt2x00dev->led_assoc, LED_TYPE_ASSOC);
        rt2800_init_led(rt2x00dev, &rt2x00dev->led_qual, LED_TYPE_QUALITY);
  
index 419cb60f21c4329dfe366c30b1bad14c3d4279f1..ce667b85a19d42fb8c6a1d193b9ddc531767ff5f 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/rt2x00/rt2x00dev.c
 +++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
-@@ -1262,7 +1262,7 @@ static inline void rt2x00lib_set_if_comb
+@@ -1265,7 +1265,7 @@ static inline void rt2x00lib_set_if_comb
         */
        if_limit = &rt2x00dev->if_limits_ap;
        if_limit->max = rt2x00dev->ops->max_ap_intf;
index 05bcd58aef6edaa77d9e3b8a0d01edf1dd5ba20e..90eab13d525b0cfe1fb3ae0c9cd246e26f828f29 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/rt2x00/rt2800lib.c
 +++ b/drivers/net/wireless/rt2x00/rt2800lib.c
-@@ -7808,10 +7808,11 @@ static int rt2800_init_eeprom(struct rt2
+@@ -7831,10 +7831,11 @@ static int rt2800_init_eeprom(struct rt2
         * RT53xx: defined in "EEPROM_CHIP_ID" field
         */
        if (rt2x00_rt(rt2x00dev, RT3290) ||