Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 102503
b: refs/heads/master
c: e86fe9f
h: refs/heads/master
i:
  102501: 9f55ecf
  102499: 2501258
  102495: 66e9a01
v: v3
  • Loading branch information
Tomas Winkler authored and John W. Linville committed May 7, 2008
1 parent 0fd984b commit 428ae38
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: f1f6941500602504fa9cd97294bfb3df7f22384f
refs/heads/master: e86fe9f64d7cc3da9f445f3d0a2c5fd265fcd445
33 changes: 33 additions & 0 deletions trunk/drivers/net/wireless/iwlwifi/iwl-5000.c
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,38 @@ static int iwl5000_apm_init(struct iwl_priv *priv)
return ret;
}

static void iwl5000_nic_init(struct iwl_priv *priv)
{
unsigned long flags;
u16 radio_cfg;
u8 val_link;

spin_lock_irqsave(&priv->lock, flags);

pci_read_config_byte(priv->pci_dev, PCI_LINK_CTRL, &val_link);

/* disable L1 entry -- workaround for pre-B1 */
pci_write_config_byte(priv->pci_dev, PCI_LINK_CTRL, val_link & ~0x02);

radio_cfg = iwl_eeprom_query16(priv, EEPROM_RADIO_CONFIG);

/* write radio config values to register */
if (EEPROM_RF_CFG_TYPE_MSK(radio_cfg) < EEPROM_5000_RF_CFG_TYPE_MAX)
iwl_set_bit(priv, CSR_HW_IF_CONFIG_REG,
EEPROM_RF_CFG_TYPE_MSK(radio_cfg) |
EEPROM_RF_CFG_STEP_MSK(radio_cfg) |
EEPROM_RF_CFG_DASH_MSK(radio_cfg));

/* set CSR_HW_CONFIG_REG for uCode use */
iwl_set_bit(priv, CSR_HW_IF_CONFIG_REG,
CSR_HW_IF_CONFIG_REG_BIT_RADIO_SI |
CSR_HW_IF_CONFIG_REG_BIT_MAC_SI);

spin_unlock_irqrestore(&priv->lock, flags);
}



/*
* EEPROM
*/
Expand Down Expand Up @@ -407,6 +439,7 @@ static struct iwl_lib_ops iwl5000_lib = {
.txq_update_byte_cnt_tbl = iwl5000_txq_update_byte_cnt_tbl,
.apm_ops = {
.init = iwl5000_apm_init,
.config = iwl5000_nic_init,
.set_pwr_src = iwl4965_set_pwr_src,
},
.eeprom_ops = {
Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/net/wireless/iwlwifi/iwl-eeprom.h
Original file line number Diff line number Diff line change
Expand Up @@ -295,6 +295,7 @@ struct iwl_eeprom_calib_info {

#define EEPROM_3945_RF_CFG_TYPE_MAX 0x0
#define EEPROM_4965_RF_CFG_TYPE_MAX 0x1
#define EEPROM_5000_RF_CFG_TYPE_MAX 0x3

/*
* Per-channel regulatory data.
Expand Down

0 comments on commit 428ae38

Please sign in to comment.