diff options
author | Shanyu Zhao <shanyu.zhao@intel.com> | 2010-09-21 19:54:01 -0400 |
---|---|---|
committer | Wey-Yi Guy <wey-yi.w.guy@intel.com> | 2010-10-07 18:53:58 -0400 |
commit | bf53f939e02c0e818df93ab130fedc0e4ba95796 (patch) | |
tree | e7606844f9f0404ad200a88362125ccbcc5f7727 /drivers/net/wireless/iwlwifi/iwl-6000.c | |
parent | 642454cc0774e0774bc1ccb4292d6dc0abd06d20 (diff) |
iwlagn: add temperature offset calib for 6000g2
6000g2 devices need to have temperature offset calibration. The runtime
uCode needs to receive the calibration results just like BB and LO
calibration. To do this, driver reads the offset value from NVM and send
it to uCode after runtime uCode is alive.
Signed-off-by: Shanyu Zhao <shanyu.zhao@intel.com>
Signed-off-by: Wey-Yi Guy <wey-yi.w.guy@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/iwl-6000.c')
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl-6000.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c index a45929ef22ec..4810258aefd9 100644 --- a/drivers/net/wireless/iwlwifi/iwl-6000.c +++ b/drivers/net/wireless/iwlwifi/iwl-6000.c | |||
@@ -204,6 +204,8 @@ static int iwl6000_hw_set_hw_params(struct iwl_priv *priv) | |||
204 | BIT(IWL_CALIB_BASE_BAND); | 204 | BIT(IWL_CALIB_BASE_BAND); |
205 | if (priv->cfg->need_dc_calib) | 205 | if (priv->cfg->need_dc_calib) |
206 | priv->hw_params.calib_rt_cfg |= BIT(IWL_CALIB_CFG_DC_IDX); | 206 | priv->hw_params.calib_rt_cfg |= BIT(IWL_CALIB_CFG_DC_IDX); |
207 | if (priv->cfg->need_temp_offset_calib) | ||
208 | priv->hw_params.calib_init_cfg |= BIT(IWL_CALIB_TEMP_OFFSET); | ||
207 | 209 | ||
208 | priv->hw_params.beacon_time_tsf_bits = IWLAGN_EXT_BEACON_TIME_POS; | 210 | priv->hw_params.beacon_time_tsf_bits = IWLAGN_EXT_BEACON_TIME_POS; |
209 | 211 | ||
@@ -536,6 +538,7 @@ struct iwl_cfg iwl6000g2a_2agn_cfg = { | |||
536 | .base_params = &iwl6000_base_params, | 538 | .base_params = &iwl6000_base_params, |
537 | .ht_params = &iwl6000_ht_params, | 539 | .ht_params = &iwl6000_ht_params, |
538 | .need_dc_calib = true, | 540 | .need_dc_calib = true, |
541 | .need_temp_offset_calib = true, | ||
539 | }; | 542 | }; |
540 | 543 | ||
541 | struct iwl_cfg iwl6000g2a_2abg_cfg = { | 544 | struct iwl_cfg iwl6000g2a_2abg_cfg = { |
@@ -552,6 +555,7 @@ struct iwl_cfg iwl6000g2a_2abg_cfg = { | |||
552 | .mod_params = &iwlagn_mod_params, | 555 | .mod_params = &iwlagn_mod_params, |
553 | .base_params = &iwl6000_base_params, | 556 | .base_params = &iwl6000_base_params, |
554 | .need_dc_calib = true, | 557 | .need_dc_calib = true, |
558 | .need_temp_offset_calib = true, | ||
555 | }; | 559 | }; |
556 | 560 | ||
557 | struct iwl_cfg iwl6000g2a_2bg_cfg = { | 561 | struct iwl_cfg iwl6000g2a_2bg_cfg = { |
@@ -568,6 +572,7 @@ struct iwl_cfg iwl6000g2a_2bg_cfg = { | |||
568 | .mod_params = &iwlagn_mod_params, | 572 | .mod_params = &iwlagn_mod_params, |
569 | .base_params = &iwl6000_base_params, | 573 | .base_params = &iwl6000_base_params, |
570 | .need_dc_calib = true, | 574 | .need_dc_calib = true, |
575 | .need_temp_offset_calib = true, | ||
571 | }; | 576 | }; |
572 | 577 | ||
573 | struct iwl_cfg iwl6000g2b_2agn_cfg = { | 578 | struct iwl_cfg iwl6000g2b_2agn_cfg = { |
@@ -586,6 +591,7 @@ struct iwl_cfg iwl6000g2b_2agn_cfg = { | |||
586 | .bt_params = &iwl6000_bt_params, | 591 | .bt_params = &iwl6000_bt_params, |
587 | .ht_params = &iwl6000_ht_params, | 592 | .ht_params = &iwl6000_ht_params, |
588 | .need_dc_calib = true, | 593 | .need_dc_calib = true, |
594 | .need_temp_offset_calib = true, | ||
589 | /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ | 595 | /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ |
590 | .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, | 596 | .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, |
591 | }; | 597 | }; |
@@ -605,6 +611,7 @@ struct iwl_cfg iwl6000g2b_2abg_cfg = { | |||
605 | .base_params = &iwl6000_base_params, | 611 | .base_params = &iwl6000_base_params, |
606 | .bt_params = &iwl6000_bt_params, | 612 | .bt_params = &iwl6000_bt_params, |
607 | .need_dc_calib = true, | 613 | .need_dc_calib = true, |
614 | .need_temp_offset_calib = true, | ||
608 | /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ | 615 | /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ |
609 | .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, | 616 | .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, |
610 | }; | 617 | }; |
@@ -625,6 +632,7 @@ struct iwl_cfg iwl6000g2b_2bgn_cfg = { | |||
625 | .bt_params = &iwl6000_bt_params, | 632 | .bt_params = &iwl6000_bt_params, |
626 | .ht_params = &iwl6000_ht_params, | 633 | .ht_params = &iwl6000_ht_params, |
627 | .need_dc_calib = true, | 634 | .need_dc_calib = true, |
635 | .need_temp_offset_calib = true, | ||
628 | /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ | 636 | /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ |
629 | .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, | 637 | .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, |
630 | }; | 638 | }; |
@@ -644,6 +652,7 @@ struct iwl_cfg iwl6000g2b_2bg_cfg = { | |||
644 | .base_params = &iwl6000_base_params, | 652 | .base_params = &iwl6000_base_params, |
645 | .bt_params = &iwl6000_bt_params, | 653 | .bt_params = &iwl6000_bt_params, |
646 | .need_dc_calib = true, | 654 | .need_dc_calib = true, |
655 | .need_temp_offset_calib = true, | ||
647 | /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ | 656 | /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ |
648 | .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, | 657 | .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, |
649 | }; | 658 | }; |
@@ -664,6 +673,7 @@ struct iwl_cfg iwl6000g2b_bgn_cfg = { | |||
664 | .bt_params = &iwl6000_bt_params, | 673 | .bt_params = &iwl6000_bt_params, |
665 | .ht_params = &iwl6000_ht_params, | 674 | .ht_params = &iwl6000_ht_params, |
666 | .need_dc_calib = true, | 675 | .need_dc_calib = true, |
676 | .need_temp_offset_calib = true, | ||
667 | /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ | 677 | /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ |
668 | .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, | 678 | .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, |
669 | }; | 679 | }; |
@@ -683,6 +693,7 @@ struct iwl_cfg iwl6000g2b_bg_cfg = { | |||
683 | .base_params = &iwl6000_base_params, | 693 | .base_params = &iwl6000_base_params, |
684 | .bt_params = &iwl6000_bt_params, | 694 | .bt_params = &iwl6000_bt_params, |
685 | .need_dc_calib = true, | 695 | .need_dc_calib = true, |
696 | .need_temp_offset_calib = true, | ||
686 | /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ | 697 | /* Due to bluetooth, we transmit 2.4 GHz probes only on antenna A */ |
687 | .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, | 698 | .scan_tx_antennas[IEEE80211_BAND_2GHZ] = ANT_A, |
688 | }; | 699 | }; |