diff options
author | Paul Mundt <lethal@linux-sh.org> | 2010-08-03 22:56:17 -0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2010-08-03 22:56:17 -0400 |
commit | 701ec7a7b04a62c74ab1b83b59a3fd35c0ba5fdb (patch) | |
tree | c07aa954f48ec45c422641052d46008697a4a6b1 /drivers/net/wireless | |
parent | 285eba57db7bd7d7c3c5929fb8621fdcaaea1b00 (diff) | |
parent | 3a09b1be53d23df780a0cd0e4087a05e2ca4a00c (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
Conflicts:
arch/arm/configs/ap4evb_defconfig
arch/arm/configs/g3evm_defconfig
arch/arm/configs/g4evm_defconfig
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r-- | drivers/net/wireless/ath/ath9k/ath9k.h | 1 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath9k/hif_usb.c | 8 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath9k/main.c | 11 | ||||
-rw-r--r-- | drivers/net/wireless/ath/ath9k/recv.c | 4 | ||||
-rw-r--r-- | drivers/net/wireless/hostap/hostap_pci.c | 1 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c | 6 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-core.c | 7 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-sta.h | 11 | ||||
-rw-r--r-- | drivers/net/wireless/rt2x00/rt2x00dev.c | 10 |
9 files changed, 43 insertions, 16 deletions
diff --git a/drivers/net/wireless/ath/ath9k/ath9k.h b/drivers/net/wireless/ath/ath9k/ath9k.h index fbb7dec6ddeb..5ea87736a6ae 100644 --- a/drivers/net/wireless/ath/ath9k/ath9k.h +++ b/drivers/net/wireless/ath/ath9k/ath9k.h | |||
@@ -445,6 +445,7 @@ void ath_deinit_leds(struct ath_softc *sc); | |||
445 | #define SC_OP_TSF_RESET BIT(11) | 445 | #define SC_OP_TSF_RESET BIT(11) |
446 | #define SC_OP_BT_PRIORITY_DETECTED BIT(12) | 446 | #define SC_OP_BT_PRIORITY_DETECTED BIT(12) |
447 | #define SC_OP_BT_SCAN BIT(13) | 447 | #define SC_OP_BT_SCAN BIT(13) |
448 | #define SC_OP_ANI_RUN BIT(14) | ||
448 | 449 | ||
449 | /* Powersave flags */ | 450 | /* Powersave flags */ |
450 | #define PS_WAIT_FOR_BEACON BIT(0) | 451 | #define PS_WAIT_FOR_BEACON BIT(0) |
diff --git a/drivers/net/wireless/ath/ath9k/hif_usb.c b/drivers/net/wireless/ath/ath9k/hif_usb.c index 77b359162d6c..23c15aa9fbd5 100644 --- a/drivers/net/wireless/ath/ath9k/hif_usb.c +++ b/drivers/net/wireless/ath/ath9k/hif_usb.c | |||
@@ -730,13 +730,17 @@ static int ath9k_hif_usb_alloc_urbs(struct hif_device_usb *hif_dev) | |||
730 | 730 | ||
731 | /* RX */ | 731 | /* RX */ |
732 | if (ath9k_hif_usb_alloc_rx_urbs(hif_dev) < 0) | 732 | if (ath9k_hif_usb_alloc_rx_urbs(hif_dev) < 0) |
733 | goto err; | 733 | goto err_rx; |
734 | 734 | ||
735 | /* Register Read */ | 735 | /* Register Read */ |
736 | if (ath9k_hif_usb_alloc_reg_in_urb(hif_dev) < 0) | 736 | if (ath9k_hif_usb_alloc_reg_in_urb(hif_dev) < 0) |
737 | goto err; | 737 | goto err_reg; |
738 | 738 | ||
739 | return 0; | 739 | return 0; |
740 | err_reg: | ||
741 | ath9k_hif_usb_dealloc_rx_urbs(hif_dev); | ||
742 | err_rx: | ||
743 | ath9k_hif_usb_dealloc_tx_urbs(hif_dev); | ||
740 | err: | 744 | err: |
741 | return -ENOMEM; | 745 | return -ENOMEM; |
742 | } | 746 | } |
diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c index abfa0493236f..1e2a68ea9355 100644 --- a/drivers/net/wireless/ath/ath9k/main.c +++ b/drivers/net/wireless/ath/ath9k/main.c | |||
@@ -336,6 +336,10 @@ set_timer: | |||
336 | static void ath_start_ani(struct ath_common *common) | 336 | static void ath_start_ani(struct ath_common *common) |
337 | { | 337 | { |
338 | unsigned long timestamp = jiffies_to_msecs(jiffies); | 338 | unsigned long timestamp = jiffies_to_msecs(jiffies); |
339 | struct ath_softc *sc = (struct ath_softc *) common->priv; | ||
340 | |||
341 | if (!(sc->sc_flags & SC_OP_ANI_RUN)) | ||
342 | return; | ||
339 | 343 | ||
340 | common->ani.longcal_timer = timestamp; | 344 | common->ani.longcal_timer = timestamp; |
341 | common->ani.shortcal_timer = timestamp; | 345 | common->ani.shortcal_timer = timestamp; |
@@ -872,11 +876,13 @@ static void ath9k_bss_assoc_info(struct ath_softc *sc, | |||
872 | /* Reset rssi stats */ | 876 | /* Reset rssi stats */ |
873 | sc->sc_ah->stats.avgbrssi = ATH_RSSI_DUMMY_MARKER; | 877 | sc->sc_ah->stats.avgbrssi = ATH_RSSI_DUMMY_MARKER; |
874 | 878 | ||
879 | sc->sc_flags |= SC_OP_ANI_RUN; | ||
875 | ath_start_ani(common); | 880 | ath_start_ani(common); |
876 | } else { | 881 | } else { |
877 | ath_print(common, ATH_DBG_CONFIG, "Bss Info DISASSOC\n"); | 882 | ath_print(common, ATH_DBG_CONFIG, "Bss Info DISASSOC\n"); |
878 | common->curaid = 0; | 883 | common->curaid = 0; |
879 | /* Stop ANI */ | 884 | /* Stop ANI */ |
885 | sc->sc_flags &= ~SC_OP_ANI_RUN; | ||
880 | del_timer_sync(&common->ani.timer); | 886 | del_timer_sync(&common->ani.timer); |
881 | } | 887 | } |
882 | } | 888 | } |
@@ -1478,8 +1484,10 @@ static int ath9k_add_interface(struct ieee80211_hw *hw, | |||
1478 | 1484 | ||
1479 | if (vif->type == NL80211_IFTYPE_AP || | 1485 | if (vif->type == NL80211_IFTYPE_AP || |
1480 | vif->type == NL80211_IFTYPE_ADHOC || | 1486 | vif->type == NL80211_IFTYPE_ADHOC || |
1481 | vif->type == NL80211_IFTYPE_MONITOR) | 1487 | vif->type == NL80211_IFTYPE_MONITOR) { |
1488 | sc->sc_flags |= SC_OP_ANI_RUN; | ||
1482 | ath_start_ani(common); | 1489 | ath_start_ani(common); |
1490 | } | ||
1483 | 1491 | ||
1484 | out: | 1492 | out: |
1485 | mutex_unlock(&sc->mutex); | 1493 | mutex_unlock(&sc->mutex); |
@@ -1500,6 +1508,7 @@ static void ath9k_remove_interface(struct ieee80211_hw *hw, | |||
1500 | mutex_lock(&sc->mutex); | 1508 | mutex_lock(&sc->mutex); |
1501 | 1509 | ||
1502 | /* Stop ANI */ | 1510 | /* Stop ANI */ |
1511 | sc->sc_flags &= ~SC_OP_ANI_RUN; | ||
1503 | del_timer_sync(&common->ani.timer); | 1512 | del_timer_sync(&common->ani.timer); |
1504 | 1513 | ||
1505 | /* Reclaim beacon resources */ | 1514 | /* Reclaim beacon resources */ |
diff --git a/drivers/net/wireless/ath/ath9k/recv.c b/drivers/net/wireless/ath/ath9k/recv.c index ca6065b71b46..e3e52913d83a 100644 --- a/drivers/net/wireless/ath/ath9k/recv.c +++ b/drivers/net/wireless/ath/ath9k/recv.c | |||
@@ -844,9 +844,9 @@ int ath_rx_tasklet(struct ath_softc *sc, int flush, bool hp) | |||
844 | int dma_type; | 844 | int dma_type; |
845 | 845 | ||
846 | if (edma) | 846 | if (edma) |
847 | dma_type = DMA_FROM_DEVICE; | ||
848 | else | ||
849 | dma_type = DMA_BIDIRECTIONAL; | 847 | dma_type = DMA_BIDIRECTIONAL; |
848 | else | ||
849 | dma_type = DMA_FROM_DEVICE; | ||
850 | 850 | ||
851 | qtype = hp ? ATH9K_RX_QUEUE_HP : ATH9K_RX_QUEUE_LP; | 851 | qtype = hp ? ATH9K_RX_QUEUE_HP : ATH9K_RX_QUEUE_LP; |
852 | spin_lock_bh(&sc->rx.rxbuflock); | 852 | spin_lock_bh(&sc->rx.rxbuflock); |
diff --git a/drivers/net/wireless/hostap/hostap_pci.c b/drivers/net/wireless/hostap/hostap_pci.c index d24dc7dc0723..972a9c3af39e 100644 --- a/drivers/net/wireless/hostap/hostap_pci.c +++ b/drivers/net/wireless/hostap/hostap_pci.c | |||
@@ -330,6 +330,7 @@ static int prism2_pci_probe(struct pci_dev *pdev, | |||
330 | 330 | ||
331 | dev->irq = pdev->irq; | 331 | dev->irq = pdev->irq; |
332 | hw_priv->mem_start = mem; | 332 | hw_priv->mem_start = mem; |
333 | dev->base_addr = (unsigned long) mem; | ||
333 | 334 | ||
334 | prism2_pci_cor_sreset(local); | 335 | prism2_pci_cor_sreset(local); |
335 | 336 | ||
diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c b/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c index 44ef5d93befc..01658cf82d39 100644 --- a/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c +++ b/drivers/net/wireless/iwlwifi/iwl-agn-hcmd.c | |||
@@ -212,11 +212,7 @@ static void iwlagn_chain_noise_reset(struct iwl_priv *priv) | |||
212 | static void iwlagn_rts_tx_cmd_flag(struct ieee80211_tx_info *info, | 212 | static void iwlagn_rts_tx_cmd_flag(struct ieee80211_tx_info *info, |
213 | __le32 *tx_flags) | 213 | __le32 *tx_flags) |
214 | { | 214 | { |
215 | if ((info->control.rates[0].flags & IEEE80211_TX_RC_USE_RTS_CTS) || | 215 | *tx_flags |= TX_CMD_FLG_RTS_CTS_MSK; |
216 | (info->control.rates[0].flags & IEEE80211_TX_RC_USE_CTS_PROTECT)) | ||
217 | *tx_flags |= TX_CMD_FLG_RTS_CTS_MSK; | ||
218 | else | ||
219 | *tx_flags &= ~TX_CMD_FLG_RTS_CTS_MSK; | ||
220 | } | 216 | } |
221 | 217 | ||
222 | /* Calc max signal level (dBm) among 3 possible receivers */ | 218 | /* Calc max signal level (dBm) among 3 possible receivers */ |
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c index 426e95567de3..5bbc5298ef96 100644 --- a/drivers/net/wireless/iwlwifi/iwl-core.c +++ b/drivers/net/wireless/iwlwifi/iwl-core.c | |||
@@ -1314,7 +1314,6 @@ void iwl_configure_filter(struct ieee80211_hw *hw, | |||
1314 | changed_flags, *total_flags); | 1314 | changed_flags, *total_flags); |
1315 | 1315 | ||
1316 | CHK(FIF_OTHER_BSS | FIF_PROMISC_IN_BSS, RXON_FILTER_PROMISC_MSK); | 1316 | CHK(FIF_OTHER_BSS | FIF_PROMISC_IN_BSS, RXON_FILTER_PROMISC_MSK); |
1317 | CHK(FIF_ALLMULTI, RXON_FILTER_ACCEPT_GRP_MSK); | ||
1318 | CHK(FIF_CONTROL, RXON_FILTER_CTL2HOST_MSK); | 1317 | CHK(FIF_CONTROL, RXON_FILTER_CTL2HOST_MSK); |
1319 | CHK(FIF_BCN_PRBRESP_PROMISC, RXON_FILTER_BCON_AWARE_MSK); | 1318 | CHK(FIF_BCN_PRBRESP_PROMISC, RXON_FILTER_BCON_AWARE_MSK); |
1320 | 1319 | ||
@@ -1329,6 +1328,12 @@ void iwl_configure_filter(struct ieee80211_hw *hw, | |||
1329 | 1328 | ||
1330 | mutex_unlock(&priv->mutex); | 1329 | mutex_unlock(&priv->mutex); |
1331 | 1330 | ||
1331 | /* | ||
1332 | * Receiving all multicast frames is always enabled by the | ||
1333 | * default flags setup in iwl_connection_init_rx_config() | ||
1334 | * since we currently do not support programming multicast | ||
1335 | * filters into the device. | ||
1336 | */ | ||
1332 | *total_flags &= FIF_OTHER_BSS | FIF_ALLMULTI | FIF_PROMISC_IN_BSS | | 1337 | *total_flags &= FIF_OTHER_BSS | FIF_ALLMULTI | FIF_PROMISC_IN_BSS | |
1333 | FIF_BCN_PRBRESP_PROMISC | FIF_CONTROL; | 1338 | FIF_BCN_PRBRESP_PROMISC | FIF_CONTROL; |
1334 | } | 1339 | } |
diff --git a/drivers/net/wireless/iwlwifi/iwl-sta.h b/drivers/net/wireless/iwlwifi/iwl-sta.h index c2a453a1a991..dc43ebd1f1fd 100644 --- a/drivers/net/wireless/iwlwifi/iwl-sta.h +++ b/drivers/net/wireless/iwlwifi/iwl-sta.h | |||
@@ -97,6 +97,17 @@ static inline void iwl_clear_driver_stations(struct iwl_priv *priv) | |||
97 | spin_lock_irqsave(&priv->sta_lock, flags); | 97 | spin_lock_irqsave(&priv->sta_lock, flags); |
98 | memset(priv->stations, 0, sizeof(priv->stations)); | 98 | memset(priv->stations, 0, sizeof(priv->stations)); |
99 | priv->num_stations = 0; | 99 | priv->num_stations = 0; |
100 | |||
101 | /* | ||
102 | * Remove all key information that is not stored as part of station | ||
103 | * information since mac80211 may not have had a | ||
104 | * chance to remove all the keys. When device is reconfigured by | ||
105 | * mac80211 after an error all keys will be reconfigured. | ||
106 | */ | ||
107 | priv->ucode_key_table = 0; | ||
108 | priv->key_mapping_key = 0; | ||
109 | memset(priv->wep_keys, 0, sizeof(priv->wep_keys)); | ||
110 | |||
100 | spin_unlock_irqrestore(&priv->sta_lock, flags); | 111 | spin_unlock_irqrestore(&priv->sta_lock, flags); |
101 | } | 112 | } |
102 | 113 | ||
diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c index 3ae468c4d760..f20d3eeeea7f 100644 --- a/drivers/net/wireless/rt2x00/rt2x00dev.c +++ b/drivers/net/wireless/rt2x00/rt2x00dev.c | |||
@@ -854,6 +854,11 @@ int rt2x00lib_probe_dev(struct rt2x00_dev *rt2x00dev) | |||
854 | BIT(NL80211_IFTYPE_WDS); | 854 | BIT(NL80211_IFTYPE_WDS); |
855 | 855 | ||
856 | /* | 856 | /* |
857 | * Initialize configuration work. | ||
858 | */ | ||
859 | INIT_WORK(&rt2x00dev->intf_work, rt2x00lib_intf_scheduled); | ||
860 | |||
861 | /* | ||
857 | * Let the driver probe the device to detect the capabilities. | 862 | * Let the driver probe the device to detect the capabilities. |
858 | */ | 863 | */ |
859 | retval = rt2x00dev->ops->lib->probe_hw(rt2x00dev); | 864 | retval = rt2x00dev->ops->lib->probe_hw(rt2x00dev); |
@@ -863,11 +868,6 @@ int rt2x00lib_probe_dev(struct rt2x00_dev *rt2x00dev) | |||
863 | } | 868 | } |
864 | 869 | ||
865 | /* | 870 | /* |
866 | * Initialize configuration work. | ||
867 | */ | ||
868 | INIT_WORK(&rt2x00dev->intf_work, rt2x00lib_intf_scheduled); | ||
869 | |||
870 | /* | ||
871 | * Allocate queue array. | 871 | * Allocate queue array. |
872 | */ | 872 | */ |
873 | retval = rt2x00queue_allocate(rt2x00dev); | 873 | retval = rt2x00queue_allocate(rt2x00dev); |