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: ae81aad5c2 ("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>
master
Rong Zhang 2026-02-01 05:32:58 +08:00 committed by Thomas Bogendoerfer
parent a6ab150deb
commit 6a00c043af
3 changed files with 8 additions and 6 deletions

View File

@ -324,4 +324,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 */

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);

View File

@ -27,4 +27,5 @@ EXPORT_SYMBOL(__wbflush);
void __init plat_mem_setup(void)
{
loongson2ef_pcibios_init();
}