
On Thu, 5 Nov 2020 at 03:10, Ovidiu Panait ovidiu.panait@windriver.com wrote:
Add a return value to pci_init and use it directly in the post-relocation init sequence, rather than using a wrapper stub.
Signed-off-by: Ovidiu Panait ovidiu.panait@windriver.com
common/board_r.c | 18 ++++-------------- drivers/pci/pci-uclass.c | 4 +++- drivers/pci/pci.c | 6 ++++-- include/init.h | 2 +- 4 files changed, 12 insertions(+), 18 deletions(-)
Reviewed-by: Simon Glass sjg@chromium.org
nit below
diff --git a/common/board_r.c b/common/board_r.c index d86ff0cb5e..414b6272c5 100644 --- a/common/board_r.c +++ b/common/board_r.c @@ -214,16 +214,6 @@ static int initr_unlock_ram_in_cache(void) } #endif
-#ifdef CONFIG_PCI -static int initr_pci(void) -{
if (IS_ENABLED(CONFIG_PCI_INIT_R))
pci_init();
return 0;
-} -#endif
static int initr_barrier(void) { #ifdef CONFIG_PPC @@ -732,12 +722,12 @@ static init_fnc_t init_sequence_r[] = { post_output_backlog, #endif INIT_FUNC_WATCHDOG_RESET -#if defined(CONFIG_PCI) && defined(CONFIG_SYS_EARLY_PCI_INIT) +#if defined(CONFIG_PCI_INIT_R) && defined(CONFIG_SYS_EARLY_PCI_INIT) /* * Do early PCI configuration _before_ the flash gets initialised, * because PCU resources are crucial for flash access on some boards. */
initr_pci,
pci_init,
#endif #ifdef CONFIG_ARCH_EARLY_INIT_R arch_early_init_r, @@ -776,11 +766,11 @@ static init_fnc_t init_sequence_r[] = { mac_read_from_eeprom, #endif INIT_FUNC_WATCHDOG_RESET -#if defined(CONFIG_PCI) && !defined(CONFIG_SYS_EARLY_PCI_INIT) +#if defined(CONFIG_PCI_INIT_R) && !defined(CONFIG_SYS_EARLY_PCI_INIT) /* * Do pci configuration */
initr_pci,
pci_init,
#endif stdio_add_devices, initr_jumptable, diff --git a/drivers/pci/pci-uclass.c b/drivers/pci/pci-uclass.c index eb07d25301..7e9b5cf0fa 100644 --- a/drivers/pci/pci-uclass.c +++ b/drivers/pci/pci-uclass.c @@ -1834,7 +1834,7 @@ U_BOOT_DRIVER(pci_generic_drv) = { .of_match = pci_generic_ids, };
-void pci_init(void) +int pci_init(void) { struct udevice *bus;
@@ -1847,4 +1847,6 @@ void pci_init(void) uclass_next_device_check(&bus)) { ; }
return 0;
} diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c index 664e8379eb..a7453e5755 100644 --- a/drivers/pci/pci.c +++ b/drivers/pci/pci.c @@ -454,16 +454,18 @@ int pci_hose_scan(struct pci_controller *hose) return pci_hose_scan_bus(hose, hose->current_busno); }
-void pci_init(void) +int pci_init(void) { hose_head = NULL;
/* allow env to disable pci init/enum */ if (env_get("pcidisable") != NULL)
return;
return 0; /* now call board specific pci_init()... */ pci_init_board();
return 0;
}
/* Returns the address of the requested capability structure within the diff --git a/include/init.h b/include/init.h index a887c2b4fc..5519562163 100644 --- a/include/init.h +++ b/include/init.h @@ -234,7 +234,7 @@ int mac_read_from_eeprom(void); int set_cpu_clk_info(void); int update_flash_size(int flash_size); int arch_early_init_r(void); -void pci_init(void); +int pci_init(void);
Please add a comment about what it does and the return value
int pci_ep_init(void); int misc_init_r(void);
#if defined(CONFIG_VID)
2.17.1