Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(462)

Issue 5990016: ath9k: AR9380 PAPRD changes to improve tx performance (Closed)

Created:
9 years, 11 months ago by Sam Leffler
Modified:
9 years, 7 months ago
Reviewers:
Paul Stewart
CC:
chromium-os-reviews_chromium.org, Olof Johansson, sleffler+cc_chromium.org, vbendeb+kernel_chromium.org, msb+croskernel_chromium.org
Visibility:
Public.

Description

ath9k: AR9380 PAPRD changes to improve tx performance ath9k_hw: fix PA predistortion HT40 mask The commit 'ath9k_hw: Disable PAPRD for rates with low Tx power' changed the code that sets the PAPRD rate masks to use only either the HT20 mask or the HT40 mask. This is wrong, as the hardware can still use HT20 rates even when configured for HT40, and the operating channel mode does not affect PAPRD operation. The register for the HT40 rate mask is applied as a mask on top of the other registers to selectively disable PAPRD for specific rates on HT40 packets only. This patch changes the code back to the old behavior which matches the intended use of these registers. While with current cards this should not make any practical difference (according to Atheros, the HT20 and HT40 mask should always be equal), it is more correct that way, and maybe the HT40 mask will be used for some rare corner cases in the future. Cc: Vasanthakumar Thiagarajan <vasanth@atheros.com>; Signed-off-by: Felix Fietkau <nbd@openwrt.org>; ath9k_hw: Configure appropriate Tx power when PAPRD fails Target Tx power available in eeprom is for PAPRD. If PAPRD fails, paprd scale factor needs to be detected from this target tx power. Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com>; ath9k_hw: Disable PAPRD for rates with low Tx power When the drop in Tx power for a particular mcs rate exceeds the paprd scale factor, paprd may not work properly. Disable paprd for any such rates. Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com>; ath9k_hw: Add a helper to get paprd scale factor Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com>; ath9k_hw: Move get_streams() to hw.h This helper can be used in multiple places. Also make it inline returning u8. Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com>; ath9k_hw: Remove unnecessary Rx IQ cal register configuration in ar9003_hw_tx_iq_cal() Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com>; ath9k_hw: Remove delay during regwrite of analog shift registers This is not needed for AR9003. Signed-off-by: Vasanthakumar Thiagarajan <vasanth@atheros.com>; ath9k_hw: fix PA predistortion training power selection The EEPROM contains scale factors for the tx power, which define the range of allowable difference between target power and training power. If the difference is too big, PA predistortion cannot be used. For 2.4 GHz there is only one scale factor, for 5 GHz there are three, depending on the specific frequency range. Signed-off-by: Felix Fietkau <nbd@openwrt.org>; ath9k_hw: fix the PA predistortion rate mask The EEPROM PAPRD rate mask fields only contain mask values for actual rates in the low 25 bits. The upper bits are reserved for tx power scale values. Add the proper mask definitions and use them before writing the values to the register. Signed-off-by: Felix Fietkau <nbd@openwrt.org>; ath9k: fix PA predistortion thermal measurement handling To be able to measure the thermal values correctly for PAPRD, we need to send training frames before setting up the gain table for the measurement, and then again afterwards for the actual training. For further improvement, send training frames at MCS0 instead of 54 MBit/s legacy. That way we can use the No-ACK flag for the transmission, which speeds up PAPRD training in general, as the hardware won't have to retransmit and wait for ACK timeout (was previously set to 4 * 6 transmission attempts). Signed-off-by: Felix Fietkau <nbd@openwrt.org>; ath9k: remove bfs_paprd_timestamp from struct ath_buf_state Change-Id: I3958195e689735f6f7e70381b91869376309b083 Signed-off-by: Felix Fietkau <nbd@openwrt.org>; Signed-off-by: John W. Linville <linville@tuxdriver.com>; BUG=chromium-os:10211 TEST=matfunc+secmat (no regressions) Committed: http://chrome-svn/viewvc/chromeos?view=rev&revision=b9c519b

Patch Set 1 #

Messages

Total messages: 2 (0 generated)
Sam Leffler
This replaces 6023005. It includes a change to ar9003_paprd_enable to fix the set_txpower call to ...
9 years, 11 months ago (2011-01-05 22:54:06 UTC) #1
Paul Stewart
9 years, 11 months ago (2011-01-06 00:30:41 UTC) #2
LGTM

Powered by Google App Engine
This is Rietveld 408576698