Merge "msm: pcie: do not set irq chip data when using QGIC MSI"
This commit is contained in:
commit
cf5d29992c
1 changed files with 6 additions and 5 deletions
|
@ -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;
|
int pos;
|
||||||
struct pci_dev *pdev = irq_get_chip_data(irq);
|
|
||||||
struct msi_desc *entry = irq_get_msi_desc(irq);
|
struct msi_desc *entry = irq_get_msi_desc(irq);
|
||||||
struct msi_desc *firstentry;
|
struct msi_desc *firstentry;
|
||||||
struct msm_pcie_dev_t *dev;
|
struct msm_pcie_dev_t *dev;
|
||||||
u32 nvec;
|
u32 nvec;
|
||||||
int firstirq;
|
int firstirq;
|
||||||
|
|
||||||
|
if (!pdev)
|
||||||
|
pdev = irq_get_chip_data(irq);
|
||||||
|
|
||||||
if (!pdev) {
|
if (!pdev) {
|
||||||
pr_err("PCIe: pci device is null. IRQ:%d\n", irq);
|
pr_err("PCIe: pci device is null. IRQ:%d\n", irq);
|
||||||
return;
|
return;
|
||||||
|
@ -5679,7 +5681,7 @@ void msm_pcie_destroy_irq(unsigned int irq)
|
||||||
void arch_teardown_msi_irq(unsigned int irq)
|
void arch_teardown_msi_irq(unsigned int irq)
|
||||||
{
|
{
|
||||||
PCIE_GEN_DBG("irq %d deallocated\n", 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)
|
void arch_teardown_msi_irqs(struct pci_dev *dev)
|
||||||
|
@ -5698,7 +5700,7 @@ void arch_teardown_msi_irqs(struct pci_dev *dev)
|
||||||
continue;
|
continue;
|
||||||
nvec = 1 << entry->msi_attrib.multiple;
|
nvec = 1 << entry->msi_attrib.multiple;
|
||||||
for (i = 0; i < nvec; i++)
|
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;
|
firstirq = irq;
|
||||||
|
|
||||||
irq_set_irq_type(irq, IRQ_TYPE_EDGE_RISING);
|
irq_set_irq_type(irq, IRQ_TYPE_EDGE_RISING);
|
||||||
irq_set_chip_data(irq, pdev);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* write msi vector and data */
|
/* write msi vector and data */
|
||||||
|
|
Loading…
Add table
Reference in a new issue