blob: c8a934e794213fd3891f32d7bf489389973135cd [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
Linus Torvalds1da177e2005-04-16 15:20:36 -07002 * Copyright (c) 2002-3 Patrick Mochel
3 * Copyright (c) 2002-3 Open Source Development Labs
4 *
5 * This file is released under the GPLv2
Linus Torvalds1da177e2005-04-16 15:20:36 -07006 */
7
8#include <linux/device.h>
9#include <linux/init.h>
Dave Hansen3947be12005-10-29 18:16:54 -070010#include <linux/memory.h>
Linus Torvalds1da177e2005-04-16 15:20:36 -070011
Ben Dooksa1bdc7a2005-10-13 17:54:41 +010012#include "base.h"
13
Linus Torvalds1da177e2005-04-16 15:20:36 -070014/**
Greg Kroah-Hartman4a3ad202008-01-24 22:50:12 -080015 * driver_init - initialize driver model.
Linus Torvalds1da177e2005-04-16 15:20:36 -070016 *
Greg Kroah-Hartman4a3ad202008-01-24 22:50:12 -080017 * Call the driver model init functions to initialize their
18 * subsystems. Called early from init/main.c.
Linus Torvalds1da177e2005-04-16 15:20:36 -070019 */
Linus Torvalds1da177e2005-04-16 15:20:36 -070020void __init driver_init(void)
21{
22 /* These are the core pieces */
Kay Sievers2b2af542009-04-30 15:23:42 +020023 devtmpfs_init();
Linus Torvalds1da177e2005-04-16 15:20:36 -070024 devices_init();
25 buses_init();
26 classes_init();
27 firmware_init();
Michael Holzheu40394832006-05-09 12:53:49 +020028 hypervisor_init();
Linus Torvalds1da177e2005-04-16 15:20:36 -070029
30 /* These are also core pieces, but must come after the
31 * core core pieces.
32 */
33 platform_bus_init();
34 system_bus_init();
35 cpu_dev_init();
Dave Hansen3947be12005-10-29 18:16:54 -070036 memory_dev_init();
Linus Torvalds1da177e2005-04-16 15:20:36 -070037}