[package] mac80211: refresh patches
authorFlorian Fainelli <florian@openwrt.org>
Wed, 26 Sep 2012 12:53:54 +0000 (12:53 +0000)
committerFlorian Fainelli <florian@openwrt.org>
Wed, 26 Sep 2012 12:53:54 +0000 (12:53 +0000)
SVN-Revision: 33557

14 files changed:
package/mac80211/patches/130-mesh_pathtbl_backport.patch
package/mac80211/patches/300-pending_work.patch
package/mac80211/patches/402-ath9k-fix-invalid-mac-address-handling.patch
package/mac80211/patches/411-ath5k_allow_adhoc_and_ap.patch
package/mac80211/patches/431-add_platform_eeprom_support_to_ath5k.patch
package/mac80211/patches/440-ath5k_channel_bw_debugfs.patch
package/mac80211/patches/522-ath9k_per_chain_signal_strength.patch
package/mac80211/patches/540-ath9k_extra_leds.patch
package/mac80211/patches/563-ath9k_rx_dma_stop_check.patch
package/mac80211/patches/603-rt2x00-introduce-rt2x00eeprom.patch
package/mac80211/patches/605-rt2x00-pci-eeprom.patch
package/mac80211/patches/620-rt2x00-support-rt3352.patch
package/mac80211/patches/849-brcmsmac-add-device-found-on-some-SoCs-like-the-bcm4.patch
package/mac80211/patches/851-brcmsmac-start-adding-support-for-core-rev-28.patch

index fbe3e3ae457f4c7e72d7008a50fa0a707eea3abb..15ad03ced2a55f52a9524ac0ee2fbcaa8e6ccd02 100644 (file)
@@ -1,6 +1,6 @@
 --- a/net/mac80211/mesh_pathtbl.c
 +++ b/net/mac80211/mesh_pathtbl.c
 --- a/net/mac80211/mesh_pathtbl.c
 +++ b/net/mac80211/mesh_pathtbl.c
