summaryrefslogtreecommitdiff
path: root/arch/x86/lib
diff options
context:
space:
mode:
authorStefan Roese <sr@denx.de>2017-04-24 07:48:03 (GMT)
committerBin Meng <bmeng.cn@gmail.com>2017-05-17 09:13:06 (GMT)
commit7025b05415ff97824266ce59b7f7915032ba6403 (patch)
tree50600e68a8e1bbe5533d7fc4d2d2669f2574b210 /arch/x86/lib
parent426f99fa98c3725fe0ca1eb8438d1215a2c6bd6b (diff)
downloadu-boot-7025b05415ff97824266ce59b7f7915032ba6403.tar.xz
x86: bootm: Add dm_remove_devices_flags() call to bootm_announce_and_cleanup()
This patch adds a call to dm_remove_devices_flags() to bootm_announce_and_cleanup() so that drivers that have one of the removal flags set (e.g. DM_FLAG_ACTIVE_DMA_REMOVE) in their driver struct, may do some last-stage cleanup before the OS is started. Signed-off-by: Stefan Roese <sr@denx.de> Cc: Bin Meng <bmeng.cn@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'arch/x86/lib')
-rw-r--r--arch/x86/lib/bootm.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/arch/x86/lib/bootm.c b/arch/x86/lib/bootm.c
index 75bab90..ecd4f4e 100644
--- a/arch/x86/lib/bootm.c
+++ b/arch/x86/lib/bootm.c
@@ -10,6 +10,8 @@
#include <common.h>
#include <command.h>
+#include <dm/device.h>
+#include <dm/root.h>
#include <errno.h>
#include <fdt_support.h>
#include <image.h>
@@ -46,6 +48,13 @@ void bootm_announce_and_cleanup(void)
#ifdef CONFIG_BOOTSTAGE_REPORT
bootstage_report();
#endif
+
+ /*
+ * Call remove function of all devices with a removal flag set.
+ * This may be useful for last-stage operations, like cancelling
+ * of DMA operation or releasing device internal buffers.
+ */
+ dm_remove_devices_flags(DM_REMOVE_ACTIVE_ALL);
}
#if defined(CONFIG_OF_LIBFDT) && !defined(CONFIG_OF_NO_KERNEL)