Search Linux Wireless

Re: [PATCH] ath5k: Fix 64 bits TSF reading.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sun, 2010-02-28 at 23:08 +0100, Benoit Papillault wrote:

> -	u64 tsf = ath5k_hw_reg_read(ah, AR5K_TSF_U32);
> +	u32 tsf_lower, tsf_upper;
> +
> +	/*
> +	 * While reading TSF upper and then lower part, the clock is still
> +	 * counting so the lower part can rollover just after reading the
> +	 * upper part. In this case, we expect the lower part to be quite
> +	 * small (let's say less than 100us) and we would just need to read
> +	 * the upper part again to get the correct value.
> +	 *
> +	 * Tested on AR2425 (AR5001)
> +	 */
> +
> +	tsf_upper = ath5k_hw_reg_read(ah, AR5K_TSF_U32);
> +	tsf_lower = ath5k_hw_reg_read(ah, AR5K_TSF_L32);
> +
> +	if (tsf_lower < 100)
> +		tsf_upper = ath5k_hw_reg_read(ah, AR5K_TSF_U32);

You would typically do

do {
   read upper 1
   read lower
   read upper 2
} while (upper 1 != upper 2)

or so but that obviously incurs another read in most cases.

johannes

--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux