mirror of
https://github.com/torvalds/linux
synced 2024-10-27 21:59:21 +00:00
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>
This commit is contained in:
parent
48fd818f00
commit
e9efa340c1
|
@ -798,12 +798,14 @@ static int brcmf_pcie_request_irq(struct brcmf_pciedev_info *devinfo)
|
||||||
brcmf_dbg(PCIE, "Enter\n");
|
brcmf_dbg(PCIE, "Enter\n");
|
||||||
/* is it a v1 or v2 implementation */
|
/* is it a v1 or v2 implementation */
|
||||||
devinfo->irq_requested = false;
|
devinfo->irq_requested = false;
|
||||||
|
pci_enable_msi(pdev);
|
||||||
if (devinfo->generic_corerev == BRCMF_PCIE_GENREV1) {
|
if (devinfo->generic_corerev == BRCMF_PCIE_GENREV1) {
|
||||||
if (request_threaded_irq(pdev->irq,
|
if (request_threaded_irq(pdev->irq,
|
||||||
brcmf_pcie_quick_check_isr_v1,
|
brcmf_pcie_quick_check_isr_v1,
|
||||||
brcmf_pcie_isr_thread_v1,
|
brcmf_pcie_isr_thread_v1,
|
||||||
IRQF_SHARED, "brcmf_pcie_intr",
|
IRQF_SHARED, "brcmf_pcie_intr",
|
||||||
devinfo)) {
|
devinfo)) {
|
||||||
|
pci_disable_msi(pdev);
|
||||||
brcmf_err("Failed to request IRQ %d\n", pdev->irq);
|
brcmf_err("Failed to request IRQ %d\n", pdev->irq);
|
||||||
return -EIO;
|
return -EIO;
|
||||||
}
|
}
|
||||||
|
@ -813,6 +815,7 @@ static int brcmf_pcie_request_irq(struct brcmf_pciedev_info *devinfo)
|
||||||
brcmf_pcie_isr_thread_v2,
|
brcmf_pcie_isr_thread_v2,
|
||||||
IRQF_SHARED, "brcmf_pcie_intr",
|
IRQF_SHARED, "brcmf_pcie_intr",
|
||||||
devinfo)) {
|
devinfo)) {
|
||||||
|
pci_disable_msi(pdev);
|
||||||
brcmf_err("Failed to request IRQ %d\n", pdev->irq);
|
brcmf_err("Failed to request IRQ %d\n", pdev->irq);
|
||||||
return -EIO;
|
return -EIO;
|
||||||
}
|
}
|
||||||
|
@ -839,6 +842,7 @@ static void brcmf_pcie_release_irq(struct brcmf_pciedev_info *devinfo)
|
||||||
return;
|
return;
|
||||||
devinfo->irq_requested = false;
|
devinfo->irq_requested = false;
|
||||||
free_irq(pdev->irq, devinfo);
|
free_irq(pdev->irq, devinfo);
|
||||||
|
pci_disable_msi(pdev);
|
||||||
|
|
||||||
msleep(50);
|
msleep(50);
|
||||||
count = 0;
|
count = 0;
|
||||||
|
|
Loading…
Reference in a new issue