MIPS: Loongson2ef: Register PCI controller in early stage

We are about to set loongson_pci_io_resource.start to 0 and adopt
PCIBIOS_MIN_IO. As the first step, PCI controller needs to be registered
in early stage to make it the root of other resources (e.g., i8259) and
prevent resource conflicts.

Register it in plat_mem_setup() instead of arch_initcall().

Fixes: ae81aad5c2e1 ("MIPS: PCI: Use pci_enable_resources()")
Cc: stable@vger.kernel.org
Tested-by: Beiyan Yun <root@infi.wang>
Tested-by: Yao Zi <me@ziyao.cc>
Signed-off-by: Rong Zhang <rongrong@oss.cipunited.com>
Acked-by: Jiaxun Yang <jiaxun.yang@flygoat.com>
Signed-off-by: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
Signed-off-by: maoxiaochuan <maoxiaochuan@loongson.cn>
This commit is contained in:
Rong Zhang
2026-08-24 14:17:20 +08:00
committed by maoxiaochuan
parent a1e65a25c5
commit 3fda455ce6
3 changed files with 8 additions and 6 deletions
@@ -315,4 +315,10 @@ extern unsigned long _loongson_addrwincfg_base;
#endif /* ! CONFIG_CPU_SUPPORTS_ADDRWINCFG */
#ifdef CONFIG_PCI
void loongson2ef_pcibios_init(void);
#else
static inline void loongson2ef_pcibios_init(void) { }
#endif
#endif /* __ASM_MACH_LOONGSON2EF_LOONGSON_H */
+1 -6
View File
@@ -73,15 +73,10 @@ static void __init setup_pcimap(void)
#endif
}
static int __init pcibios_init(void)
void __init loongson2ef_pcibios_init(void)
{
setup_pcimap();
loongson_pci_controller.io_map_base = mips_io_port_base;
register_pci_controller(&loongson_pci_controller);
return 0;
}
arch_initcall(pcibios_init);
+1
View File
@@ -27,4 +27,5 @@ EXPORT_SYMBOL(__wbflush);
void __init plat_mem_setup(void)
{
loongson2ef_pcibios_init();
}