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.pan...@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(-)

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);
 int pci_ep_init(void);
 int misc_init_r(void);
 #if defined(CONFIG_VID)
-- 
2.17.1

Reply via email to