summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorJes Sorensen2007-10-26 16:10:39 +0200
committerDavid S. Miller2008-01-29 00:03:34 +0100
commit49df2b33478fd67e642d05786d06de322504842c (patch)
treea4b7a571ae5ac9b76cf901435f240bce31b0f212 /drivers
parentP54: use temporary variables to reduce size of generated code (diff)
downloadkernel-qcow2-linux-49df2b33478fd67e642d05786d06de322504842c.tar.gz
kernel-qcow2-linux-49df2b33478fd67e642d05786d06de322504842c.tar.xz
kernel-qcow2-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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/net/wireless/iwlwifi/iwl3945-base.c2
-rw-r--r--drivers/net/wireless/iwlwifi/iwl4965-base.c2
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);