diff options
author | Franky Lin <frankyl@broadcom.com> | 2014-12-03 15:05:30 -0500 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2014-12-04 11:35:02 -0500 |
commit | e9efa340c173ccfe641c50ed102f68237f825c2c (patch) | |
tree | 8a95848f32c74fe1d7c82b8340b1b3b8a049ec74 | |
parent | 48fd818f008e1f1fcc630381efa3c06c6320d156 (diff) |
brcmfmac: switch to single message MSI
Use single message MSI to replace legacy interrupt.
Reviewed-by: Arend Van Spriel <arend@broadcom.com>
Reviewed-by: Hante Meuleman <meuleman@broadcom.com>
Reviewed-by: Pieter-Paul Giesberts <pieterpg@broadcom.com>
Signed-off-by: Franky Lin <frankyl@broadcom.com>
Signed-off-by: Arend van Spriel <arend@broadcom.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
-rw-r--r-- | drivers/net/wireless/brcm80211/brcmfmac/pcie.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/net/wireless/brcm80211/brcmfmac/pcie.c b/drivers/net/wireless/brcm80211/brcmfmac/pcie.c index b87b727967ea..a66481976d5c 100644 --- a/drivers/net/wireless/brcm80211/brcmfmac/pcie.c +++ b/drivers/net/wireless/brcm80211/brcmfmac/pcie.c | |||
@@ -798,12 +798,14 @@ static int brcmf_pcie_request_irq(struct brcmf_pciedev_info *devinfo) | |||
798 | brcmf_dbg(PCIE, "Enter\n"); | 798 | brcmf_dbg(PCIE, "Enter\n"); |
799 | /* is it a v1 or v2 implementation */ | 799 | /* is it a v1 or v2 implementation */ |
800 | devinfo->irq_requested = false; | 800 | devinfo->irq_requested = false; |
801 | pci_enable_msi(pdev); | ||
801 | if (devinfo->generic_corerev == BRCMF_PCIE_GENREV1) { | 802 | if (devinfo->generic_corerev == BRCMF_PCIE_GENREV1) { |
802 | if (request_threaded_irq(pdev->irq, | 803 | if (request_threaded_irq(pdev->irq, |
803 | brcmf_pcie_quick_check_isr_v1, | 804 | brcmf_pcie_quick_check_isr_v1, |
804 | brcmf_pcie_isr_thread_v1, | 805 | brcmf_pcie_isr_thread_v1, |
805 | IRQF_SHARED, "brcmf_pcie_intr", | 806 | IRQF_SHARED, "brcmf_pcie_intr", |
806 | devinfo)) { | 807 | devinfo)) { |
808 | pci_disable_msi(pdev); | ||
807 | brcmf_err("Failed to request IRQ %d\n", pdev->irq); | 809 | brcmf_err("Failed to request IRQ %d\n", pdev->irq); |
808 | return -EIO; | 810 | return -EIO; |
809 | } | 811 | } |
@@ -813,6 +815,7 @@ static int brcmf_pcie_request_irq(struct brcmf_pciedev_info *devinfo) | |||
813 | brcmf_pcie_isr_thread_v2, | 815 | brcmf_pcie_isr_thread_v2, |
814 | IRQF_SHARED, "brcmf_pcie_intr", | 816 | IRQF_SHARED, "brcmf_pcie_intr", |
815 | devinfo)) { | 817 | devinfo)) { |
818 | pci_disable_msi(pdev); | ||
816 | brcmf_err("Failed to request IRQ %d\n", pdev->irq); | 819 | brcmf_err("Failed to request IRQ %d\n", pdev->irq); |
817 | return -EIO; | 820 | return -EIO; |
818 | } | 821 | } |
@@ -839,6 +842,7 @@ static void brcmf_pcie_release_irq(struct brcmf_pciedev_info *devinfo) | |||
839 | return; | 842 | return; |
840 | devinfo->irq_requested = false; | 843 | devinfo->irq_requested = false; |
841 | free_irq(pdev->irq, devinfo); | 844 | free_irq(pdev->irq, devinfo); |
845 | pci_disable_msi(pdev); | ||
842 | 846 | ||
843 | msleep(50); | 847 | msleep(50); |
844 | count = 0; | 848 | count = 0; |