aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless
diff options
context:
space:
mode:
authorRafał Miłecki <zajec5@gmail.com>2013-03-20 12:26:03 -0400
committerRafał Miłecki <zajec5@gmail.com>2013-04-23 06:27:56 -0400
commit37859a75cc52cfe845a587ce96f6d27b7418b1fb (patch)
tree2eae2ca53e3e2b1f4cdaa01eb00ba9999b4604af /drivers/net/wireless
parente5ab1fd7a5932d2e863935abe52d5aa0c4139c87 (diff)
b43: N-PHY: use more friendly variables names in RSSI code
Signed-off-by: Rafał Miłecki <zajec5@gmail.com>
Diffstat (limited to 'drivers/net/wireless')
-rw-r--r--drivers/net/wireless/b43/phy_n.c64
1 files changed, 36 insertions, 28 deletions
diff --git a/drivers/net/wireless/b43/phy_n.c b/drivers/net/wireless/b43/phy_n.c
index ebbb50bd6241..1063fe428c75 100644
--- a/drivers/net/wireless/b43/phy_n.c
+++ b/drivers/net/wireless/b43/phy_n.c
@@ -1590,7 +1590,7 @@ static void b43_nphy_rev3_rssi_cal(struct b43_wldev *dev)
1590 1590
1591 u16 r; /* routing */ 1591 u16 r; /* routing */
1592 u8 rx_core_state; 1592 u8 rx_core_state;
1593 u8 core, i, j; 1593 int core, i, j, vcm;
1594 1594
1595 class = b43_nphy_classifier(dev, 0, 0); 1595 class = b43_nphy_classifier(dev, 0, 0);
1596 b43_nphy_classifier(dev, 7, 4); 1596 b43_nphy_classifier(dev, 7, 4);
@@ -1624,33 +1624,40 @@ static void b43_nphy_rev3_rssi_cal(struct b43_wldev *dev)
1624 r = core ? B2056_RX1 : B2056_RX0; 1624 r = core ? B2056_RX1 : B2056_RX0;
1625 b43_nphy_scale_offset_rssi(dev, 0, 0, core + 1, N_RAIL_I, 2); 1625 b43_nphy_scale_offset_rssi(dev, 0, 0, core + 1, N_RAIL_I, 2);
1626 b43_nphy_scale_offset_rssi(dev, 0, 0, core + 1, N_RAIL_Q, 2); 1626 b43_nphy_scale_offset_rssi(dev, 0, 0, core + 1, N_RAIL_Q, 2);
1627 for (i = 0; i < 8; i++) { 1627
1628 /* Grab RSSI results for every possible VCM */
1629 for (vcm = 0; vcm < 8; vcm++) {
1628 b43_radio_maskset(dev, r | B2056_RX_RSSI_MISC, 0xE3, 1630 b43_radio_maskset(dev, r | B2056_RX_RSSI_MISC, 0xE3,
1629 i << 2); 1631 vcm << 2);
1630 b43_nphy_poll_rssi(dev, 2, results[i], 8); 1632 b43_nphy_poll_rssi(dev, 2, results[vcm], 8);
1631 } 1633 }
1634
1635 /* Find out which VCM got the best results */
1632 for (i = 0; i < 4; i += 2) { 1636 for (i = 0; i < 4; i += 2) {
1633 s32 curr; 1637 s32 currd;
1634 s32 mind = 0x100000; 1638 s32 mind = 0x100000;
1635 s32 minpoll = 249; 1639 s32 minpoll = 249;
1636 u8 minvcm = 0; 1640 u8 minvcm = 0;
1637 if (2 * core != i) 1641 if (2 * core != i)
1638 continue; 1642 continue;
1639 for (j = 0; j < 8; j++) { 1643 for (vcm = 0; vcm < 8; vcm++) {
1640 curr = results[j][i] * results[j][i] + 1644 currd = results[vcm][i] * results[vcm][i] +
1641 results[j][i + 1] * results[j][i]; 1645 results[vcm][i + 1] * results[vcm][i];
1642 if (curr < mind) { 1646 if (currd < mind) {
1643 mind = curr; 1647 mind = currd;
1644 minvcm = j; 1648 minvcm = vcm;
1645 } 1649 }
1646 if (results[j][i] < minpoll) 1650 if (results[vcm][i] < minpoll)
1647 minpoll = results[j][i]; 1651 minpoll = results[vcm][i];
1648 } 1652 }
1649 vcm_final = minvcm; 1653 vcm_final = minvcm;
1650 results_min[i] = minpoll; 1654 results_min[i] = minpoll;
1651 } 1655 }
1656
1657 /* Select the best VCM */
1652 b43_radio_maskset(dev, r | B2056_RX_RSSI_MISC, 0xE3, 1658 b43_radio_maskset(dev, r | B2056_RX_RSSI_MISC, 0xE3,
1653 vcm_final << 2); 1659 vcm_final << 2);
1660
1654 for (i = 0; i < 4; i++) { 1661 for (i = 0; i < 4; i++) {
1655 if (core != i / 2) 1662 if (core != i / 2)
1656 continue; 1663 continue;
@@ -1667,6 +1674,7 @@ static void b43_nphy_rev3_rssi_cal(struct b43_wldev *dev)
1667 2); 1674 2);
1668 } 1675 }
1669 } 1676 }
1677
1670 for (core = 0; core < 2; core++) { 1678 for (core = 0; core < 2; core++) {
1671 if (!(rx_core_state & (1 << core))) 1679 if (!(rx_core_state & (1 << core)))
1672 continue; 1680 continue;
@@ -1743,7 +1751,7 @@ static void b43_nphy_rev3_rssi_cal(struct b43_wldev *dev)
1743/* http://bcm-v4.sipsolutions.net/802.11/PHY/N/RSSICal */ 1751/* http://bcm-v4.sipsolutions.net/802.11/PHY/N/RSSICal */
1744static void b43_nphy_rev2_rssi_cal(struct b43_wldev *dev, u8 type) 1752static void b43_nphy_rev2_rssi_cal(struct b43_wldev *dev, u8 type)
1745{ 1753{
1746 int i, j; 1754 int i, j, vcm;
1747 u8 state[4]; 1755 u8 state[4];
1748 u8 code, val; 1756 u8 code, val;
1749 u16 class, override; 1757 u16 class, override;
@@ -1803,37 +1811,37 @@ static void b43_nphy_rev2_rssi_cal(struct b43_wldev *dev, u8 type)
1803 b43_nphy_scale_offset_rssi(dev, 0, 0, 5, N_RAIL_I, type); 1811 b43_nphy_scale_offset_rssi(dev, 0, 0, 5, N_RAIL_I, type);
1804 b43_nphy_scale_offset_rssi(dev, 0, 0, 5, N_RAIL_Q, type); 1812 b43_nphy_scale_offset_rssi(dev, 0, 0, 5, N_RAIL_Q, type);
1805 1813
1806 for (i = 0; i < 4; i++) { 1814 for (vcm = 0; vcm < 4; vcm++) {
1807 u8 tmp[4]; 1815 u8 tmp[4];
1808 for (j = 0; j < 4; j++) 1816 for (j = 0; j < 4; j++)
1809 tmp[j] = i; 1817 tmp[j] = vcm;
1810 if (type != 1) 1818 if (type != 1)
1811 b43_nphy_set_rssi_2055_vcm(dev, type, tmp); 1819 b43_nphy_set_rssi_2055_vcm(dev, type, tmp);
1812 b43_nphy_poll_rssi(dev, type, results[i], 8); 1820 b43_nphy_poll_rssi(dev, type, results[vcm], 8);
1813 if (type < 2) 1821 if (type < 2)
1814 for (j = 0; j < 2; j++) 1822 for (j = 0; j < 2; j++)
1815 miniq[i][j] = min(results[i][2 * j], 1823 miniq[vcm][j] = min(results[vcm][2 * j],
1816 results[i][2 * j + 1]); 1824 results[vcm][2 * j + 1]);
1817 } 1825 }
1818 1826
1819 for (i = 0; i < 4; i++) { 1827 for (i = 0; i < 4; i++) {
1820 s32 mind = 0x100000; 1828 s32 mind = 0x100000;
1821 u8 minvcm = 0; 1829 u8 minvcm = 0;
1822 s32 minpoll = 249; 1830 s32 minpoll = 249;
1823 s32 curr; 1831 s32 currd;
1824 for (j = 0; j < 4; j++) { 1832 for (vcm = 0; vcm < 4; vcm++) {
1825 if (type == 2) 1833 if (type == 2)
1826 curr = abs(results[j][i]); 1834 currd = abs(results[vcm][i]);
1827 else 1835 else
1828 curr = abs(miniq[j][i / 2] - code * 8); 1836 currd = abs(miniq[vcm][i / 2] - code * 8);
1829 1837
1830 if (curr < mind) { 1838 if (currd < mind) {
1831 mind = curr; 1839 mind = currd;
1832 minvcm = j; 1840 minvcm = vcm;
1833 } 1841 }
1834 1842
1835 if (results[j][i] < minpoll) 1843 if (results[vcm][i] < minpoll)
1836 minpoll = results[j][i]; 1844 minpoll = results[vcm][i];
1837 } 1845 }
1838 results_min[i] = minpoll; 1846 results_min[i] = minpoll;
1839 vcm_final[i] = minvcm; 1847 vcm_final[i] = minvcm;