-@@ -813,7 +813,6 @@ static void table_flush_by_iface(struct 
+@@ -813,7 +813,6 @@ static void table_flush_by_iface(struct
        struct hlist_node *p;
        int i;
  
        struct hlist_node *p;
        int i;
  
index 1e25e352ca43032d178fe1617f68a3cf19c4cd6f..219144c0b91b57eb6edf5e7eaaf59adb3a3448e1 100644 (file)
  static void ieee80211_iface_work(struct work_struct *work)
  {
        struct ieee80211_sub_if_data *sdata =
  static void ieee80211_iface_work(struct work_struct *work)
  {
        struct ieee80211_sub_if_data *sdata =
-@@ -1101,6 +1144,9 @@ static void ieee80211_iface_work(struct 
+@@ -1101,6 +1144,9 @@ static void ieee80211_iface_work(struct
                                break;
                        ieee80211_mesh_rx_queued_mgmt(sdata, skb);
                        break;
                                break;
                        ieee80211_mesh_rx_queued_mgmt(sdata, skb);
                        break;
 +              list_for_each_entry_rcu(sdata, &local->interfaces, list) {
 +                      if (!sdata->dev)
 +                              continue;
 +              list_for_each_entry_rcu(sdata, &local->interfaces, list) {
 +                      if (!sdata->dev)
 +                              continue;
++
++                      if (skb->dev != sdata->dev)
++                              continue;
++
++                      found = true;
++                      break;
++              }
  
 -                      p2p_sdata = rcu_dereference(local->p2p_sdata);
 -                      if (p2p_sdata) {
  
 -                      p2p_sdata = rcu_dereference(local->p2p_sdata);
 -                      if (p2p_sdata) {
 -                                      skb->len, acked, GFP_ATOMIC);
 -                      }
 -                      rcu_read_unlock();
 -                                      skb->len, acked, GFP_ATOMIC);
 -                      }
 -                      rcu_read_unlock();
-+                      if (skb->dev != sdata->dev)
-+                              continue;
-+
-+                      found = true;
-+                      break;
-               }
-+
 +              if (!skb->dev) {
 +                      sdata = rcu_dereference(local->p2p_sdata);
 +                      if (sdata)
 +                              found = true;
 +              if (!skb->dev) {
 +                      sdata = rcu_dereference(local->p2p_sdata);
 +                      if (sdata)
 +                              found = true;
-+              }
+               }
 +
 +              if (!found)
 +                      skb->dev = NULL;
 +
 +              if (!found)
 +                      skb->dev = NULL;
index 7c59e1f109ca7bf9896684d020ab7db23064dc21..a19627e09c683ff7f9ea1d02e1b6fecaab250b79 100644 (file)
@@ -8,7 +8,7 @@
  #include <asm/unaligned.h>
  
  #include "hw.h"
  #include <asm/unaligned.h>
  
  #include "hw.h"
-@@ -523,8 +524,16 @@ static int ath9k_hw_init_macaddr(struct 
+@@ -523,8 +524,16 @@ static int ath9k_hw_init_macaddr(struct
                common->macaddr[2 * i] = eeval >> 8;
                common->macaddr[2 * i + 1] = eeval & 0xff;
        }
                common->macaddr[2 * i] = eeval >> 8;
                common->macaddr[2 * i + 1] = eeval & 0xff;
        }
index 8e02950e4a71c8e64efde97dc8ae2e4c59669b98..b515e28a681f6017ea6c823b4e34bc77f7fb0889 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/ath/ath5k/mac80211-ops.c
 +++ b/drivers/net/wireless/ath/ath5k/mac80211-ops.c
 --- a/drivers/net/wireless/ath/ath5k/mac80211-ops.c
 +++ b/drivers/net/wireless/ath/ath5k/mac80211-ops.c
-@@ -89,13 +89,8 @@ ath5k_add_interface(struct ieee80211_hw 
+@@ -89,13 +89,8 @@ ath5k_add_interface(struct ieee80211_hw
                goto end;
        }
  
                goto end;
        }
  
index 6cafa236a7cc15a25f6ed3bd492f46583a48579a..d4967b6b4bb9eaca35e05001f5082407e682b119 100644 (file)
@@ -17,7 +17,7 @@
   */
  static bool
  ath5k_pci_eeprom_read(struct ath_common *common, u32 offset, u16 *data)
   */
  static bool
  ath5k_pci_eeprom_read(struct ath_common *common, u32 offset, u16 *data)
-@@ -82,6 +83,19 @@ ath5k_pci_eeprom_read(struct ath_common 
+@@ -82,6 +83,19 @@ ath5k_pci_eeprom_read(struct ath_common
        struct ath5k_hw *ah = (struct ath5k_hw *) common->ah;
        u32 status, timeout;
  
        struct ath5k_hw *ah = (struct ath5k_hw *) common->ah;
        u32 status, timeout;
  
index a2141ab24e0b4f8639e53ba2fc84c2a2f58afe09..f9c2a09deae6d3f19b33cf695e99af606bfa060e 100644 (file)
@@ -101,7 +101,7 @@ drivers/net/wireless/ath/ath5k/debug.c |   86 ++++++++++++++++++++++++++++++++
  
  /* debugfs: queues etc */
  
  
  /* debugfs: queues etc */
  
-@@ -904,6 +987,9 @@ ath5k_debug_init_device(struct ath5k_hw 
+@@ -904,6 +987,9 @@ ath5k_debug_init_device(struct ath5k_hw
        debugfs_create_file("beacon", S_IWUSR | S_IRUSR, phydir, ah,
                            &fops_beacon);
  
        debugfs_create_file("beacon", S_IWUSR | S_IRUSR, phydir, ah,
                            &fops_beacon);
  
index 8b26a50b3571219b0f976851114a886e5f240793..e43806866ebf11d838242f7b1608193555529d32 100644 (file)
  
 --- a/drivers/net/wireless/ath/ath9k/ar9003_mac.c
 +++ b/drivers/net/wireless/ath/ath9k/ar9003_mac.c
  
 --- a/drivers/net/wireless/ath/ath9k/ar9003_mac.c
 +++ b/drivers/net/wireless/ath/ath9k/ar9003_mac.c
-@@ -458,12 +458,12 @@ int ath9k_hw_process_rxdesc_edma(struct 
+@@ -458,12 +458,12 @@ int ath9k_hw_process_rxdesc_edma(struct
  
        /* XXX: Keycache */
        rxs->rs_rssi = MS(rxsp->status5, AR_RxRSSICombined);
  
        /* XXX: Keycache */
        rxs->rs_rssi = MS(rxsp->status5, AR_RxRSSICombined);
        if (ads.ds_rxstatus8 & AR_RxKeyIdxValid)
 --- a/drivers/net/wireless/ath/ath9k/debug.c
 +++ b/drivers/net/wireless/ath/ath9k/debug.c
        if (ads.ds_rxstatus8 & AR_RxKeyIdxValid)
 --- a/drivers/net/wireless/ath/ath9k/debug.c
 +++ b/drivers/net/wireless/ath/ath9k/debug.c
-@@ -997,12 +997,12 @@ void ath_debug_stat_rx(struct ath_softc 
+@@ -997,12 +997,12 @@ void ath_debug_stat_rx(struct ath_softc
  #ifdef CONFIG_ATH9K_MAC_DEBUG
        spin_lock(&sc->debug.samp_lock);
        RX_SAMP_DBG(jiffies) = jiffies;
  #ifdef CONFIG_ATH9K_MAC_DEBUG
        spin_lock(&sc->debug.samp_lock);
        RX_SAMP_DBG(jiffies) = jiffies;
         * hardware stores this as 8 bit signed value.
 --- a/drivers/net/wireless/ath/ath9k/antenna.c
 +++ b/drivers/net/wireless/ath/ath9k/antenna.c
         * hardware stores this as 8 bit signed value.
 --- a/drivers/net/wireless/ath/ath9k/antenna.c
 +++ b/drivers/net/wireless/ath/ath9k/antenna.c
-@@ -529,14 +529,14 @@ void ath_ant_comb_scan(struct ath_softc 
+@@ -529,14 +529,14 @@ void ath_ant_comb_scan(struct ath_softc
        struct ath_ant_comb *antcomb = &sc->ant_comb;
        int alt_ratio = 0, alt_rssi_avg = 0, main_rssi_avg = 0, curr_alt_set;
        int curr_main_set;
        struct ath_ant_comb *antcomb = &sc->ant_comb;
        int alt_ratio = 0, alt_rssi_avg = 0, main_rssi_avg = 0, curr_alt_set;
        int curr_main_set;
index 86dc518564836b0b1f26141a9460ddf077262bd2..f80a38133d507640e7759b8d3266edfb04a6f37b 100644 (file)
  
 --- a/drivers/net/wireless/ath/ath9k/init.c
 +++ b/drivers/net/wireless/ath/ath9k/init.c
  
 --- a/drivers/net/wireless/ath/ath9k/init.c
 +++ b/drivers/net/wireless/ath/ath9k/init.c
-@@ -811,7 +811,7 @@ int ath9k_init_device(u16 devid, struct 
+@@ -811,7 +811,7 @@ int ath9k_init_device(u16 devid, struct
  
  #ifdef CONFIG_MAC80211_LEDS
        /* must be initialized before ieee80211_register_hw */
  
  #ifdef CONFIG_MAC80211_LEDS
        /* must be initialized before ieee80211_register_hw */
index 606eb1c63d7547e2217a7bb7208597d3efef004d..1da720733f393712f32eee76462fe63634347dd4 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/ath/ath9k/mac.c
 +++ b/drivers/net/wireless/ath/ath9k/mac.c
 --- a/drivers/net/wireless/ath/ath9k/mac.c
 +++ b/drivers/net/wireless/ath/ath9k/mac.c
-@@ -689,7 +689,7 @@ bool ath9k_hw_stopdmarecv(struct ath_hw 
+@@ -689,7 +689,7 @@ bool ath9k_hw_stopdmarecv(struct ath_hw
  {
  #define AH_RX_STOP_DMA_TIMEOUT 10000   /* usec */
        struct ath_common *common = ath9k_hw_common(ah);
  {
  #define AH_RX_STOP_DMA_TIMEOUT 10000   /* usec */
        struct ath_common *common = ath9k_hw_common(ah);
@@ -9,7 +9,7 @@
        int i;
  
        /* Enable access to the DMA observation bus */
        int i;
  
        /* Enable access to the DMA observation bus */
-@@ -719,6 +719,16 @@ bool ath9k_hw_stopdmarecv(struct ath_hw 
+@@ -719,6 +719,16 @@ bool ath9k_hw_stopdmarecv(struct ath_hw
        }
  
        if (i == 0) {
        }
  
        if (i == 0) {
index 4f35ae899f9c643796738b51747dff67c085369b..cb0bc02e8c8d8604a257e95c4a0dee614f0bf700 100644 (file)
  obj-$(CONFIG_RT2X00_LIB_PCI)          += rt2x00pci.o
 --- a/drivers/net/wireless/rt2x00/rt2800pci.c
 +++ b/drivers/net/wireless/rt2x00/rt2800pci.c
  obj-$(CONFIG_RT2X00_LIB_PCI)          += rt2x00pci.o
 --- a/drivers/net/wireless/rt2x00/rt2800pci.c
 +++ b/drivers/net/wireless/rt2x00/rt2800pci.c
-@@ -89,20 +89,10 @@ static void rt2800pci_mcu_status(struct 
+@@ -89,20 +89,10 @@ static void rt2800pci_mcu_status(struct
        rt2x00pci_register_write(rt2x00dev, H2M_MAILBOX_CID, ~0);
  }
  
        rt2x00pci_register_write(rt2x00dev, H2M_MAILBOX_CID, ~0);
  }
  
 -      memcpy_fromio(rt2x00dev->eeprom, base_addr, EEPROM_SIZE);
 -
 -      iounmap(base_addr);
 -      memcpy_fromio(rt2x00dev->eeprom, base_addr, EEPROM_SIZE);
 -
 -      iounmap(base_addr);
-+      memcpy(rt2x00dev->eeprom, rt2x00dev->eeprom_file->data, EEPROM_SIZE);
- }
+-}
 -#else
 -static inline void rt2800pci_read_eeprom_soc(struct rt2x00_dev *rt2x00dev)
 -{
 -#else
 -static inline void rt2800pci_read_eeprom_soc(struct rt2x00_dev *rt2x00dev)
 -{
--}
++      memcpy(rt2x00dev->eeprom, rt2x00dev->eeprom_file->data, EEPROM_SIZE);
+ }
 -#endif /* CONFIG_RALINK_RT288X || CONFIG_RALINK_RT305X */
  
  #ifdef CONFIG_PCI
 -#endif /* CONFIG_RALINK_RT288X || CONFIG_RALINK_RT305X */
  
  #ifdef CONFIG_PCI
index fbc86199a4b2e2e556f87f8dc42f08e31e33c0fd..ec58597752843bee8939927865569641fb30e40d 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/net/wireless/rt2x00/rt2800pci.c
 +++ b/drivers/net/wireless/rt2x00/rt2800pci.c
 --- a/drivers/net/wireless/rt2x00/rt2800pci.c
 +++ b/drivers/net/wireless/rt2x00/rt2800pci.c
-@@ -89,7 +89,7 @@ static void rt2800pci_mcu_status(struct 
+@@ -89,7 +89,7 @@ static void rt2800pci_mcu_status(struct
        rt2x00pci_register_write(rt2x00dev, H2M_MAILBOX_CID, ~0);
  }
  
        rt2x00pci_register_write(rt2x00dev, H2M_MAILBOX_CID, ~0);
  }
  
index 27473ec75939151caa199ffdf81737c90c0e11f9..2733fbb144b5aa86050abe5bca265e818c10310f 100644 (file)
  }
  
  static int rt2800_get_gain_calibration_delta(struct rt2x00_dev *rt2x00dev)
  }
  
  static int rt2800_get_gain_calibration_delta(struct rt2x00_dev *rt2x00dev)
-@@ -2961,11 +3038,15 @@ static int rt2800_init_registers(struct 
+@@ -2961,11 +3038,15 @@ static int rt2800_init_registers(struct
        if (rt2x00_rt(rt2x00dev, RT3071) ||
            rt2x00_rt(rt2x00dev, RT3090) ||
            rt2x00_rt(rt2x00dev, RT3290) ||
        if (rt2x00_rt(rt2x00dev, RT3071) ||
            rt2x00_rt(rt2x00dev, RT3090) ||
            rt2x00_rt(rt2x00dev, RT3290) ||
index f70a261f03c528f0a0cb2f7dd1bda06135f253d1..b432eb40ab6847bbcb65edcd96308041977babe2 100644 (file)
@@ -10,7 +10,7 @@
        BCMA_CORETABLE_END
 --- a/drivers/net/wireless/brcm80211/brcmsmac/main.c
 +++ b/drivers/net/wireless/brcm80211/brcmsmac/main.c
        BCMA_CORETABLE_END
 --- a/drivers/net/wireless/brcm80211/brcmsmac/main.c
 +++ b/drivers/net/wireless/brcm80211/brcmsmac/main.c
-@@ -734,7 +734,7 @@ static void brcms_c_ucode_bsinit(struct 
+@@ -734,7 +734,7 @@ static void brcms_c_ucode_bsinit(struct
        brcms_c_write_mhf(wlc_hw, wlc_hw->band->mhfs);
  
        /* do band-specific ucode IHR, SHM, and SCR inits */
        brcms_c_write_mhf(wlc_hw, wlc_hw->band->mhfs);
  
        /* do band-specific ucode IHR, SHM, and SCR inits */
@@ -19,7 +19,7 @@
                if (BRCMS_ISNPHY(wlc_hw->band))
                        brcms_c_write_inits(wlc_hw, ucode->d11n0bsinitvals16);
                else
                if (BRCMS_ISNPHY(wlc_hw->band))
                        brcms_c_write_inits(wlc_hw, ucode->d11n0bsinitvals16);
                else
-@@ -2259,7 +2259,7 @@ static void brcms_ucode_download(struct 
+@@ -2259,7 +2259,7 @@ static void brcms_ucode_download(struct
        if (wlc_hw->ucode_loaded)
                return;
  
        if (wlc_hw->ucode_loaded)
                return;
  
index 198af613cc6715a0a247b65a3d8908a5e3798a95..9a64e88c7c1e7d36d9be5f956a96c127abc5f833 100644 (file)
@@ -10,7 +10,7 @@
  MODULE_DEVICE_TABLE(bcma, brcms_coreid_table);
 --- a/drivers/net/wireless/brcm80211/brcmsmac/main.c
 +++ b/drivers/net/wireless/brcm80211/brcmsmac/main.c
  MODULE_DEVICE_TABLE(bcma, brcms_coreid_table);
 --- a/drivers/net/wireless/brcm80211/brcmsmac/main.c
 +++ b/drivers/net/wireless/brcm80211/brcmsmac/main.c
-@@ -734,7 +734,7 @@ static void brcms_c_ucode_bsinit(struct 
+@@ -734,7 +734,7 @@ static void brcms_c_ucode_bsinit(struct
        brcms_c_write_mhf(wlc_hw, wlc_hw->band->mhfs);
  
        /* do band-specific ucode IHR, SHM, and SCR inits */
        brcms_c_write_mhf(wlc_hw, wlc_hw->band->mhfs);
  
        /* do band-specific ucode IHR, SHM, and SCR inits */
@@ -19,7 +19,7 @@
                if (BRCMS_ISNPHY(wlc_hw->band))
                        brcms_c_write_inits(wlc_hw, ucode->d11n0bsinitvals16);
                else
                if (BRCMS_ISNPHY(wlc_hw->band))
                        brcms_c_write_inits(wlc_hw, ucode->d11n0bsinitvals16);
                else
-@@ -2259,7 +2259,7 @@ static void brcms_ucode_download(struct 
+@@ -2259,7 +2259,7 @@ static void brcms_ucode_download(struct
        if (wlc_hw->ucode_loaded)
                return;
  
        if (wlc_hw->ucode_loaded)
                return;