Commit 050681b7 authored by Jay Sternberg's avatar Jay Sternberg Committed by John W. Linville

iwlwifi: parametrize configuration of the PLL for exclusion on 6000

added a config parameter to enable setting PLL_CFG.  older hardware has
this parameter set true.  the 6000 family does not support this setting,
so this parameter set false.
Signed-off-by: default avatarJay Sternberg <jay.e.sternberg@linux.intel.com>
Signed-off-by: default avatarReinette Chatre <reinette.chatre@intel.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent c0bac76a
...@@ -68,5 +68,6 @@ struct iwl_cfg iwl100_bgn_cfg = { ...@@ -68,5 +68,6 @@ struct iwl_cfg iwl100_bgn_cfg = {
.mod_params = &iwl50_mod_params, .mod_params = &iwl50_mod_params,
.valid_tx_ant = ANT_A, .valid_tx_ant = ANT_A,
.valid_rx_ant = ANT_AB, .valid_rx_ant = ANT_AB,
.need_pll_cfg = true,
}; };
...@@ -109,7 +109,8 @@ static int iwl5000_apm_init(struct iwl_priv *priv) ...@@ -109,7 +109,8 @@ static int iwl5000_apm_init(struct iwl_priv *priv)
iwl_set_bit(priv, CSR_HW_IF_CONFIG_REG, iwl_set_bit(priv, CSR_HW_IF_CONFIG_REG,
CSR_HW_IF_CONFIG_REG_BIT_HAP_WAKE_L1A); CSR_HW_IF_CONFIG_REG_BIT_HAP_WAKE_L1A);
iwl_set_bit(priv, CSR_ANA_PLL_CFG, CSR50_ANA_PLL_CFG_VAL); if (priv->cfg->need_pll_cfg)
iwl_set_bit(priv, CSR_ANA_PLL_CFG, CSR50_ANA_PLL_CFG_VAL);
/* set "initialization complete" bit to move adapter /* set "initialization complete" bit to move adapter
* D0U* --> D0A* state */ * D0U* --> D0A* state */
...@@ -177,7 +178,8 @@ static int iwl5000_apm_reset(struct iwl_priv *priv) ...@@ -177,7 +178,8 @@ static int iwl5000_apm_reset(struct iwl_priv *priv)
/* FIXME: put here L1A -L0S w/a */ /* FIXME: put here L1A -L0S w/a */
iwl_set_bit(priv, CSR_ANA_PLL_CFG, CSR50_ANA_PLL_CFG_VAL); if (priv->cfg->need_pll_cfg)
iwl_set_bit(priv, CSR_ANA_PLL_CFG, CSR50_ANA_PLL_CFG_VAL);
/* set "initialization complete" bit to move adapter /* set "initialization complete" bit to move adapter
* D0U* --> D0A* state */ * D0U* --> D0A* state */
...@@ -1548,6 +1550,7 @@ struct iwl_cfg iwl5300_agn_cfg = { ...@@ -1548,6 +1550,7 @@ struct iwl_cfg iwl5300_agn_cfg = {
.mod_params = &iwl50_mod_params, .mod_params = &iwl50_mod_params,
.valid_tx_ant = ANT_ABC, .valid_tx_ant = ANT_ABC,
.valid_rx_ant = ANT_ABC, .valid_rx_ant = ANT_ABC,
.need_pll_cfg = true,
}; };
struct iwl_cfg iwl5100_bg_cfg = { struct iwl_cfg iwl5100_bg_cfg = {
...@@ -1563,6 +1566,7 @@ struct iwl_cfg iwl5100_bg_cfg = { ...@@ -1563,6 +1566,7 @@ struct iwl_cfg iwl5100_bg_cfg = {
.mod_params = &iwl50_mod_params, .mod_params = &iwl50_mod_params,
.valid_tx_ant = ANT_B, .valid_tx_ant = ANT_B,
.valid_rx_ant = ANT_AB, .valid_rx_ant = ANT_AB,
.need_pll_cfg = true,
}; };
struct iwl_cfg iwl5100_abg_cfg = { struct iwl_cfg iwl5100_abg_cfg = {
...@@ -1578,6 +1582,7 @@ struct iwl_cfg iwl5100_abg_cfg = { ...@@ -1578,6 +1582,7 @@ struct iwl_cfg iwl5100_abg_cfg = {
.mod_params = &iwl50_mod_params, .mod_params = &iwl50_mod_params,
.valid_tx_ant = ANT_B, .valid_tx_ant = ANT_B,
.valid_rx_ant = ANT_AB, .valid_rx_ant = ANT_AB,
.need_pll_cfg = true,
}; };
struct iwl_cfg iwl5100_agn_cfg = { struct iwl_cfg iwl5100_agn_cfg = {
...@@ -1593,6 +1598,7 @@ struct iwl_cfg iwl5100_agn_cfg = { ...@@ -1593,6 +1598,7 @@ struct iwl_cfg iwl5100_agn_cfg = {
.mod_params = &iwl50_mod_params, .mod_params = &iwl50_mod_params,
.valid_tx_ant = ANT_B, .valid_tx_ant = ANT_B,
.valid_rx_ant = ANT_AB, .valid_rx_ant = ANT_AB,
.need_pll_cfg = true,
}; };
struct iwl_cfg iwl5350_agn_cfg = { struct iwl_cfg iwl5350_agn_cfg = {
...@@ -1608,6 +1614,7 @@ struct iwl_cfg iwl5350_agn_cfg = { ...@@ -1608,6 +1614,7 @@ struct iwl_cfg iwl5350_agn_cfg = {
.mod_params = &iwl50_mod_params, .mod_params = &iwl50_mod_params,
.valid_tx_ant = ANT_ABC, .valid_tx_ant = ANT_ABC,
.valid_rx_ant = ANT_ABC, .valid_rx_ant = ANT_ABC,
.need_pll_cfg = true,
}; };
struct iwl_cfg iwl5150_agn_cfg = { struct iwl_cfg iwl5150_agn_cfg = {
...@@ -1623,6 +1630,7 @@ struct iwl_cfg iwl5150_agn_cfg = { ...@@ -1623,6 +1630,7 @@ struct iwl_cfg iwl5150_agn_cfg = {
.mod_params = &iwl50_mod_params, .mod_params = &iwl50_mod_params,
.valid_tx_ant = ANT_A, .valid_tx_ant = ANT_A,
.valid_rx_ant = ANT_AB, .valid_rx_ant = ANT_AB,
.need_pll_cfg = true,
}; };
MODULE_FIRMWARE(IWL5000_MODULE_FIRMWARE(IWL5000_UCODE_API_MAX)); MODULE_FIRMWARE(IWL5000_MODULE_FIRMWARE(IWL5000_UCODE_API_MAX));
......
...@@ -74,6 +74,7 @@ struct iwl_cfg iwl6000_2ag_cfg = { ...@@ -74,6 +74,7 @@ struct iwl_cfg iwl6000_2ag_cfg = {
.mod_params = &iwl50_mod_params, .mod_params = &iwl50_mod_params,
.valid_tx_ant = ANT_BC, .valid_tx_ant = ANT_BC,
.valid_rx_ant = ANT_BC, .valid_rx_ant = ANT_BC,
.need_pll_cfg = false,
}; };
struct iwl_cfg iwl6000_2agn_cfg = { struct iwl_cfg iwl6000_2agn_cfg = {
...@@ -89,6 +90,7 @@ struct iwl_cfg iwl6000_2agn_cfg = { ...@@ -89,6 +90,7 @@ struct iwl_cfg iwl6000_2agn_cfg = {
.mod_params = &iwl50_mod_params, .mod_params = &iwl50_mod_params,
.valid_tx_ant = ANT_BC, .valid_tx_ant = ANT_BC,
.valid_rx_ant = ANT_BC, .valid_rx_ant = ANT_BC,
.need_pll_cfg = false,
}; };
struct iwl_cfg iwl6050_2agn_cfg = { struct iwl_cfg iwl6050_2agn_cfg = {
...@@ -104,6 +106,7 @@ struct iwl_cfg iwl6050_2agn_cfg = { ...@@ -104,6 +106,7 @@ struct iwl_cfg iwl6050_2agn_cfg = {
.mod_params = &iwl50_mod_params, .mod_params = &iwl50_mod_params,
.valid_tx_ant = ANT_BC, .valid_tx_ant = ANT_BC,
.valid_rx_ant = ANT_BC, .valid_rx_ant = ANT_BC,
.need_pll_cfg = false,
}; };
struct iwl_cfg iwl6000_3agn_cfg = { struct iwl_cfg iwl6000_3agn_cfg = {
...@@ -119,6 +122,7 @@ struct iwl_cfg iwl6000_3agn_cfg = { ...@@ -119,6 +122,7 @@ struct iwl_cfg iwl6000_3agn_cfg = {
.mod_params = &iwl50_mod_params, .mod_params = &iwl50_mod_params,
.valid_tx_ant = ANT_ABC, .valid_tx_ant = ANT_ABC,
.valid_rx_ant = ANT_ABC, .valid_rx_ant = ANT_ABC,
.need_pll_cfg = false,
}; };
struct iwl_cfg iwl6050_3agn_cfg = { struct iwl_cfg iwl6050_3agn_cfg = {
...@@ -134,6 +138,7 @@ struct iwl_cfg iwl6050_3agn_cfg = { ...@@ -134,6 +138,7 @@ struct iwl_cfg iwl6050_3agn_cfg = {
.mod_params = &iwl50_mod_params, .mod_params = &iwl50_mod_params,
.valid_tx_ant = ANT_ABC, .valid_tx_ant = ANT_ABC,
.valid_rx_ant = ANT_ABC, .valid_rx_ant = ANT_ABC,
.need_pll_cfg = false,
}; };
MODULE_FIRMWARE(IWL6000_MODULE_FIRMWARE(IWL6000_UCODE_API_MAX)); MODULE_FIRMWARE(IWL6000_MODULE_FIRMWARE(IWL6000_UCODE_API_MAX));
......
...@@ -213,6 +213,7 @@ struct iwl_cfg { ...@@ -213,6 +213,7 @@ struct iwl_cfg {
const struct iwl_mod_params *mod_params; const struct iwl_mod_params *mod_params;
u8 valid_tx_ant; u8 valid_tx_ant;
u8 valid_rx_ant; u8 valid_rx_ant;
bool need_pll_cfg;
}; };
/*************************** /***************************
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment