mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-10-31 14:04:26 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			87 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| --- a/ath/if_ath.c
 | |
| +++ b/ath/if_ath.c
 | |
| @@ -797,7 +797,6 @@ ath_attach(u_int16_t devid, struct net_d
 | |
|  		break;
 | |
|  	}
 | |
|  
 | |
| -	sc->sc_setdefantenna = ath_setdefantenna;
 | |
|  	sc->sc_rc = ieee80211_rate_attach(sc, ratectl);
 | |
|  	if (sc->sc_rc == NULL) {
 | |
|  		error = EIO;
 | |
| @@ -2624,9 +2623,6 @@ ath_init(struct net_device *dev)
 | |
|  	ath_radar_update(sc);
 | |
|  	ath_rp_flush(sc);
 | |
|  
 | |
| -	/* Set the default RX antenna; it may get lost on reset. */
 | |
| -	ath_setdefantenna(sc, sc->sc_defant);
 | |
| -
 | |
|  	/*
 | |
|  	 * Setup the hardware after reset: the key cache
 | |
|  	 * is filled as needed and the receive engine is
 | |
| @@ -3019,7 +3015,6 @@ ath_reset(struct net_device *dev)
 | |
|  	ath_setintmit(sc);
 | |
|  	ath_update_txpow(sc);		/* update tx power state */
 | |
|  	ath_radar_update(sc);
 | |
| -	ath_setdefantenna(sc, sc->sc_defant);
 | |
|  	if (ath_startrecv(sc) != 0)	/* restart recv */
 | |
|  		EPRINTF(sc, "Unable to start receive logic.\n");
 | |
|  	if (sc->sc_softled)
 | |
| @@ -5353,27 +5348,6 @@ ath_beacon_send(struct ath_softc *sc, in
 | |
|  	} else if ((sc->sc_updateslot == COMMIT) && (sc->sc_slotupdate == slot))
 | |
|  		ath_setslottime(sc);		/* commit change to hardware */
 | |
|  
 | |
| -	if ((!sc->sc_stagbeacons || slot == 0) && (!sc->sc_diversity)) {
 | |
| -		unsigned int otherant;
 | |
| -		/*
 | |
| -		 * Check recent per-antenna transmit statistics and flip
 | |
| -		 * the default rx antenna if noticeably more frames went out
 | |
| -		 * on the non-default antenna.  Only do this if rx diversity
 | |
| -		 * is off.
 | |
| -		 * XXX assumes 2 antennae
 | |
| -		 */
 | |
| -		otherant = sc->sc_defant & 1 ? 2 : 1;
 | |
| -		if (sc->sc_ant_tx[otherant] > sc->sc_ant_tx[sc->sc_defant] + 
 | |
| -				ATH_ANTENNA_DIFF) {
 | |
| -			DPRINTF(sc, ATH_DEBUG_BEACON,
 | |
| -				"Flip default antenna to %u, %u > %u\n",
 | |
| -				otherant, sc->sc_ant_tx[otherant],
 | |
| -				sc->sc_ant_tx[sc->sc_defant]);
 | |
| -			ath_setdefantenna(sc, otherant);
 | |
| -		}
 | |
| -		sc->sc_ant_tx[1] = sc->sc_ant_tx[2] = 0;
 | |
| -	}
 | |
| -
 | |
|  	if (bfaddr != 0) {
 | |
|  		/*
 | |
|  		 * Stop any current DMA and put the new frame(s) on the queue.
 | |
| @@ -6734,9 +6708,8 @@ ath_setdefantenna(struct ath_softc *sc, 
 | |
|  {
 | |
|  	struct ath_hal *ah = sc->sc_ah;
 | |
|  
 | |
| -	/* XXX block beacon interrupts */
 | |
| -	ath_hal_setdiversity(ah, (sc->sc_diversity != 0));
 | |
|  	ath_hal_setdefantenna(ah, antenna);
 | |
| +	ath_hal_setantennaswitch(ah, sc->sc_diversity ? 0 : antenna);
 | |
|  	if (sc->sc_defant != antenna)
 | |
|  		sc->sc_stats.ast_ant_defswitch++;
 | |
|  	sc->sc_defant = antenna;
 | |
| @@ -11160,7 +11133,7 @@ ATH_SYSCTL_DECL(ath_sysctl_halparam, ctl
 | |
|  					break;
 | |
|  				}
 | |
|  				sc->sc_diversity = val;
 | |
| -				ath_hal_setdiversity(ah, val);
 | |
| +				ath_setdefantenna(sc, sc->sc_defant);
 | |
|  				break;
 | |
|  			case ATH_TXINTRPERIOD:
 | |
|  				/* XXX: validate? */
 | |
| --- a/ath/if_athvar.h
 | |
| +++ b/ath/if_athvar.h
 | |
| @@ -640,7 +640,6 @@ struct ath_softc {
 | |
|  	spinlock_t sc_hal_lock;                 /* hardware access lock */
 | |
|  	struct ath_ratectrl *sc_rc;		/* tx rate control support */
 | |
|  	struct ath_tx99 *sc_tx99; 		/* tx99 support */
 | |
| -	void (*sc_setdefantenna)(struct ath_softc *, u_int);
 | |
|  	const struct ath_hw_detect *sc_hwinfo;
 | |
|  
 | |
|  	unsigned int 	sc_invalid:1;		/* being detached */
 |