162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * System bus type for containers.
462306a36Sopenharmony_ci *
562306a36Sopenharmony_ci * Copyright (C) 2013, Intel Corporation
662306a36Sopenharmony_ci * Author: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
762306a36Sopenharmony_ci */
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#include <linux/container.h>
1062306a36Sopenharmony_ci
1162306a36Sopenharmony_ci#include "base.h"
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci#define CONTAINER_BUS_NAME	"container"
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_cistatic int trivial_online(struct device *dev)
1662306a36Sopenharmony_ci{
1762306a36Sopenharmony_ci	return 0;
1862306a36Sopenharmony_ci}
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_cistatic int container_offline(struct device *dev)
2162306a36Sopenharmony_ci{
2262306a36Sopenharmony_ci	struct container_dev *cdev = to_container_dev(dev);
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci	return cdev->offline ? cdev->offline(cdev) : 0;
2562306a36Sopenharmony_ci}
2662306a36Sopenharmony_ci
2762306a36Sopenharmony_cistruct bus_type container_subsys = {
2862306a36Sopenharmony_ci	.name = CONTAINER_BUS_NAME,
2962306a36Sopenharmony_ci	.dev_name = CONTAINER_BUS_NAME,
3062306a36Sopenharmony_ci	.online = trivial_online,
3162306a36Sopenharmony_ci	.offline = container_offline,
3262306a36Sopenharmony_ci};
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_civoid __init container_dev_init(void)
3562306a36Sopenharmony_ci{
3662306a36Sopenharmony_ci	int ret;
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci	ret = subsys_system_register(&container_subsys, NULL);
3962306a36Sopenharmony_ci	if (ret)
4062306a36Sopenharmony_ci		pr_err("%s() failed: %d\n", __func__, ret);
4162306a36Sopenharmony_ci}
42