xref: /linux/drivers/base/init.c (revision 24bce201d79807b668bf9d9e0aca801c5c0d5f78)
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * Copyright (c) 2002-3 Patrick Mochel
4  * Copyright (c) 2002-3 Open Source Development Labs
5  */
6 
7 #include <linux/device.h>
8 #include <linux/init.h>
9 #include <linux/memory.h>
10 #include <linux/of.h>
11 #include <linux/backing-dev.h>
12 
13 #include "base.h"
14 
15 /**
16  * driver_init - initialize driver model.
17  *
18  * Call the driver model init functions to initialize their
19  * subsystems. Called early from init/main.c.
20  */
21 void __init driver_init(void)
22 {
23 	/* These are the core pieces */
24 	bdi_init(&noop_backing_dev_info);
25 	devtmpfs_init();
26 	devices_init();
27 	buses_init();
28 	classes_init();
29 	firmware_init();
30 	hypervisor_init();
31 
32 	/* These are also core pieces, but must come after the
33 	 * core core pieces.
34 	 */
35 	of_core_init();
36 	platform_bus_init();
37 	auxiliary_bus_init();
38 	cpu_dev_init();
39 	memory_dev_init();
40 	node_dev_init();
41 	container_dev_init();
42 }
43