aboutsummaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorJay Sternberg <jay.e.sternberg@linux.intel.com>2009-01-29 14:09:13 -0500
committerJohn W. Linville <linville@tuxdriver.com>2009-02-09 15:03:42 -0500
commit050681b77d10ac81bf6be5b2c61aa6c5969947e4 (patch)
treeb9d25169eba2e75cb700ca74318b7e0d9f452330 /drivers
parentc0bac76a22c00d0b4622b2847e0b087befb9ff25 (diff)
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: Jay Sternberg <jay.e.sternberg@linux.intel.com> Signed-off-by: Reinette Chatre <reinette.chatre@intel.com> Signed-off-by: John W. Linville <linville@tuxdriver.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-100.c1
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-5000.c12
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-6000.c5
-rw-r--r--drivers/net/wireless/iwlwifi/iwl-core.h1
4 files changed, 17 insertions, 2 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl-100.c b/drivers/net/wireless/iwlwifi/iwl-100.c
index 4c4d16537e3d..a5df93154d21 100644
--- a/drivers/net/wireless/iwlwifi/iwl-100.c
+++ b/drivers/net/wireless/iwlwifi/iwl-100.c
@@ -68,5 +68,6 @@ struct iwl_cfg iwl100_bgn_cfg = {
68 .mod_params = &iwl50_mod_params, 68 .mod_params = &iwl50_mod_params,
69 .valid_tx_ant = ANT_A, 69 .valid_tx_ant = ANT_A,
70 .valid_rx_ant = ANT_AB, 70 .valid_rx_ant = ANT_AB,
71 .need_pll_cfg = true,
71}; 72};
72 73
diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c
index 539fc0e234f7..f8158edf6ebf 100644
--- a/drivers/net/wireless/iwlwifi/iwl-5000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-5000.c
@@ -109,7 +109,8 @@ static int iwl5000_apm_init(struct iwl_priv *priv)
109 iwl_set_bit(priv, CSR_HW_IF_CONFIG_REG, 109 iwl_set_bit(priv, CSR_HW_IF_CONFIG_REG,
110 CSR_HW_IF_CONFIG_REG_BIT_HAP_WAKE_L1A); 110 CSR_HW_IF_CONFIG_REG_BIT_HAP_WAKE_L1A);
111 111
112 iwl_set_bit(priv, CSR_ANA_PLL_CFG, CSR50_ANA_PLL_CFG_VAL); 112 if (priv->cfg->need_pll_cfg)
113 iwl_set_bit(priv, CSR_ANA_PLL_CFG, CSR50_ANA_PLL_CFG_VAL);
113 114
114 /* set "initialization complete" bit to move adapter 115 /* set "initialization complete" bit to move adapter
115 * D0U* --> D0A* state */ 116 * D0U* --> D0A* state */
@@ -177,7 +178,8 @@ static int iwl5000_apm_reset(struct iwl_priv *priv)
177 178
178 /* FIXME: put here L1A -L0S w/a */ 179 /* FIXME: put here L1A -L0S w/a */
179 180
180 iwl_set_bit(priv, CSR_ANA_PLL_CFG, CSR50_ANA_PLL_CFG_VAL); 181 if (priv->cfg->need_pll_cfg)
182 iwl_set_bit(priv, CSR_ANA_PLL_CFG, CSR50_ANA_PLL_CFG_VAL);
181 183
182 /* set "initialization complete" bit to move adapter 184 /* set "initialization complete" bit to move adapter
183 * D0U* --> D0A* state */ 185 * D0U* --> D0A* state */
@@ -1548,6 +1550,7 @@ struct iwl_cfg iwl5300_agn_cfg = {
1548 .mod_params = &iwl50_mod_params, 1550 .mod_params = &iwl50_mod_params,
1549 .valid_tx_ant = ANT_ABC, 1551 .valid_tx_ant = ANT_ABC,
1550 .valid_rx_ant = ANT_ABC, 1552 .valid_rx_ant = ANT_ABC,
1553 .need_pll_cfg = true,
1551}; 1554};
1552 1555
1553struct iwl_cfg iwl5100_bg_cfg = { 1556struct iwl_cfg iwl5100_bg_cfg = {
@@ -1563,6 +1566,7 @@ struct iwl_cfg iwl5100_bg_cfg = {
1563 .mod_params = &iwl50_mod_params, 1566 .mod_params = &iwl50_mod_params,
1564 .valid_tx_ant = ANT_B, 1567 .valid_tx_ant = ANT_B,
1565 .valid_rx_ant = ANT_AB, 1568 .valid_rx_ant = ANT_AB,
1569 .need_pll_cfg = true,
1566}; 1570};
1567 1571
1568struct iwl_cfg iwl5100_abg_cfg = { 1572struct iwl_cfg iwl5100_abg_cfg = {
@@ -1578,6 +1582,7 @@ struct iwl_cfg iwl5100_abg_cfg = {
1578 .mod_params = &iwl50_mod_params, 1582 .mod_params = &iwl50_mod_params,
1579 .valid_tx_ant = ANT_B, 1583 .valid_tx_ant = ANT_B,
1580 .valid_rx_ant = ANT_AB, 1584 .valid_rx_ant = ANT_AB,
1585 .need_pll_cfg = true,
1581}; 1586};
1582 1587
1583struct iwl_cfg iwl5100_agn_cfg = { 1588struct iwl_cfg iwl5100_agn_cfg = {
@@ -1593,6 +1598,7 @@ struct iwl_cfg iwl5100_agn_cfg = {
1593 .mod_params = &iwl50_mod_params, 1598 .mod_params = &iwl50_mod_params,
1594 .valid_tx_ant = ANT_B, 1599 .valid_tx_ant = ANT_B,
1595 .valid_rx_ant = ANT_AB, 1600 .valid_rx_ant = ANT_AB,
1601 .need_pll_cfg = true,
1596}; 1602};
1597 1603
1598struct iwl_cfg iwl5350_agn_cfg = { 1604struct iwl_cfg iwl5350_agn_cfg = {
@@ -1608,6 +1614,7 @@ struct iwl_cfg iwl5350_agn_cfg = {
1608 .mod_params = &iwl50_mod_params, 1614 .mod_params = &iwl50_mod_params,
1609 .valid_tx_ant = ANT_ABC, 1615 .valid_tx_ant = ANT_ABC,
1610 .valid_rx_ant = ANT_ABC, 1616 .valid_rx_ant = ANT_ABC,
1617 .need_pll_cfg = true,
1611}; 1618};
1612 1619
1613struct iwl_cfg iwl5150_agn_cfg = { 1620struct iwl_cfg iwl5150_agn_cfg = {
@@ -1623,6 +1630,7 @@ struct iwl_cfg iwl5150_agn_cfg = {
1623 .mod_params = &iwl50_mod_params, 1630 .mod_params = &iwl50_mod_params,
1624 .valid_tx_ant = ANT_A, 1631 .valid_tx_ant = ANT_A,
1625 .valid_rx_ant = ANT_AB, 1632 .valid_rx_ant = ANT_AB,
1633 .need_pll_cfg = true,
1626}; 1634};
1627 1635
1628MODULE_FIRMWARE(IWL5000_MODULE_FIRMWARE(IWL5000_UCODE_API_MAX)); 1636MODULE_FIRMWARE(IWL5000_MODULE_FIRMWARE(IWL5000_UCODE_API_MAX));
diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c
index b78d67633c27..1672a988424a 100644
--- a/drivers/net/wireless/iwlwifi/iwl-6000.c
+++ b/drivers/net/wireless/iwlwifi/iwl-6000.c
@@ -74,6 +74,7 @@ struct iwl_cfg iwl6000_2ag_cfg = {
74 .mod_params = &iwl50_mod_params, 74 .mod_params = &iwl50_mod_params,
75 .valid_tx_ant = ANT_BC, 75 .valid_tx_ant = ANT_BC,
76 .valid_rx_ant = ANT_BC, 76 .valid_rx_ant = ANT_BC,
77 .need_pll_cfg = false,
77}; 78};
78 79
79struct iwl_cfg iwl6000_2agn_cfg = { 80struct iwl_cfg iwl6000_2agn_cfg = {
@@ -89,6 +90,7 @@ struct iwl_cfg iwl6000_2agn_cfg = {
89 .mod_params = &iwl50_mod_params, 90 .mod_params = &iwl50_mod_params,
90 .valid_tx_ant = ANT_BC, 91 .valid_tx_ant = ANT_BC,
91 .valid_rx_ant = ANT_BC, 92 .valid_rx_ant = ANT_BC,
93 .need_pll_cfg = false,
92}; 94};
93 95
94struct iwl_cfg iwl6050_2agn_cfg = { 96struct iwl_cfg iwl6050_2agn_cfg = {
@@ -104,6 +106,7 @@ struct iwl_cfg iwl6050_2agn_cfg = {
104 .mod_params = &iwl50_mod_params, 106 .mod_params = &iwl50_mod_params,
105 .valid_tx_ant = ANT_BC, 107 .valid_tx_ant = ANT_BC,
106 .valid_rx_ant = ANT_BC, 108 .valid_rx_ant = ANT_BC,
109 .need_pll_cfg = false,
107}; 110};
108 111
109struct iwl_cfg iwl6000_3agn_cfg = { 112struct iwl_cfg iwl6000_3agn_cfg = {
@@ -119,6 +122,7 @@ struct iwl_cfg iwl6000_3agn_cfg = {
119 .mod_params = &iwl50_mod_params, 122 .mod_params = &iwl50_mod_params,
120 .valid_tx_ant = ANT_ABC, 123 .valid_tx_ant = ANT_ABC,
121 .valid_rx_ant = ANT_ABC, 124 .valid_rx_ant = ANT_ABC,
125 .need_pll_cfg = false,
122}; 126};
123 127
124struct iwl_cfg iwl6050_3agn_cfg = { 128struct iwl_cfg iwl6050_3agn_cfg = {
@@ -134,6 +138,7 @@ struct iwl_cfg iwl6050_3agn_cfg = {
134 .mod_params = &iwl50_mod_params, 138 .mod_params = &iwl50_mod_params,
135 .valid_tx_ant = ANT_ABC, 139 .valid_tx_ant = ANT_ABC,
136 .valid_rx_ant = ANT_ABC, 140 .valid_rx_ant = ANT_ABC,
141 .need_pll_cfg = false,
137}; 142};
138 143
139MODULE_FIRMWARE(IWL6000_MODULE_FIRMWARE(IWL6000_UCODE_API_MAX)); 144MODULE_FIRMWARE(IWL6000_MODULE_FIRMWARE(IWL6000_UCODE_API_MAX));
diff --git a/drivers/net/wireless/iwlwifi/iwl-core.h b/drivers/net/wireless/iwlwifi/iwl-core.h
index 02e92be75568..789fe6ee27a2 100644
--- a/drivers/net/wireless/iwlwifi/iwl-core.h
+++ b/drivers/net/wireless/iwlwifi/iwl-core.h
@@ -213,6 +213,7 @@ struct iwl_cfg {
213 const struct iwl_mod_params *mod_params; 213 const struct iwl_mod_params *mod_params;
214 u8 valid_tx_ant; 214 u8 valid_tx_ant;
215 u8 valid_rx_ant; 215 u8 valid_rx_ant;
216 bool need_pll_cfg;
216}; 217};
217 218
218/*************************** 219/***************************