linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ath9k: Save spectral scan data in network byteorder
@ 2013-01-15 12:02 Sven Eckelmann
  2013-01-16  8:59 ` Simon Wunderlich
  0 siblings, 1 reply; 8+ messages in thread
From: Sven Eckelmann @ 2013-01-15 12:02 UTC (permalink / raw)
  To: linux-wireless; +Cc: ath9k-devel, Sven Eckelmann, Simon Wunderlich

The sample data received through the spectral scan can be either in big or
little endian byteorder. This information isn't stored in the output file.
Therefore it is not possible for the analyzer software to find the correct byte
order.

It is relative common to get the data from a low end AP in big endian mode and
transfer it to another computer in little endian mode to analyze it. Therefore,
it would be better to store it in network (big endian) byte order.

Signed-off-by: Sven Eckelmann <sven@open-mesh.com>
Cc: Simon Wunderlich <siwu@hrz.tu-chemnitz.de>
---
A patch for FFT_eval was also sent to the author.

 drivers/net/wireless/ath/ath9k/recv.c |   10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/drivers/net/wireless/ath/ath9k/recv.c b/drivers/net/wireless/ath/ath9k/recv.c
index d7c129b..2fac787 100644
--- a/drivers/net/wireless/ath/ath9k/recv.c
+++ b/drivers/net/wireless/ath/ath9k/recv.c
@@ -1064,8 +1064,9 @@ static void ath_process_fft(struct ath_softc *sc, struct ieee80211_hdr *hdr,
 
 	fft_sample.tlv.type = ATH_FFT_SAMPLE_HT20;
 	fft_sample.tlv.length = sizeof(fft_sample) - sizeof(fft_sample.tlv);
+	fft_sample.tlv.length = __cpu_to_be16(fft_sample.tlv.length);
 
-	fft_sample.freq = ah->curchan->chan->center_freq;
+	fft_sample.freq = __cpu_to_be16(ah->curchan->chan->center_freq);
 	fft_sample.rssi = fix_rssi_inv_only(rs->rs_rssi_ctl0);
 	fft_sample.noise = ah->noise;
 
@@ -1106,13 +1107,16 @@ static void ath_process_fft(struct ath_softc *sc, struct ieee80211_hdr *hdr,
 	mag_info = ((struct ath_ht20_mag_info *)radar_info) - 1;
 
 	/* Apply exponent and grab further auxiliary information. */
-	for (i = 0; i < SPECTRAL_HT20_NUM_BINS; i++)
+	for (i = 0; i < SPECTRAL_HT20_NUM_BINS; i++) {
 		fft_sample.data[i] = bins[i] << mag_info->max_exp;
+		fft_sample.data[i] = __cpu_to_be16(fft_sample.data[i]);
+	}
 
 	fft_sample.max_magnitude = spectral_max_magnitude(mag_info->all_bins);
+	fft_sample.max_magnitude = __cpu_to_be16(fft_sample.max_magnitude);
 	fft_sample.max_index = spectral_max_index(mag_info->all_bins);
 	fft_sample.bitmap_weight = spectral_bitmap_weight(mag_info->all_bins);
-	fft_sample.tsf = tsf;
+	fft_sample.tsf = __cpu_to_be64(tsf);
 
 	ath_debug_send_fft_sample(sc, &fft_sample.tlv);
 #endif
-- 
1.7.10.4


^ permalink raw reply related	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2013-01-16 21:39 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-01-15 12:02 [PATCH] ath9k: Save spectral scan data in network byteorder Sven Eckelmann
2013-01-16  8:59 ` Simon Wunderlich
2013-01-16  9:53   ` Zefir Kurtisi
2013-01-16 13:18     ` Simon Wunderlich
2013-01-16 16:00       ` Zefir Kurtisi
2013-01-16 18:22         ` Simon Wunderlich
2013-01-16 19:46         ` [RFC] ath9k: Don't preshift spectral scan bins Sven Eckelmann
2013-01-16 21:39     ` [PATCH] ath9k: Save spectral scan data in network byteorder Chadd, Adrian

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).