ath5k: fix exp off-by-one when computing OFDM delta slope
authorForrest Zhang <forrest@hifulltech.com>
Wed, 13 May 2009 15:14:39 +0000 (11:14 -0400)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 20 May 2009 18:07:51 +0000 (14:07 -0400)
commita54be5d43aa2d6febc5a4f8dd3b87b9429b60437
tree5488ef943dbf8816910f0df3703e842a2a541f4e
parent88f16db7a2fa63b9242e8a0fbc40d51722f2e2f9
ath5k: fix exp off-by-one when computing OFDM delta slope

Commit e8f055f0c3b ("ath5k: Update reset code") subtly changed the
code that computes floating point values for the PHY3_TIMING register
such that the exponent is off by a decimal point, which can cause
problems with OFDM channel operation.

get_bitmask_order() actually returns the highest bit set plus one,
whereas the previous code wanted the highest bit set.  Instead, use
ilog2 which is what this code is really calculating.  Also check
coef_scaled to handle the (invalid) case where we need log2(0).

Signed-off-by: Bob Copeland <me@bobcopeland.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/ath5k/reset.c