aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRafał Miłecki <zajec5@gmail.com>2014-04-20 07:05:51 -0400
committerJohn W. Linville <linville@tuxdriver.com>2014-04-22 15:06:34 -0400
commit557579279f5f783fa86295cf767a19f9e98bb62d (patch)
tree23361ef430480599645a6555fd2936bcc7e0bb32
parentc7ebe237e0bf8960f9b764c5fc51f6448fa48cc7 (diff)
b43: N-PHY: enable forgotten write of hw power adjust table
We've implemented table calculation, but forgot to enable writing it in power setup function. By the way document table layout. Signed-off-by: Rafał Miłecki <zajec5@gmail.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r--drivers/net/wireless/b43/phy_n.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/drivers/net/wireless/b43/phy_n.c b/drivers/net/wireless/b43/phy_n.c
index 291b38c45420..482b31210d28 100644
--- a/drivers/net/wireless/b43/phy_n.c
+++ b/drivers/net/wireless/b43/phy_n.c
@@ -3400,6 +3400,20 @@ static void b43_nphy_tx_prepare_adjusted_power_table(struct b43_wldev *dev)
3400 u8 idx, delta; 3400 u8 idx, delta;
3401 u8 i, stf_mode; 3401 u8 i, stf_mode;
3402 3402
3403 /* Array adj_pwr_tbl corresponds to the hardware table. It consists of
3404 * 21 groups, each containing 4 entries.
3405 *
3406 * First group has entries for CCK modulation.
3407 * The rest of groups has 1 entry per modulation (SISO, CDD, STBC, SDM).
3408 *
3409 * Group 0 is for CCK
3410 * Groups 1..4 use BPSK (group per coding rate)
3411 * Groups 5..8 use QPSK (group per coding rate)
3412 * Groups 9..12 use 16-QAM (group per coding rate)
3413 * Groups 13..16 use 64-QAM (group per coding rate)
3414 * Groups 17..20 are unknown
3415 */
3416
3403 for (i = 0; i < 4; i++) 3417 for (i = 0; i < 4; i++)
3404 nphy->adj_pwr_tbl[i] = nphy->tx_power_offset[i]; 3418 nphy->adj_pwr_tbl[i] = nphy->tx_power_offset[i];
3405 3419
@@ -3598,10 +3612,8 @@ static void b43_nphy_tx_power_ctl_setup(struct b43_wldev *dev)
3598 } 3612 }
3599 3613
3600 b43_nphy_tx_prepare_adjusted_power_table(dev); 3614 b43_nphy_tx_prepare_adjusted_power_table(dev);
3601 /*
3602 b43_ntab_write_bulk(dev, B43_NTAB16(26, 64), 84, nphy->adj_pwr_tbl); 3615 b43_ntab_write_bulk(dev, B43_NTAB16(26, 64), 84, nphy->adj_pwr_tbl);
3603 b43_ntab_write_bulk(dev, B43_NTAB16(27, 64), 84, nphy->adj_pwr_tbl); 3616 b43_ntab_write_bulk(dev, B43_NTAB16(27, 64), 84, nphy->adj_pwr_tbl);
3604 */
3605 3617
3606 if (nphy->hang_avoid) 3618 if (nphy->hang_avoid)
3607 b43_nphy_stay_in_carrier_search(dev, false); 3619 b43_nphy_stay_in_carrier_search(dev, false);