diff options
author | Rafał Miłecki <zajec5@gmail.com> | 2013-03-20 12:26:03 -0400 |
---|---|---|
committer | Rafał Miłecki <zajec5@gmail.com> | 2013-04-23 06:27:56 -0400 |
commit | 37859a75cc52cfe845a587ce96f6d27b7418b1fb (patch) | |
tree | 2eae2ca53e3e2b1f4cdaa01eb00ba9999b4604af /drivers/net/wireless | |
parent | e5ab1fd7a5932d2e863935abe52d5aa0c4139c87 (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.c | 64 |
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 */ |
1744 | static void b43_nphy_rev2_rssi_cal(struct b43_wldev *dev, u8 type) | 1752 | static 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; |