diff options
Diffstat (limited to 'drivers/net/wireless/ath/ath9k/hw.c')
| -rw-r--r-- | drivers/net/wireless/ath/ath9k/hw.c | 28 | 
1 files changed, 11 insertions, 17 deletions
diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c index 15dfefcf2d0f..4ca0cb060106 100644 --- a/drivers/net/wireless/ath/ath9k/hw.c +++ b/drivers/net/wireless/ath/ath9k/hw.c @@ -452,7 +452,6 @@ static void ath9k_hw_init_config(struct ath_hw *ah)  	ah->config.pcie_clock_req = 0;  	ah->config.pcie_waen = 0;  	ah->config.analog_shiftreg = 1; -	ah->config.enable_ani = true;  	for (i = 0; i < AR_EEPROM_MODAL_SPURS; i++) {  		ah->config.spurchans[i][0] = AR_NO_SPUR; @@ -549,8 +548,7 @@ static int ath9k_hw_post_init(struct ath_hw *ah)  		ah->eep_ops->get_eeprom_ver(ah),  		ah->eep_ops->get_eeprom_rev(ah)); -	if (ah->config.enable_ani) -		ath9k_hw_ani_init(ah); +	ath9k_hw_ani_init(ah);  	return 0;  } @@ -1250,10 +1248,10 @@ static void ath9k_hw_set_operating_mode(struct ath_hw *ah, int opmode)  	switch (opmode) {  	case NL80211_IFTYPE_ADHOC: -	case NL80211_IFTYPE_MESH_POINT:  		set |= AR_STA_ID1_ADHOC;  		REG_SET_BIT(ah, AR_CFG, AR_CFG_AP_ADHOC_INDICATION);  		break; +	case NL80211_IFTYPE_MESH_POINT:  	case NL80211_IFTYPE_AP:  		set |= AR_STA_ID1_STA_AP;  		/* fall through */ @@ -1872,7 +1870,8 @@ int ath9k_hw_reset(struct ath_hw *ah, struct ath9k_channel *chan,  	ah->caldata = caldata;  	if (caldata && (chan->channel != caldata->channel || -			chan->channelFlags != caldata->channelFlags)) { +			chan->channelFlags != caldata->channelFlags || +			chan->chanmode != caldata->chanmode)) {  		/* Operating channel changed, reset channel calibration data */  		memset(caldata, 0, sizeof(*caldata));  		ath9k_init_nfcal_hist_buffer(ah, chan); @@ -2255,12 +2254,12 @@ void ath9k_hw_beaconinit(struct ath_hw *ah, u32 next_beacon, u32 beacon_period)  	switch (ah->opmode) {  	case NL80211_IFTYPE_ADHOC: -	case NL80211_IFTYPE_MESH_POINT:  		REG_SET_BIT(ah, AR_TXCFG,  			    AR_TXCFG_ADHOC_BEACON_ATIM_TX_POLICY);  		REG_WRITE(ah, AR_NEXT_NDP_TIMER, next_beacon +  			  TU_TO_USEC(ah->atim_window ? ah->atim_window : 1));  		flags |= AR_NDP_TIMER_EN; +	case NL80211_IFTYPE_MESH_POINT:  	case NL80211_IFTYPE_AP:  		REG_WRITE(ah, AR_NEXT_TBTT_TIMER, next_beacon);  		REG_WRITE(ah, AR_NEXT_DMA_BEACON_ALERT, next_beacon - @@ -2600,17 +2599,12 @@ int ath9k_hw_fill_cap_info(struct ath_hw *ah)  		if (!(ah->ent_mode & AR_ENT_OTP_49GHZ_DISABLE))  			pCap->hw_caps |= ATH9K_HW_CAP_MCI; -		if (AR_SREV_9462_20(ah)) +		if (AR_SREV_9462_20_OR_LATER(ah))  			pCap->hw_caps |= ATH9K_HW_CAP_RTT;  	} -	if (AR_SREV_9280_20_OR_LATER(ah)) { -		pCap->hw_caps |= ATH9K_HW_WOW_DEVICE_CAPABLE | -				 ATH9K_HW_WOW_PATTERN_MATCH_EXACT; - -		if (AR_SREV_9280(ah)) -			pCap->hw_caps |= ATH9K_HW_WOW_PATTERN_MATCH_DWORD; -	} +	if (AR_SREV_9462(ah)) +		pCap->hw_caps |= ATH9K_HW_WOW_DEVICE_CAPABLE;  	if (AR_SREV_9300_20_OR_LATER(ah) &&  	    ah->eep_ops->get_eeprom(ah, EEP_PAPRD)) @@ -3048,7 +3042,7 @@ void ath9k_hw_gen_timer_start(struct ath_hw *ah,  	timer_next = tsf + trig_timeout; -	ath_dbg(ath9k_hw_common(ah), HWTIMER, +	ath_dbg(ath9k_hw_common(ah), BTCOEX,  		"current tsf %x period %x timer_next %x\n",  		tsf, timer_period, timer_next); @@ -3147,7 +3141,7 @@ void ath_gen_timer_isr(struct ath_hw *ah)  		index = rightmost_index(timer_table, &thresh_mask);  		timer = timer_table->timers[index];  		BUG_ON(!timer); -		ath_dbg(common, HWTIMER, "TSF overflow for Gen timer %d\n", +		ath_dbg(common, BTCOEX, "TSF overflow for Gen timer %d\n",  			index);  		timer->overflow(timer->arg);  	} @@ -3156,7 +3150,7 @@ void ath_gen_timer_isr(struct ath_hw *ah)  		index = rightmost_index(timer_table, &trigger_mask);  		timer = timer_table->timers[index];  		BUG_ON(!timer); -		ath_dbg(common, HWTIMER, +		ath_dbg(common, BTCOEX,  			"Gen timer[%d] trigger\n", index);  		timer->trigger(timer->arg);  	}  | 
