1989d42e8SGreg Kroah-Hartman // SPDX-License-Identifier: GPL-2.0 21da177e4SLinus Torvalds /* 31da177e4SLinus Torvalds * Copyright (c) 2002-3 Patrick Mochel 41da177e4SLinus Torvalds * Copyright (c) 2002-3 Open Source Development Labs 51da177e4SLinus Torvalds */ 61da177e4SLinus Torvalds 71da177e4SLinus Torvalds #include <linux/device.h> 81da177e4SLinus Torvalds #include <linux/init.h> 93947be19SDave Hansen #include <linux/memory.h> 10194ec936SSudeep Holla #include <linux/of.h> 11*4bca7e80SJan Kara #include <linux/backing-dev.h> 121da177e4SLinus Torvalds 13a1bdc7aaSBen Dooks #include "base.h" 14a1bdc7aaSBen Dooks 151da177e4SLinus Torvalds /** 161da177e4SLinus Torvalds * driver_init - initialize driver model. 171da177e4SLinus Torvalds * 181da177e4SLinus Torvalds * Call the driver model init functions to initialize their 191da177e4SLinus Torvalds * subsystems. Called early from init/main.c. 201da177e4SLinus Torvalds */ driver_init(void)211da177e4SLinus Torvaldsvoid __init driver_init(void) 221da177e4SLinus Torvalds { 231da177e4SLinus Torvalds /* These are the core pieces */ 24*4bca7e80SJan Kara bdi_init(&noop_backing_dev_info); 252b2af54aSKay Sievers devtmpfs_init(); 261da177e4SLinus Torvalds devices_init(); 271da177e4SLinus Torvalds buses_init(); 281da177e4SLinus Torvalds classes_init(); 291da177e4SLinus Torvalds firmware_init(); 304039483fSMichael Holzheu hypervisor_init(); 311da177e4SLinus Torvalds 321da177e4SLinus Torvalds /* These are also core pieces, but must come after the 331da177e4SLinus Torvalds * core core pieces. 341da177e4SLinus Torvalds */ 35319b11efSWesley W. Terpstra of_core_init(); 361da177e4SLinus Torvalds platform_bus_init(); 37471b12c4SDave Jiang auxiliary_bus_init(); 381da177e4SLinus Torvalds cpu_dev_init(); 393947be19SDave Hansen memory_dev_init(); 402848a28bSDavid Hildenbrand node_dev_init(); 41caa73ea1SRafael J. Wysocki container_dev_init(); 421da177e4SLinus Torvalds } 43