18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_ci/*
38c2ecf20Sopenharmony_ci * System bus type for containers.
48c2ecf20Sopenharmony_ci *
58c2ecf20Sopenharmony_ci * Copyright (C) 2013, Intel Corporation
68c2ecf20Sopenharmony_ci * Author: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
78c2ecf20Sopenharmony_ci */
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ci#include <linux/container.h>
108c2ecf20Sopenharmony_ci
118c2ecf20Sopenharmony_ci#include "base.h"
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ci#define CONTAINER_BUS_NAME	"container"
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_cistatic int trivial_online(struct device *dev)
168c2ecf20Sopenharmony_ci{
178c2ecf20Sopenharmony_ci	return 0;
188c2ecf20Sopenharmony_ci}
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_cistatic int container_offline(struct device *dev)
218c2ecf20Sopenharmony_ci{
228c2ecf20Sopenharmony_ci	struct container_dev *cdev = to_container_dev(dev);
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ci	return cdev->offline ? cdev->offline(cdev) : 0;
258c2ecf20Sopenharmony_ci}
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_cistruct bus_type container_subsys = {
288c2ecf20Sopenharmony_ci	.name = CONTAINER_BUS_NAME,
298c2ecf20Sopenharmony_ci	.dev_name = CONTAINER_BUS_NAME,
308c2ecf20Sopenharmony_ci	.online = trivial_online,
318c2ecf20Sopenharmony_ci	.offline = container_offline,
328c2ecf20Sopenharmony_ci};
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_civoid __init container_dev_init(void)
358c2ecf20Sopenharmony_ci{
368c2ecf20Sopenharmony_ci	int ret;
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ci	ret = subsys_system_register(&container_subsys, NULL);
398c2ecf20Sopenharmony_ci	if (ret)
408c2ecf20Sopenharmony_ci		pr_err("%s() failed: %d\n", __func__, ret);
418c2ecf20Sopenharmony_ci}
42