| From 360743814c4082515581aa23ab1d8e699e1fbe88 Mon Sep 17 00:00:00 2001 |
| From: Benjamin Herrenschmidt <benh@kernel.crashing.org> |
| Date: Tue, 7 Oct 2014 16:12:36 +1100 |
| Subject: powerpc/powernv: Honor the generic "no_64bit_msi" flag |
| |
| From: Benjamin Herrenschmidt <benh@kernel.crashing.org> |
| |
| commit 360743814c4082515581aa23ab1d8e699e1fbe88 upstream. |
| |
| Instead of the arch specific quirk which we are deprecating |
| and that drivers don't understand. |
| |
| Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| arch/powerpc/platforms/powernv/pci-ioda.c | 3 +-- |
| arch/powerpc/platforms/powernv/pci.c | 4 ++-- |
| 2 files changed, 3 insertions(+), 4 deletions(-) |
| |
| --- a/arch/powerpc/platforms/powernv/pci-ioda.c |
| +++ b/arch/powerpc/platforms/powernv/pci-ioda.c |
| @@ -902,7 +902,6 @@ static int pnv_pci_ioda_msi_setup(struct |
| unsigned int is_64, struct msi_msg *msg) |
| { |
| struct pnv_ioda_pe *pe = pnv_ioda_get_pe(dev); |
| - struct pci_dn *pdn = pci_get_pdn(dev); |
| struct irq_data *idata; |
| struct irq_chip *ichip; |
| unsigned int xive_num = hwirq - phb->msi_base; |
| @@ -918,7 +917,7 @@ static int pnv_pci_ioda_msi_setup(struct |
| return -ENXIO; |
| |
| /* Force 32-bit MSI on some broken devices */ |
| - if (pdn && pdn->force_32bit_msi) |
| + if (dev->no_64bit_msi) |
| is_64 = 0; |
| |
| /* Assign XIVE to PE */ |
| --- a/arch/powerpc/platforms/powernv/pci.c |
| +++ b/arch/powerpc/platforms/powernv/pci.c |
| @@ -1,3 +1,4 @@ |
| + |
| /* |
| * Support PCI/PCIe on PowerNV platforms |
| * |
| @@ -50,9 +51,8 @@ static int pnv_msi_check_device(struct p |
| { |
| struct pci_controller *hose = pci_bus_to_host(pdev->bus); |
| struct pnv_phb *phb = hose->private_data; |
| - struct pci_dn *pdn = pci_get_pdn(pdev); |
| |
| - if (pdn && pdn->force_32bit_msi && !phb->msi32_support) |
| + if (pdev->no_64bit_msi && !phb->msi32_support) |
| return -ENODEV; |
| |
| return (phb && phb->msi_bmp.bitmap) ? 0 : -ENODEV; |