linux/arch
Lennert Buytenhek 35f029e251 [ARM] kirkwood: fix PCI I/O port assignment
Instead of allocating PCI devices I/O port bus addresses from the
000xxxxx I/O port range as intended, due to a bus versus physical
address mixup, the Kirkwood PCIe handling code inadvertently
allocated I/O port bus addresses from the f20xxxxx address range
(which is the physical address range of the PCIe I/O mapping window),
but then direct all I/O port accesses to bus addresses 000xxxxx,
which would then not be decoded at all.

Fix this by setting the base address of the PCIe I/O space struct
resource to KIRKWOOD_PCIE_IO_BUS_BASE instead of the incorrect
KIRKWOOD_PCIE_IO_PHYS_BASE, and fix up __io() to expect addresses
offsetted by the former instead of the latter.

(The suggested fix of directing I/O port accesses from the host to
bus addresses f20xxxxx instead has the problem that assigning full
32bit I/O port bus addresses (f20xxxxx) doesn't work on all PCI
devices, as not all PCI devices implement full 32 bit BAR registers
for I/O ports.  We should really try to allocate I/O port bus
addresses that fit in 16 bits.)

Signed-off-by: Lennert Buytenhek <buytenh@marvell.com>
Signed-off-by: Nicolas Pitre <nico@marvell.com>
2009-11-07 20:14:21 -05:00
..
alpha
arm [ARM] kirkwood: fix PCI I/O port assignment 2009-11-07 20:14:21 -05:00
avr32 at91: at91sam9g45 family: identify several chip versions 2009-11-03 18:42:31 +01:00
blackfin headers: remove sched.h from interrupt.h 2009-10-11 11:20:58 -07:00
cris
frv frv: fix check on unsigned in do_signal() 2009-10-29 07:39:32 -07:00
h8300
ia64 Revert "[IA64] fix percpu warnings" 2009-11-02 09:23:08 -08:00
m32r headers: remove sched.h from interrupt.h 2009-10-11 11:20:58 -07:00
m68k tty: Mark generic_serial users as BROKEN 2009-10-30 14:43:12 -07:00
m68knommu
microblaze
mips MIPS: O32: Fix ppoll 2009-11-02 12:00:08 +01:00
mn10300
parisc
powerpc Merge commit 'gcl/merge' into merge 2009-10-28 09:56:18 +11:00
s390 [S390] smp: fix sigp sense handling 2009-10-29 15:05:13 +01:00
score
sh sh: Fix hugetlbfs dependencies for SH-3 && MMU configurations. 2009-10-27 07:22:37 +09:00
sparc sparc64: Set IRQF_DISABLED on LDC channel IRQs. 2009-10-13 00:49:09 -07:00
um headers: remove sched.h from interrupt.h 2009-10-11 11:20:58 -07:00
x86 Merge branch 'x86-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip 2009-11-02 09:45:17 -08:00
xtensa headers: remove sched.h from interrupt.h 2009-10-11 11:20:58 -07:00
.gitignore
Kconfig