xref: /rk3399_rockchip-uboot/lib/initcall.c (revision 1a4596601fd395f3afb8f82f3f840c5e00bdd57a)
1c8a311d9SSimon Glass /*
2c8a311d9SSimon Glass  * Copyright (c) 2013 The Chromium OS Authors.
3c8a311d9SSimon Glass  *
4*1a459660SWolfgang Denk  * SPDX-License-Identifier:	GPL-2.0+
5c8a311d9SSimon Glass  */
6c8a311d9SSimon Glass 
7c8a311d9SSimon Glass #include <common.h>
8c8a311d9SSimon Glass #include <initcall.h>
9c8a311d9SSimon Glass 
10c8a311d9SSimon Glass int initcall_run_list(init_fnc_t init_sequence[])
11c8a311d9SSimon Glass {
12c8a311d9SSimon Glass 	init_fnc_t *init_fnc_ptr;
13c8a311d9SSimon Glass 
14c8a311d9SSimon Glass 	for (init_fnc_ptr = init_sequence; *init_fnc_ptr; ++init_fnc_ptr) {
15c8a311d9SSimon Glass 		debug("initcall: %p\n", *init_fnc_ptr);
16c8a311d9SSimon Glass 		if ((*init_fnc_ptr)()) {
17c8a311d9SSimon Glass 			debug("initcall sequence %p failed at call %p\n",
18c8a311d9SSimon Glass 			      init_sequence, *init_fnc_ptr);
19c8a311d9SSimon Glass 			return -1;
20c8a311d9SSimon Glass 		}
21c8a311d9SSimon Glass 	}
22c8a311d9SSimon Glass 	return 0;
23c8a311d9SSimon Glass }
24