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