Merge "msm: pcie: do not set irq chip data when using QGIC MSI"

This commit is contained in:
Linux Build Service Account 2017-06-09 11:23:06 -07:00 committed by Gerrit - the friendly Code Review server
commit cf5d29992c

View file

@ -5610,16 +5610,18 @@ static void msm_pcie_unmap_qgic_addr(struct msm_pcie_dev_t *dev,
}
}
void msm_pcie_destroy_irq(unsigned int irq)
void msm_pcie_destroy_irq(unsigned int irq, struct pci_dev *pdev)
{
int pos;
struct pci_dev *pdev = irq_get_chip_data(irq);
struct msi_desc *entry = irq_get_msi_desc(irq);
struct msi_desc *firstentry;
struct msm_pcie_dev_t *dev;
u32 nvec;
int firstirq;
if (!pdev)
pdev = irq_get_chip_data(irq);
if (!pdev) {
pr_err("PCIe: pci device is null. IRQ:%d\n", irq);
return;
@ -5679,7 +5681,7 @@ void msm_pcie_destroy_irq(unsigned int irq)
void arch_teardown_msi_irq(unsigned int irq)
{
PCIE_GEN_DBG("irq %d deallocated\n", irq);
msm_pcie_destroy_irq(irq);
msm_pcie_destroy_irq(irq, NULL);
}
void arch_teardown_msi_irqs(struct pci_dev *dev)
@ -5698,7 +5700,7 @@ void arch_teardown_msi_irqs(struct pci_dev *dev)
continue;
nvec = 1 << entry->msi_attrib.multiple;
for (i = 0; i < nvec; i++)
arch_teardown_msi_irq(entry->irq + i);
msm_pcie_destroy_irq(entry->irq + i, dev);
}
}
@ -5894,7 +5896,6 @@ static int arch_setup_msi_irq_qgic(struct pci_dev *pdev,
firstirq = irq;
irq_set_irq_type(irq, IRQ_TYPE_EDGE_RISING);
irq_set_chip_data(irq, pdev);
}
/* write msi vector and data */