diff options
author | Jes Sorensen <jes@sgi.com> | 2007-10-26 10:10:39 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 18:03:34 -0500 |
commit | 49df2b33478fd67e642d05786d06de322504842c (patch) | |
tree | a4b7a571ae5ac9b76cf901435f240bce31b0f212 | |
parent | eb76bf29dd4aceaf877b8971fbfda8617abe6e05 (diff) |
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) | |||
8494 | priv->power_mode = IWL_POWER_AC; | 8494 | priv->power_mode = IWL_POWER_AC; |
8495 | priv->user_txpower_limit = IWL_DEFAULT_TX_POWER; | 8495 | priv->user_txpower_limit = IWL_DEFAULT_TX_POWER; |
8496 | 8496 | ||
8497 | iwl_disable_interrupts(priv); | ||
8498 | |||
8497 | pci_enable_msi(pdev); | 8499 | pci_enable_msi(pdev); |
8498 | 8500 | ||
8499 | err = request_irq(pdev->irq, iwl_isr, IRQF_SHARED, DRV_NAME, priv); | 8501 | 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) | |||
9122 | priv->power_mode = IWL_POWER_AC; | 9122 | priv->power_mode = IWL_POWER_AC; |
9123 | priv->user_txpower_limit = IWL_DEFAULT_TX_POWER; | 9123 | priv->user_txpower_limit = IWL_DEFAULT_TX_POWER; |
9124 | 9124 | ||
9125 | iwl_disable_interrupts(priv); | ||
9126 | |||
9125 | pci_enable_msi(pdev); | 9127 | pci_enable_msi(pdev); |
9126 | 9128 | ||
9127 | err = request_irq(pdev->irq, iwl_isr, IRQF_SHARED, DRV_NAME, priv); | 9129 | err = request_irq(pdev->irq, iwl_isr, IRQF_SHARED, DRV_NAME, priv); |