diff options
author | Wey-Yi Guy <wey-yi.w.guy@intel.com> | 2009-09-25 17:24:26 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2009-10-07 16:39:36 -0400 |
commit | d8c07e7a84950b5fdef424c6dabe6bed3a9ffa19 (patch) | |
tree | 8286d65e226654bf403c0ac551f3ef16fd07087b /drivers/net/wireless/iwlwifi/iwl-5000.c | |
parent | 2b396a120922062a0ffd2648be3ed7e72ff83620 (diff) |
iwlwifi: Chain Noise Calibration for 6000 series
Adding support of Chain Noise Calibration for 6000 series NICs.
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Signed-off-by: Reinette Chatre <reinette.chatre@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-5000.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-5000.c | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c index 68d97f50fd00..660fd51d190b 100644 --- a/drivers/net/wireless/iwlwifi/iwl-5000.c +++ b/drivers/net/wireless/iwlwifi/iwl-5000.c | |||
@@ -301,14 +301,17 @@ u16 iwl5000_eeprom_calib_version(struct iwl_priv *priv) | |||
301 | static void iwl5000_gain_computation(struct iwl_priv *priv, | 301 | static void iwl5000_gain_computation(struct iwl_priv *priv, |
302 | u32 average_noise[NUM_RX_CHAINS], | 302 | u32 average_noise[NUM_RX_CHAINS], |
303 | u16 min_average_noise_antenna_i, | 303 | u16 min_average_noise_antenna_i, |
304 | u32 min_average_noise) | 304 | u32 min_average_noise, |
305 | u8 default_chain) | ||
305 | { | 306 | { |
306 | int i; | 307 | int i; |
307 | s32 delta_g; | 308 | s32 delta_g; |
308 | struct iwl_chain_noise_data *data = &priv->chain_noise_data; | 309 | struct iwl_chain_noise_data *data = &priv->chain_noise_data; |
309 | 310 | ||
310 | /* Find Gain Code for the antennas B and C */ | 311 | /* |
311 | for (i = 1; i < NUM_RX_CHAINS; i++) { | 312 | * Find Gain Code for the chains based on "default chain" |
313 | */ | ||
314 | for (i = default_chain + 1; i < NUM_RX_CHAINS; i++) { | ||
312 | if ((data->disconn_array[i])) { | 315 | if ((data->disconn_array[i])) { |
313 | data->delta_gain_code[i] = 0; | 316 | data->delta_gain_code[i] = 0; |
314 | continue; | 317 | continue; |
@@ -1676,6 +1679,7 @@ struct iwl_cfg iwl5300_agn_cfg = { | |||
1676 | .need_pll_cfg = true, | 1679 | .need_pll_cfg = true, |
1677 | .ht_greenfield_support = true, | 1680 | .ht_greenfield_support = true, |
1678 | .led_compensation = 51, | 1681 | .led_compensation = 51, |
1682 | .chain_noise_num_beacons = IWL_CAL_NUM_BEACONS, | ||
1679 | }; | 1683 | }; |
1680 | 1684 | ||
1681 | struct iwl_cfg iwl5100_bg_cfg = { | 1685 | struct iwl_cfg iwl5100_bg_cfg = { |
@@ -1694,6 +1698,7 @@ struct iwl_cfg iwl5100_bg_cfg = { | |||
1694 | .need_pll_cfg = true, | 1698 | .need_pll_cfg = true, |
1695 | .ht_greenfield_support = true, | 1699 | .ht_greenfield_support = true, |
1696 | .led_compensation = 51, | 1700 | .led_compensation = 51, |
1701 | .chain_noise_num_beacons = IWL_CAL_NUM_BEACONS, | ||
1697 | }; | 1702 | }; |
1698 | 1703 | ||
1699 | struct iwl_cfg iwl5100_abg_cfg = { | 1704 | struct iwl_cfg iwl5100_abg_cfg = { |
@@ -1712,6 +1717,7 @@ struct iwl_cfg iwl5100_abg_cfg = { | |||
1712 | .need_pll_cfg = true, | 1717 | .need_pll_cfg = true, |
1713 | .ht_greenfield_support = true, | 1718 | .ht_greenfield_support = true, |
1714 | .led_compensation = 51, | 1719 | .led_compensation = 51, |
1720 | .chain_noise_num_beacons = IWL_CAL_NUM_BEACONS, | ||
1715 | }; | 1721 | }; |
1716 | 1722 | ||
1717 | struct iwl_cfg iwl5100_agn_cfg = { | 1723 | struct iwl_cfg iwl5100_agn_cfg = { |
@@ -1730,6 +1736,7 @@ struct iwl_cfg iwl5100_agn_cfg = { | |||
1730 | .need_pll_cfg = true, | 1736 | .need_pll_cfg = true, |
1731 | .ht_greenfield_support = true, | 1737 | .ht_greenfield_support = true, |
1732 | .led_compensation = 51, | 1738 | .led_compensation = 51, |
1739 | .chain_noise_num_beacons = IWL_CAL_NUM_BEACONS, | ||
1733 | }; | 1740 | }; |
1734 | 1741 | ||
1735 | struct iwl_cfg iwl5350_agn_cfg = { | 1742 | struct iwl_cfg iwl5350_agn_cfg = { |
@@ -1748,6 +1755,7 @@ struct iwl_cfg iwl5350_agn_cfg = { | |||
1748 | .need_pll_cfg = true, | 1755 | .need_pll_cfg = true, |
1749 | .ht_greenfield_support = true, | 1756 | .ht_greenfield_support = true, |
1750 | .led_compensation = 51, | 1757 | .led_compensation = 51, |
1758 | .chain_noise_num_beacons = IWL_CAL_NUM_BEACONS, | ||
1751 | }; | 1759 | }; |
1752 | 1760 | ||
1753 | struct iwl_cfg iwl5150_agn_cfg = { | 1761 | struct iwl_cfg iwl5150_agn_cfg = { |
@@ -1766,6 +1774,7 @@ struct iwl_cfg iwl5150_agn_cfg = { | |||
1766 | .need_pll_cfg = true, | 1774 | .need_pll_cfg = true, |
1767 | .ht_greenfield_support = true, | 1775 | .ht_greenfield_support = true, |
1768 | .led_compensation = 51, | 1776 | .led_compensation = 51, |
1777 | .chain_noise_num_beacons = IWL_CAL_NUM_BEACONS, | ||
1769 | }; | 1778 | }; |
1770 | 1779 | ||
1771 | MODULE_FIRMWARE(IWL5000_MODULE_FIRMWARE(IWL5000_UCODE_API_MAX)); | 1780 | MODULE_FIRMWARE(IWL5000_MODULE_FIRMWARE(IWL5000_UCODE_API_MAX)); |