aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/net')
-rw-r--r--drivers/net/wireless/ath/ath9k/htc_drv_init.c5
-rw-r--r--drivers/net/wireless/ath/ath9k/hw.c33
-rw-r--r--drivers/net/wireless/ath/ath9k/hw.h3
-rw-r--r--drivers/net/wireless/ath/ath9k/init.c6
4 files changed, 3 insertions, 44 deletions
diff --git a/drivers/net/wireless/ath/ath9k/htc_drv_init.c b/drivers/net/wireless/ath/ath9k/htc_drv_init.c
index 5190a8808fa1..d339e5f92216 100644
--- a/drivers/net/wireless/ath/ath9k/htc_drv_init.c
+++ b/drivers/net/wireless/ath/ath9k/htc_drv_init.c
@@ -569,11 +569,6 @@ static void ath9k_init_crypto(struct ath9k_htc_priv *priv)
569 */ 569 */
570 for (i = 0; i < common->keymax; i++) 570 for (i = 0; i < common->keymax; i++)
571 ath9k_hw_keyreset(priv->ah, (u16) i); 571 ath9k_hw_keyreset(priv->ah, (u16) i);
572
573 /* turn on mcast key search if possible */
574 if (!ath9k_hw_getcapability(priv->ah, ATH9K_CAP_MCAST_KEYSRCH, 0, NULL))
575 (void)ath9k_hw_setcapability(priv->ah, ATH9K_CAP_MCAST_KEYSRCH,
576 1, 1, NULL);
577} 572}
578 573
579static void ath9k_init_channels_rates(struct ath9k_htc_priv *priv) 574static void ath9k_init_channels_rates(struct ath9k_htc_priv *priv)
diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c
index a5203b137346..9321931a4c2f 100644
--- a/drivers/net/wireless/ath/ath9k/hw.c
+++ b/drivers/net/wireless/ath/ath9k/hw.c
@@ -425,7 +425,9 @@ static void ath9k_hw_init_defaults(struct ath_hw *ah)
425 ah->ah_flags = AH_USE_EEPROM; 425 ah->ah_flags = AH_USE_EEPROM;
426 426
427 ah->atim_window = 0; 427 ah->atim_window = 0;
428 ah->sta_id1_defaults = AR_STA_ID1_CRPT_MIC_ENABLE; 428 ah->sta_id1_defaults =
429 AR_STA_ID1_CRPT_MIC_ENABLE |
430 AR_STA_ID1_MCAST_KSRCH;
429 ah->beacon_interval = 100; 431 ah->beacon_interval = 100;
430 ah->enable_32kHz_clock = DONT_USE_32KHZ; 432 ah->enable_32kHz_clock = DONT_USE_32KHZ;
431 ah->slottime = (u32) -1; 433 ah->slottime = (u32) -1;
@@ -2259,20 +2261,6 @@ bool ath9k_hw_getcapability(struct ath_hw *ah, enum ath9k_capability_type type,
2259 u32 capability, u32 *result) 2261 u32 capability, u32 *result)
2260{ 2262{
2261 switch (type) { 2263 switch (type) {
2262 case ATH9K_CAP_MCAST_KEYSRCH:
2263 switch (capability) {
2264 case 0:
2265 return true;
2266 case 1:
2267 if (REG_READ(ah, AR_STA_ID1) & AR_STA_ID1_ADHOC) {
2268 return false;
2269 } else {
2270 return (ah->sta_id1_defaults &
2271 AR_STA_ID1_MCAST_KSRCH) ? true :
2272 false;
2273 }
2274 }
2275 return false;
2276 case ATH9K_CAP_DS: 2264 case ATH9K_CAP_DS:
2277 return (AR_SREV_9280_20_OR_LATER(ah) && 2265 return (AR_SREV_9280_20_OR_LATER(ah) &&
2278 (ah->eep_ops->get_eeprom(ah, EEP_RC_CHAIN_MASK) == 1)) 2266 (ah->eep_ops->get_eeprom(ah, EEP_RC_CHAIN_MASK) == 1))
@@ -2283,21 +2271,6 @@ bool ath9k_hw_getcapability(struct ath_hw *ah, enum ath9k_capability_type type,
2283} 2271}
2284EXPORT_SYMBOL(ath9k_hw_getcapability); 2272EXPORT_SYMBOL(ath9k_hw_getcapability);
2285 2273
2286bool ath9k_hw_setcapability(struct ath_hw *ah, enum ath9k_capability_type type,
2287 u32 capability, u32 setting, int *status)
2288{
2289 switch (type) {
2290 case ATH9K_CAP_MCAST_KEYSRCH:
2291 if (setting)
2292 ah->sta_id1_defaults |= AR_STA_ID1_MCAST_KSRCH;
2293 else
2294 ah->sta_id1_defaults &= ~AR_STA_ID1_MCAST_KSRCH;
2295 return true;
2296 default:
2297 return false;
2298 }
2299}
2300EXPORT_SYMBOL(ath9k_hw_setcapability);
2301 2274
2302/****************************/ 2275/****************************/
2303/* GPIO / RFKILL / Antennae */ 2276/* GPIO / RFKILL / Antennae */
diff --git a/drivers/net/wireless/ath/ath9k/hw.h b/drivers/net/wireless/ath/ath9k/hw.h
index 28fca9d77980..16b35cdce593 100644
--- a/drivers/net/wireless/ath/ath9k/hw.h
+++ b/drivers/net/wireless/ath/ath9k/hw.h
@@ -207,7 +207,6 @@ enum ath9k_hw_caps {
207}; 207};
208 208
209enum ath9k_capability_type { 209enum ath9k_capability_type {
210 ATH9K_CAP_MCAST_KEYSRCH,
211 ATH9K_CAP_DS 210 ATH9K_CAP_DS
212}; 211};
213 212
@@ -855,8 +854,6 @@ int ath9k_hw_reset(struct ath_hw *ah, struct ath9k_channel *chan,
855int ath9k_hw_fill_cap_info(struct ath_hw *ah); 854int ath9k_hw_fill_cap_info(struct ath_hw *ah);
856bool ath9k_hw_getcapability(struct ath_hw *ah, enum ath9k_capability_type type, 855bool ath9k_hw_getcapability(struct ath_hw *ah, enum ath9k_capability_type type,
857 u32 capability, u32 *result); 856 u32 capability, u32 *result);
858bool ath9k_hw_setcapability(struct ath_hw *ah, enum ath9k_capability_type type,
859 u32 capability, u32 setting, int *status);
860u32 ath9k_regd_get_ctl(struct ath_regulatory *reg, struct ath9k_channel *chan); 857u32 ath9k_regd_get_ctl(struct ath_regulatory *reg, struct ath9k_channel *chan);
861 858
862/* Key Cache Management */ 859/* Key Cache Management */
diff --git a/drivers/net/wireless/ath/ath9k/init.c b/drivers/net/wireless/ath/ath9k/init.c
index 4bdf8c814f57..514a4014c198 100644
--- a/drivers/net/wireless/ath/ath9k/init.c
+++ b/drivers/net/wireless/ath/ath9k/init.c
@@ -387,12 +387,6 @@ static void ath9k_init_crypto(struct ath_softc *sc)
387 */ 387 */
388 if (!(sc->sc_ah->misc_mode & AR_PCU_MIC_NEW_LOC_ENA)) 388 if (!(sc->sc_ah->misc_mode & AR_PCU_MIC_NEW_LOC_ENA))
389 common->splitmic = 1; 389 common->splitmic = 1;
390
391 /* turn on mcast key search if possible */
392 if (!ath9k_hw_getcapability(sc->sc_ah, ATH9K_CAP_MCAST_KEYSRCH, 0, NULL))
393 (void)ath9k_hw_setcapability(sc->sc_ah, ATH9K_CAP_MCAST_KEYSRCH,
394 1, 1, NULL);
395
396} 390}
397 391
398static int ath9k_init_btcoex(struct ath_softc *sc) 392static int ath9k_init_btcoex(struct ath_softc *sc)