xref: /OK3568_Linux_fs/kernel/drivers/base/container.c (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun // SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun /*
3*4882a593Smuzhiyun  * System bus type for containers.
4*4882a593Smuzhiyun  *
5*4882a593Smuzhiyun  * Copyright (C) 2013, Intel Corporation
6*4882a593Smuzhiyun  * Author: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
7*4882a593Smuzhiyun  */
8*4882a593Smuzhiyun 
9*4882a593Smuzhiyun #include <linux/container.h>
10*4882a593Smuzhiyun 
11*4882a593Smuzhiyun #include "base.h"
12*4882a593Smuzhiyun 
13*4882a593Smuzhiyun #define CONTAINER_BUS_NAME	"container"
14*4882a593Smuzhiyun 
trivial_online(struct device * dev)15*4882a593Smuzhiyun static int trivial_online(struct device *dev)
16*4882a593Smuzhiyun {
17*4882a593Smuzhiyun 	return 0;
18*4882a593Smuzhiyun }
19*4882a593Smuzhiyun 
container_offline(struct device * dev)20*4882a593Smuzhiyun static int container_offline(struct device *dev)
21*4882a593Smuzhiyun {
22*4882a593Smuzhiyun 	struct container_dev *cdev = to_container_dev(dev);
23*4882a593Smuzhiyun 
24*4882a593Smuzhiyun 	return cdev->offline ? cdev->offline(cdev) : 0;
25*4882a593Smuzhiyun }
26*4882a593Smuzhiyun 
27*4882a593Smuzhiyun struct bus_type container_subsys = {
28*4882a593Smuzhiyun 	.name = CONTAINER_BUS_NAME,
29*4882a593Smuzhiyun 	.dev_name = CONTAINER_BUS_NAME,
30*4882a593Smuzhiyun 	.online = trivial_online,
31*4882a593Smuzhiyun 	.offline = container_offline,
32*4882a593Smuzhiyun };
33*4882a593Smuzhiyun 
container_dev_init(void)34*4882a593Smuzhiyun void __init container_dev_init(void)
35*4882a593Smuzhiyun {
36*4882a593Smuzhiyun 	int ret;
37*4882a593Smuzhiyun 
38*4882a593Smuzhiyun 	ret = subsys_system_register(&container_subsys, NULL);
39*4882a593Smuzhiyun 	if (ret)
40*4882a593Smuzhiyun 		pr_err("%s() failed: %d\n", __func__, ret);
41*4882a593Smuzhiyun }
42