All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] ath5k: fixing broken power gain calibration at 5GHz and txpower handling
@ 2012-07-23 16:01 Thomas Huehn
  2012-07-23 16:01 ` [PATCH 1/2] ath5k: fix wrong per rate target power eeprom reads for AR5K_EEPROM_MODE_11A Thomas Huehn
  2012-07-23 16:01 ` [PATCH 2/2] ath5k: fix phy_init() to respect user txpower changes Thomas Huehn
  0 siblings, 2 replies; 30+ messages in thread
From: Thomas Huehn @ 2012-07-23 16:01 UTC (permalink / raw)
  To: linville
  Cc: jirislaby, mickflemm, mcgrof, ath5k-devel, linux-wireless,
	johannes.berg, thomas, nbd

This patch series fix a wrong power gain calibration in ath5k for
entire 5GHz band and enables consistent usage of tx_power specified by
the user.

(1)
Function ath5k_eeprom_read_target_rate_pwr_info() read 10 lines of
rate_pcal_info[i].target_power which worngly produces e.g. from 
Winstron CM9:
[   38.988000] [ath5k_eeprom_read_target_rate_pwr_info] rate_pcal_info[0].freq = 4920, rate_pcal_info[0].target_power_6to24 = 36, rate_pcal_info[0].target_power_54 = 24
[   39.004000] [ath5k_eeprom_read_target_rate_pwr_info] rate_pcal_info[1].freq = 5040, rate_pcal_info[1].target_power_6to24 = 36, rate_pcal_info[1].target_power_54 = 24
[   39.020000] [ath5k_eeprom_read_target_rate_pwr_info] rate_pcal_info[2].freq = 5170, rate_pcal_info[2].target_power_6to24 = 36, rate_pcal_info[2].target_power_54 = 26
[   39.040000] [ath5k_eeprom_read_target_rate_pwr_info] rate_pcal_info[3].freq = 5240, rate_pcal_info[3].target_power_6to24 = 38, rate_pcal_info[3].target_power_54 = 26
[   39.056000] [ath5k_eeprom_read_target_rate_pwr_info] rate_pcal_info[4].freq = 5320, rate_pcal_info[4].target_power_6to24 = 38, rate_pcal_info[4].target_power_54 = 26
[   39.076000] [ath5k_eeprom_read_target_rate_pwr_info] rate_pcal_info[5].freq = 5500, rate_pcal_info[5].target_power_6to24 = 38, rate_pcal_info[5].target_power_54 = 26
[   39.092000] [ath5k_eeprom_read_target_rate_pwr_info] rate_pcal_info[6].freq = 5700, rate_pcal_info[6].target_power_6to24 = 36, rate_pcal_info[6].target_power_54 = 26
[   39.112000] [ath5k_eeprom_read_target_rate_pwr_info] rate_pcal_info[7].freq = 5825, rate_pcal_info[7].target_power_6to24 = 34, rate_pcal_info[7].target_power_54 = 24
[   39.128000] [ath5k_eeprom_read_target_rate_pwr_info] rate_pcal_info[8].freq = 5360, rate_pcal_info[8].target_power_6to24 = 39, rate_pcal_info[8].target_power_54 = 39
[   39.144000] [ath5k_eeprom_read_target_rate_pwr_info] rate_pcal_info[9].freq = 5720, rate_pcal_info[9].target_power_6to24 = 38, rate_pcal_info[9].target_power_54 = 38

Beside that both last 2 lines hold invalid power gain values the last
line is responsible that subsequent interpolation functions apply
full power gain to all rates at all frequencies greater
rate_pcal_info[max].freq, i.e. > 5720 MHz. This leads to spectral
distortion when then global tx_power is higher than the expected
rate_pcal_info[xy].target_power_54 and therfore gives rates above
24MBit a very poor performance in therms of throughput. The first
patch reduces the eeprom calibration reads to 8. A validation
against madwifi showed 8x eeprom reads at 5GHz as well.

(2)
Furthermore the tx_power specified by the user is not respected in
cases where function phy_init() got called: tx_power is always
set to ah->ah_txpower.txp_cur_pwr which is never updated with the
txpower value specified by the user instead it equales max chan power
and is even incremented. So this wrong behavior amplifies the
occurrence of the performance problems coming from the wrong
calibration in cases the user set a low power. The second patch
fixes this by properly introduce and respect user tx_power.

Greetings Thomas


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

end of thread, other threads:[~2012-08-05 18:26 UTC | newest]

Thread overview: 30+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-07-23 16:01 [PATCH 0/2] ath5k: fixing broken power gain calibration at 5GHz and txpower handling Thomas Huehn
2012-07-23 16:01 ` [PATCH 1/2] ath5k: fix wrong per rate target power eeprom reads for AR5K_EEPROM_MODE_11A Thomas Huehn
2012-07-25 18:42   ` Nick Kossifidis
2012-07-25 18:55     ` Felix Fietkau
2012-07-25 22:22       ` Nick Kossifidis
2012-07-25 22:01     ` [ath5k-devel] " Thomas Huehn
2012-07-25 22:31       ` Nick Kossifidis
2012-08-04  8:14   ` Thomas Huehn
2012-08-04 15:28     ` Nick Kossifidis
2012-08-05 11:06       ` Thomas Huehn
2012-08-05 11:56         ` Nick Kossifidis
2012-08-05 12:37           ` Thomas Huehn
2012-08-05 12:59             ` Nick Kossifidis
2012-08-05 18:26             ` Nick Kossifidis
2012-07-23 16:01 ` [PATCH 2/2] ath5k: fix phy_init() to respect user txpower changes Thomas Huehn
2012-07-23 16:42   ` [ath5k-devel] " Bob Copeland
2012-07-23 18:25     ` Thomas Huehn
2012-07-23 18:29       ` Thomas Huehn
2012-07-23 19:20       ` Bob Copeland
2012-07-25 19:22   ` Nick Kossifidis
2012-07-25 23:07     ` Thomas Huehn
2012-07-25 23:23       ` Nick Kossifidis
2012-07-25 23:40         ` [ath5k-devel] " Thomas Huehn
2012-07-26 10:20           ` Nick Kossifidis
2012-07-26 10:28             ` Felix Fietkau
2012-07-26 10:31               ` Nick Kossifidis
2012-07-26 10:41                 ` Felix Fietkau
2012-07-26 17:48                   ` Nick Kossifidis
2012-07-26 20:56                     ` Thomas Huehn
2012-07-28 11:45                       ` Nick Kossifidis

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.