From 0fed9c7ed69c7f85f0f76fd58c1ef6ea991a786c Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Sat, 24 Sep 2016 18:20:00 -0600 Subject: [PATCH] spl: Convert spl_mmc_load_image() to use linker list Add a linker list declaration for this method and remove the explicit switch() code. Signed-off-by: Simon Glass Reviewed-by: Tom Rini --- common/spl/spl.c | 6 ------ common/spl/spl_mmc.c | 6 +++++- include/spl.h | 3 --- 3 files changed, 5 insertions(+), 10 deletions(-) diff --git a/common/spl/spl.c b/common/spl/spl.c index b8ec72c64e..321709916f 100644 --- a/common/spl/spl.c +++ b/common/spl/spl.c @@ -384,12 +384,6 @@ static int spl_load_image(u32 boot_device) return loader->load_image(&bootdev); switch (boot_device) { -#ifdef CONFIG_SPL_MMC_SUPPORT - case BOOT_DEVICE_MMC1: - case BOOT_DEVICE_MMC2: - case BOOT_DEVICE_MMC2_2: - return spl_mmc_load_image(&bootdev); -#endif #ifdef CONFIG_SPL_UBI case BOOT_DEVICE_NAND: case BOOT_DEVICE_ONENAND: diff --git a/common/spl/spl_mmc.c b/common/spl/spl_mmc.c index 899caf4a9b..5e8172e5bf 100644 --- a/common/spl/spl_mmc.c +++ b/common/spl/spl_mmc.c @@ -267,7 +267,7 @@ int spl_mmc_do_fs_boot(struct mmc *mmc) } #endif -int spl_mmc_load_image(struct spl_boot_device *bootdev) +static int spl_mmc_load_image(struct spl_boot_device *bootdev) { struct mmc *mmc = NULL; u32 boot_mode; @@ -345,3 +345,7 @@ int spl_mmc_load_image(struct spl_boot_device *bootdev) return err; } + +SPL_LOAD_IMAGE_METHOD(0, BOOT_DEVICE_MMC1, spl_mmc_load_image); +SPL_LOAD_IMAGE_METHOD(0, BOOT_DEVICE_MMC2, spl_mmc_load_image); +SPL_LOAD_IMAGE_METHOD(0, BOOT_DEVICE_MMC2_2, spl_mmc_load_image); diff --git a/include/spl.h b/include/spl.h index 884fbe6179..174147a06a 100644 --- a/include/spl.h +++ b/include/spl.h @@ -193,9 +193,6 @@ int spl_nor_load_image(struct spl_boot_device *bootdev); /* UBI SPL functions */ int spl_ubi_load_image(struct spl_boot_device *bootdev); -/* MMC SPL functions */ -int spl_mmc_load_image(struct spl_boot_device *bootdev); - /* YMODEM SPL functions */ int spl_ymodem_load_image(struct spl_boot_device *bootdev); -- 2.39.5