Skip to content

Commit 09d97da

Browse files
seehearfeeltsbogend
authored andcommitted
MIPS: Only define pci_remap_iospace() for Ralink
After commit 9f76779 ("MIPS: implement architecture-specific 'pci_remap_iospace()'"), there exists the following warning on the Loongson64 platform: loongson-pci 1a00000.pci: IO 0x0018020000..0x001803ffff -> 0x0000020000 loongson-pci 1a00000.pci: MEM 0x0040000000..0x007fffffff -> 0x0040000000 ------------[ cut here ]------------ WARNING: CPU: 2 PID: 1 at arch/mips/pci/pci-generic.c:55 pci_remap_iospace+0x84/0x90 resource start address is not zero ... Call Trace: [<ffffffff8020dc78>] show_stack+0x40/0x120 [<ffffffff80cf4a0c>] dump_stack_lvl+0x58/0x74 [<ffffffff8023a0b0>] __warn+0xe0/0x110 [<ffffffff80cee02c>] warn_slowpath_fmt+0xa4/0xd0 [<ffffffff80cecf24>] pci_remap_iospace+0x84/0x90 [<ffffffff807f9864>] devm_pci_remap_iospace+0x5c/0xb8 [<ffffffff808121b0>] devm_of_pci_bridge_init+0x178/0x1f8 [<ffffffff807f4000>] devm_pci_alloc_host_bridge+0x78/0x98 [<ffffffff80819454>] loongson_pci_probe+0x34/0x160 [<ffffffff809203cc>] platform_probe+0x6c/0xe0 [<ffffffff8091d5d4>] really_probe+0xbc/0x340 [<ffffffff8091d8f0>] __driver_probe_device+0x98/0x110 [<ffffffff8091d9b8>] driver_probe_device+0x50/0x118 [<ffffffff8091dea0>] __driver_attach+0x80/0x118 [<ffffffff8091b280>] bus_for_each_dev+0x80/0xc8 [<ffffffff8091c6d8>] bus_add_driver+0x130/0x210 [<ffffffff8091ead4>] driver_register+0x8c/0x150 [<ffffffff80200a8c>] do_one_initcall+0x54/0x288 [<ffffffff811a5320>] kernel_init_freeable+0x27c/0x2e4 [<ffffffff80cfc380>] kernel_init+0x2c/0x134 [<ffffffff80205a2c>] ret_from_kernel_thread+0x14/0x1c ---[ end trace e4a0efe10aa5cce6 ]--- loongson-pci 1a00000.pci: error -19: failed to map resource [io 0x20000-0x3ffff] We can see that the resource start address is 0x0000020000, because the ISA Bridge used the zero address which is defined in the dts file arch/mips/boot/dts/loongson/ls7a-pch.dtsi: ISA Bridge: /bus@10000000/isa@18000000 IO 0x0000000018000000..0x000000001801ffff -> 0x0000000000000000 Based on the above analysis, the architecture-specific pci_remap_iospace() is not suitable for Loongson64, we should only define pci_remap_iospace() for Ralink on MIPS based on the commit background. Fixes: 9f76779 ("MIPS: implement architecture-specific 'pci_remap_iospace()'") Suggested-by: Thomas Bogendoerfer <[email protected]> Signed-off-by: Tiezhu Yang <[email protected]> Tested-by: Sergio Paracuellos <[email protected]> Acked-by: Sergio Paracuellos <[email protected]> Signed-off-by: Thomas Bogendoerfer <[email protected]>
1 parent d58071a commit 09d97da

File tree

3 files changed

+4
-4
lines changed

3 files changed

+4
-4
lines changed

arch/mips/include/asm/mach-ralink/spaces.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,7 @@
66
#define PCI_IOSIZE SZ_64K
77
#define IO_SPACE_LIMIT (PCI_IOSIZE - 1)
88

9+
#define pci_remap_iospace pci_remap_iospace
10+
911
#include <asm/mach-generic/spaces.h>
1012
#endif

arch/mips/include/asm/pci.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,6 @@
2020
#include <linux/list.h>
2121
#include <linux/of.h>
2222

23-
#ifdef CONFIG_PCI_DRIVERS_GENERIC
24-
#define pci_remap_iospace pci_remap_iospace
25-
#endif
26-
2723
#ifdef CONFIG_PCI_DRIVERS_LEGACY
2824

2925
/*

arch/mips/pci/pci-generic.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ void pcibios_fixup_bus(struct pci_bus *bus)
4747
pci_read_bridge_bases(bus);
4848
}
4949

50+
#ifdef pci_remap_iospace
5051
int pci_remap_iospace(const struct resource *res, phys_addr_t phys_addr)
5152
{
5253
unsigned long vaddr;
@@ -60,3 +61,4 @@ int pci_remap_iospace(const struct resource *res, phys_addr_t phys_addr)
6061
set_io_port_base(vaddr);
6162
return 0;
6263
}
64+
#endif

0 commit comments

Comments
 (0)