aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/ath/ath9k/init.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2013-06-04 06:56:01 -0400
committerJohannes Berg <johannes.berg@intel.com>2013-06-04 07:02:42 -0400
commit51217cee3a94d5409d6ee2ac090ae96bc9a06757 (patch)
tree373c5ebf9e87ef81feb1d02feaf06f673fcf9a13 /drivers/net/wireless/ath/ath9k/init.c
parentff40b425f04144771920b79672d6691910c7def7 (diff)
parent99e94940697adec4f84758adb2db71f4a82c7ba5 (diff)
Merge remote-tracking branch 'wireless-next/master' into HEAD
Merge to get the wil6210 changes that a cfg80211 change needs. A conflict in drivers/net/wireless/ath/ath9k/init.c was just whitespace changes. Also fix a semantic conflict due to cw1200 using WoWLAN which I had modified in my tree. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/init.c')
-rw-r--r--drivers/net/wireless/ath/ath9k/init.c17
1 files changed, 10 insertions, 7 deletions
diff --git a/drivers/net/wireless/ath/ath9k/init.c b/drivers/net/wireless/ath/ath9k/init.c
index f993362e9e13..f359b0d7078d 100644
--- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c
@@ -21,6 +21,7 @@
21#include <linux/ath9k_platform.h> 21#include <linux/ath9k_platform.h>
22#include <linux/module.h> 22#include <linux/module.h>
23#include <linux/relay.h> 23#include <linux/relay.h>
24#include <net/ieee80211_radiotap.h>
24 25
25#include "ath9k.h" 26#include "ath9k.h"
26 27
@@ -613,9 +614,6 @@ static int ath9k_init_softc(u16 devid, struct ath_softc *sc,
613 spin_lock_init(&sc->sc_serial_rw); 614 spin_lock_init(&sc->sc_serial_rw);
614 spin_lock_init(&sc->sc_pm_lock); 615 spin_lock_init(&sc->sc_pm_lock);
615 mutex_init(&sc->mutex); 616 mutex_init(&sc->mutex);
616#ifdef CONFIG_ATH9K_MAC_DEBUG
617 spin_lock_init(&sc->debug.samp_lock);
618#endif
619 tasklet_init(&sc->intr_tq, ath9k_tasklet, (unsigned long)sc); 617 tasklet_init(&sc->intr_tq, ath9k_tasklet, (unsigned long)sc);
620 tasklet_init(&sc->bcon_tasklet, ath9k_beacon_tasklet, 618 tasklet_init(&sc->bcon_tasklet, ath9k_beacon_tasklet,
621 (unsigned long)sc); 619 (unsigned long)sc);
@@ -778,12 +776,19 @@ void ath9k_set_hw_capab(struct ath_softc *sc, struct ieee80211_hw *hw)
778 IEEE80211_HW_REPORTS_TX_ACK_STATUS | 776 IEEE80211_HW_REPORTS_TX_ACK_STATUS |
779 IEEE80211_HW_SUPPORTS_RC_TABLE; 777 IEEE80211_HW_SUPPORTS_RC_TABLE;
780 778
781 if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_HT) 779 if (sc->sc_ah->caps.hw_caps & ATH9K_HW_CAP_HT) {
782 hw->flags |= IEEE80211_HW_AMPDU_AGGREGATION; 780 hw->flags |= IEEE80211_HW_AMPDU_AGGREGATION;
781
782 if (AR_SREV_9280_20_OR_LATER(ah))
783 hw->radiotap_mcs_details |=
784 IEEE80211_RADIOTAP_MCS_HAVE_STBC;
785 }
783 786
784 if (AR_SREV_9160_10_OR_LATER(sc->sc_ah) || ath9k_modparam_nohwcrypt) 787 if (AR_SREV_9160_10_OR_LATER(sc->sc_ah) || ath9k_modparam_nohwcrypt)
785 hw->flags |= IEEE80211_HW_MFP_CAPABLE; 788 hw->flags |= IEEE80211_HW_MFP_CAPABLE;
786 789
790 hw->wiphy->features |= NL80211_FEATURE_ACTIVE_MONITOR;
791
787 hw->wiphy->interface_modes = 792 hw->wiphy->interface_modes =
788 BIT(NL80211_IFTYPE_P2P_GO) | 793 BIT(NL80211_IFTYPE_P2P_GO) |
789 BIT(NL80211_IFTYPE_P2P_CLIENT) | 794 BIT(NL80211_IFTYPE_P2P_CLIENT) |
@@ -804,14 +809,12 @@ void ath9k_set_hw_capab(struct ath_softc *sc, struct ieee80211_hw *hw)
804 hw->wiphy->flags |= WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL; 809 hw->wiphy->flags |= WIPHY_FLAG_HAS_REMAIN_ON_CHANNEL;
805 810
806#ifdef CONFIG_PM_SLEEP 811#ifdef CONFIG_PM_SLEEP
807
808 if ((ah->caps.hw_caps & ATH9K_HW_WOW_DEVICE_CAPABLE) && 812 if ((ah->caps.hw_caps & ATH9K_HW_WOW_DEVICE_CAPABLE) &&
809 device_can_wakeup(sc->dev)) 813 device_can_wakeup(sc->dev))
810 hw->wiphy->wowlan = &ath9k_wowlan_support; 814 hw->wiphy->wowlan = &ath9k_wowlan_support;
811 815
812 atomic_set(&sc->wow_sleep_proc_intr, -1); 816 atomic_set(&sc->wow_sleep_proc_intr, -1);
813 atomic_set(&sc->wow_got_bmiss_intr, -1); 817 atomic_set(&sc->wow_got_bmiss_intr, -1);
814
815#endif 818#endif
816 819
817 hw->queues = 4; 820 hw->queues = 4;