[PARISC] Make PCI_HOST_ADDR and PCI_BUS_ADDR symmetrical
authorGrant Grundler <grundler@parisc-linux.org>
Wed, 11 Jan 2006 01:48:00 +0000 (20:48 -0500)
committerKyle McMartin <kyle@duet.int.mcmartin.ca>
Wed, 11 Jan 2006 02:52:30 +0000 (21:52 -0500)
Change to asm-parisc/pci.h makes the define of PCI_HOST_ADDR symmetrical
with PCI_BUS_ADDR. Also add a comment about PA_VIEW and LMMIO/ELMMIO/GMMIO.

Signed-off-by: Grant Grundler <grundler@parisc-linux.org>
Signed-off-by: Kyle McMartin <kyle@parisc-linux.org>
include/asm-parisc/pci.h

index fa39d07..f277254 100644 (file)
@@ -84,11 +84,17 @@ static __inline__  int pci_is_lmmio(struct pci_hba_data *hba, unsigned long a)
 /*
 ** Convert between PCI (IO_VIEW) addresses and processor (PA_VIEW) addresses.
 ** See pcibios.c for more conversions used by Generic PCI code.
+**
+** Platform characteristics/firmware guarantee that
+**     (1) PA_VIEW - IO_VIEW = lmmio_offset for both LMMIO and ELMMIO
+**     (2) PA_VIEW == IO_VIEW for GMMIO
 */
 #define PCI_BUS_ADDR(hba,a)    (PCI_IS_LMMIO(hba,a)    \
                ?  ((a) - hba->lmmio_space_offset)      /* mangle LMMIO */ \
                : (a))                                  /* GMMIO */
-#define PCI_HOST_ADDR(hba,a)   ((a) + hba->lmmio_space_offset)
+#define PCI_HOST_ADDR(hba,a)   (((a) & PCI_F_EXTEND) == 0 \
+               ? (a) + hba->lmmio_space_offset \
+               : (a))
 
 #else  /* !CONFIG_64BIT */