Merge git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6
[sfrench/cifs-2.6.git] / arch / powerpc / sysdev / fsl_msi.c
index bdbd896c89d81195bf7c77ed67d0761dbaa4f496..108d76fa8f1c997f566a1a3448402ce9e55d3bae 100644 (file)
@@ -24,6 +24,7 @@
 #include <asm/ppc-pci.h>
 #include <asm/mpic.h>
 #include "fsl_msi.h"
+#include "fsl_pci.h"
 
 LIST_HEAD(msi_head);
 
@@ -125,13 +126,11 @@ static void fsl_compose_msi_msg(struct pci_dev *pdev, int hwirq,
 {
        struct fsl_msi *msi_data = fsl_msi_data;
        struct pci_controller *hose = pci_bus_to_host(pdev->bus);
-       u32 base = 0;
+       u64 base = fsl_pci_immrbar_base(hose);
 
-       pci_bus_read_config_dword(hose->bus,
-               PCI_DEVFN(0, 0), PCI_BASE_ADDRESS_0, &base);
+       msg->address_lo = msi_data->msi_addr_lo + lower_32_bits(base);
+       msg->address_hi = msi_data->msi_addr_hi + upper_32_bits(base);
 
-       msg->address_lo = msi_data->msi_addr_lo + base;
-       msg->address_hi = msi_data->msi_addr_hi;
        msg->data = hwirq;
 
        pr_debug("%s: allocated srs: %d, ibs: %d\n",