diff options
author | Jes Sorensen <jes@sgi.com> | 2007-10-26 16:10:39 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 15:03:34 -0800 |
commit | 49df2b33478fd67e642d05786d06de322504842c (patch) | |
tree | a4b7a571ae5ac9b76cf901435f240bce31b0f212 | |
parent | eb76bf29dd4aceaf877b8971fbfda8617abe6e05 (diff) | |
download | blackbird-op-linux-49df2b33478fd67e642d05786d06de322504842c.tar.gz blackbird-op-linux-49df2b33478fd67e642d05786d06de322504842c.zip |
iwlwifi: disable interrupts before calling request_irq
Disable interrupts in the iwl4965 before calling request_irq() for
the case that the previous OS or the BIOS left a pending interrupt in
the chip. This behavior has been observed on some laptops such as T61
Thinkpads and Toshiba Portege R500
Signed-off-by: Jes Sorensen <jes@sgi.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl3945-base.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/iwlwifi/iwl4965-base.c | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/wireless/iwlwifi/iwl3945-base.c b/drivers/net/wireless/iwlwifi/iwl3945-base.c index 691d64e0393d..e0f6f03a920f 100644 --- a/drivers/net/wireless/iwlwifi/iwl3945-base.c +++ b/drivers/net/wireless/iwlwifi/iwl3945-base.c @@ -8494,6 +8494,8 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) priv->power_mode = IWL_POWER_AC; priv->user_txpower_limit = IWL_DEFAULT_TX_POWER; + iwl_disable_interrupts(priv); + pci_enable_msi(pdev); err = request_irq(pdev->irq, iwl_isr, IRQF_SHARED, DRV_NAME, priv); diff --git a/drivers/net/wireless/iwlwifi/iwl4965-base.c b/drivers/net/wireless/iwlwifi/iwl4965-base.c index 6fb49b0738a0..07df6c1c102c 100644 --- a/drivers/net/wireless/iwlwifi/iwl4965-base.c +++ b/drivers/net/wireless/iwlwifi/iwl4965-base.c @@ -9122,6 +9122,8 @@ static int iwl_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) priv->power_mode = IWL_POWER_AC; priv->user_txpower_limit = IWL_DEFAULT_TX_POWER; + iwl_disable_interrupts(priv); + pci_enable_msi(pdev); err = request_irq(pdev->irq, iwl_isr, IRQF_SHARED, DRV_NAME, priv); |