linux/include/asm-ppc
Benjamin Herrenschmidt 396a1a5832 [POWERPC] Fix mmap of PCI resource with hack for X
The powerpc version of pci_resource_to_user() and associated hooks
used by /proc/bus/pci and /sys/bus/pci mmap have been broken for some
time on machines that don't have a 1:1 mapping of devices (basically
on non-PowerMacs) and have PCI devices above 32 bits.

This attempts to fix it as well as possible.

The rule is supposed to be that pci_resource_to_user() always converts
the resources back into a BAR values since that's what the /proc
interface was supposed to deal with. However, for X to work on
platforms where PCI MMIO is not mapped 1:1, it became a habit of
platforms like powerpc to pass "fixed up" values there since X expects
to be able to use values from /proc/bus/pci/devices as offsets to mmap
of /dev/mem...

So we keep that contraption here, causing also /sys/*/resource to
expose fully absolute MMIO addresses instead of BAR values, which is
ugly, but should still work as long as those are only used to calculate
alignment within a page.

X is still broken when built 32 bits on machines where PCI MMIO can be
above 32-bit space unfortunately.

Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
2006-12-08 17:21:06 +11:00
..
8xx_immap.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
amigahw.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
amigaints.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
amigappc.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
amigayle.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
amipcmcia.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ans-lcd.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
bootinfo.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
bootx.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
btext.h [PATCH] powerpc: Unify udbg (#2) 2006-01-09 14:49:54 +11:00
commproc.h [POWERPC] ARCH=ppc pt_regs fixes 2006-10-10 11:55:25 +10:00
cpm2.h POWERPC: overhaul with cpm2_map mechanism 2006-09-21 22:38:05 +04:00
delay.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
device.h Driver core: add dev_archdata to struct device 2006-12-01 14:52:01 -08:00
floppy.h [PPC] Fix some irq breakage with ARCH=ppc 2006-10-06 21:09:40 +10:00
fs_pd.h POWERPC: Get rid of remapping the whole immr 2006-09-21 22:37:58 +04:00
gg2.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
gt64260_defs.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
gt64260.h [POWERPC] ARCH=ppc pt_regs fixes 2006-10-10 11:55:25 +10:00
harrier.h [PATCH] powerpc: trivial: modify comments to refer to new location of files 2006-02-10 16:53:51 +11:00
hawk_defs.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
hawk.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
highmem.h [PATCH] mm: pagefault_{disable,enable}() 2006-12-07 08:39:21 -08:00
hydra.h [PATCH] ppc trivial iomem annotations: chrp 2005-04-24 14:58:08 -07:00
ibm4xx.h [PATCH] #elif that should've been #elif defined 2006-09-23 11:34:43 -07:00
ibm44x.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
ibm403.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
ibm405.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ibm_ocp_pci.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ibm_ocp.h [PATCH] ppc32: remove "jumbo" member from ocp_func_emac_data 2006-01-06 08:33:30 -08:00
immap_85xx.h [PATCH] Update email address for Kumar 2005-11-13 18:14:10 -08:00
immap_cpm2.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
io.h [POWERPC] Fix IDE build with ARCH=ppc 2006-12-04 20:39:09 +11:00
kgdb.h [PATCH] ppc: Fix ARCH=ppc build with xmon 2005-11-08 11:19:48 +11:00
m48t35.h [POWERPC] ppc: m48t35 add missing bracket 2006-12-04 20:42:04 +11:00
m8260_pci.h [PATCH] ppc32: Support for 82xx PQII on-chip PCI bridge 2005-05-28 16:46:15 -07:00
machdep.h [POWERPC] Fix up after irq changes 2006-10-07 22:08:26 +10:00
md.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mk48t59.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mmu_context.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2006-06-22 22:11:30 -07:00
mmu.h Merge git://git.kernel.org/pub/scm/linux/kernel/git/paulus/powerpc 2006-06-22 22:11:30 -07:00
mpc8xx.h [PATCH] ppc32: board-specific part of fs_enet update 2006-08-19 17:44:31 -04:00
mpc10x.h [PATCH] powerpc: trivial: modify comments to refer to new location of files 2006-02-10 16:53:51 +11:00
mpc52xx_psc.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
mpc52xx.h [PATCH] ppc: Fix io.h for config with CONFIG_PCI not set 2006-11-13 14:49:25 +11:00
mpc83xx.h [PATCH] ppc: Fix io.h for config with CONFIG_PCI not set 2006-11-13 14:49:25 +11:00
mpc85xx.h [PATCH] ppc: Fix io.h for config with CONFIG_PCI not set 2006-11-13 14:49:25 +11:00
mpc8260_pci9.h [POWERPC] remove unused io accessors 2006-09-20 14:06:17 +10:00
mpc8260.h [PATCH] ppc32: board-specific part of fs_enet update 2006-08-19 17:44:31 -04:00
mv64x60_defs.h fix file specification in comments 2006-10-03 23:01:26 +02:00
mv64x60.h [POWERPC] ARCH=ppc pt_regs fixes 2006-10-10 11:55:25 +10:00
ocp_ids.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ocp.h [PATCH] devfs: Remove the devfs_fs_kernel.h file from the tree 2006-06-26 12:25:08 -07:00
open_pic.h [POWERPC] PReP fixup after irq changes 2006-10-07 22:11:20 +10:00
page.h typo fixes: mecanism -> mechanism 2006-06-30 18:20:44 +02:00
pc_serial.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
pci-bridge.h [POWERPC] Fix mmap of PCI resource with hack for X 2006-12-08 17:21:06 +11:00
pci.h [POWERPC] Define pci_unmap_addr() et al. when CONFIG_NOT_COHERENT_CACHE=y 2006-12-08 17:10:18 +11:00
pgalloc.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
pgtable.h [PATCH] Standardize pxx_page macros 2006-09-26 08:48:51 -07:00
pnp.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
ppc4xx_dma.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
ppc4xx_pic.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
ppc_sys.h [PATCH] ppc32: odd fixes and improvements in ppc_sys 2006-04-28 21:05:16 +10:00
ppcboot.h [PATCH] ppc32: cleanup AMCC PPC40x eval boards to support U-Boot 2005-11-07 07:53:26 -08:00
prep_nvram.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
prom.h ppc: Remove CHRP, POWER3 and POWER4 support from arch/ppc 2006-03-28 10:22:10 +11:00
raven.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
reg_booke.h [POWERPC] 40x: Fix debug status register defines 2006-09-21 22:59:39 +10:00
residual.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
rheap.h fix file specification in comments 2006-10-03 23:01:26 +02:00
rio.h [PATCH] RapidIO support: ppc32 2005-11-07 07:53:47 -08:00
rtc.h fix file specification in comments 2006-10-03 23:01:26 +02:00
serial.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
smp.h [POWERPC] PReP fixup after irq changes 2006-10-07 22:11:20 +10:00
spinlock.h [PATCH] Directed yield: cpu_relax variants for spinlocks and rw-locks 2006-10-01 00:39:21 -07:00
suspend.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
system.h [PATCH] remove set_wmb - arch removal 2006-07-14 21:56:14 -07:00
time.h Don't include linux/config.h from anywhere else in include/ 2006-04-26 12:56:16 +01:00
todc.h [PATCH] powerpc: trivial: modify comments to refer to new location of files 2006-02-10 16:53:51 +11:00
traps.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
zorro.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00