diff options
author | Minghuan Lian <Minghuan.Lian@freescale.com> | 2014-01-16 04:51:46 (GMT) |
---|---|---|
committer | Jose Rivera <German.Rivera@freescale.com> | 2014-03-17 19:13:58 (GMT) |
commit | f19244cb82bf4c607465027e1cc7118ded40d10e (patch) | |
tree | 9b2babba1eca83a1eb47c5c4427155520cef1091 /arch | |
parent | cb92b1f8d81a50691cd3fe1747d2a7e04150fd37 (diff) | |
download | linux-fsl-qoriq-f19244cb82bf4c607465027e1cc7118ded40d10e.tar.xz |
powerpc/pci: Fix IMMRBAR address
For PEXCSRBAR, bits 3-0 indicate prefetchable and address type.
So when getting base address, these bits should be masked,
otherwise we may get incorrect base address.
Signed-off-by: Minghuan Lian <Minghuan.Lian@freescale.com>
Change-Id: I03ca7c1201cf0de1042173488e9e8dd4c48faf6e
Reviewed-on: http://git.am.freescale.net:8181/9818
Tested-by: Review Code-CDREVIEW <CDREVIEW@freescale.com>
Reviewed-by: Tiefei Zang <tie-fei.zang@freescale.com>
Reviewed-by: Jose Rivera <German.Rivera@freescale.com>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/powerpc/sysdev/fsl_pci.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/arch/powerpc/sysdev/fsl_pci.c b/arch/powerpc/sysdev/fsl_pci.c index 65f38fc..c6581f1 100644 --- a/arch/powerpc/sysdev/fsl_pci.c +++ b/arch/powerpc/sysdev/fsl_pci.c @@ -929,6 +929,14 @@ u64 fsl_pci_immrbar_base(struct pci_controller *hose) pci_bus_read_config_dword(hose->bus, PCI_DEVFN(0, 0), PCI_BASE_ADDRESS_0, &base); + + /* + * For PEXCSRBAR, bits 3-0 indicate prefetchable and + * address type. So when getting base address, these + * bits should be masked + */ + base &= PCI_BASE_ADDRESS_MEM_MASK; + return base; } #endif |