Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 459f5f90 authored by Sujith's avatar Sujith Committed by John W. Linville
Browse files

ath9k: Fix nexttbtt calculation



nexttbtt has to be obtained from the timestamp of the beacon
obtained from mac80211. Fix this.
And <asm/unaligned.h> is not needed anymore.

Signed-off-by: default avatarSujith <Sujith.Manoharan@atheros.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent 980b24da
Loading
Loading
Loading
Loading
+6 −3
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

 /* Implementation of beacon processing. */

#include <asm/unaligned.h>
#include "core.h"

/*
@@ -305,6 +304,7 @@ int ath_beacon_alloc(struct ath_softc *sc, int if_id)
	struct ieee80211_hdr *hdr;
	struct ath_buf *bf;
	struct sk_buff *skb;
	__le64 tstamp;

	avp = sc->sc_vaps[if_id];
	ASSERT(avp);
@@ -370,6 +370,9 @@ int ath_beacon_alloc(struct ath_softc *sc, int if_id)
		return -ENOMEM;
	}

	tstamp = ((struct ieee80211_mgmt *)skb->data)->u.beacon.timestamp;
	sc->bc_tstamp = le64_to_cpu(tstamp);

	/*
	 * Calculate a TSF adjustment factor required for
	 * staggered beacons.  Note that we assume the format
@@ -669,8 +672,8 @@ void ath_beacon_config(struct ath_softc *sc, int if_id)
	conf.bmiss_timeout = ATH_DEFAULT_BMISS_LIMIT * conf.beacon_interval;

	/* extract tstamp from last beacon and convert to TU */
	nexttbtt = TSF_TO_TU(get_unaligned_le32(conf.u.last_tstamp + 4),
			     get_unaligned_le32(conf.u.last_tstamp));
	nexttbtt = TSF_TO_TU(sc->bc_tstamp >> 32, sc->bc_tstamp);

	/* XXX conditionalize multi-bss support? */
	if (sc->sc_ah->ah_opmode == ATH9K_M_HOSTAP) {
		/*
+1 −0
Original line number Diff line number Diff line
@@ -1001,6 +1001,7 @@ struct ath_softc {
	u32 sc_bhalq;
	u32 sc_bmisscount;
	u32 ast_be_xmit;	/* beacons transmitted */
	u64 bc_tstamp;

	/* Rate */
	struct ieee80211_rate rates[IEEE80211_NUM_BANDS][ATH_RATE_MAX];