mirror of
https://github.com/torvalds/linux.git
synced 2024-12-05 18:41:23 +00:00
597b89d30b
The context bus is a "dummy" bus that contains struct devices that correspond to IOMMU contexts assigned through Host1x to processes. Even when host1x itself is built as a module, the bus is registered in built-in code so that the built-in ARM SMMU driver is able to reference it. Signed-off-by: Mikko Perttunen <mperttunen@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
32 lines
717 B
C
32 lines
717 B
C
// SPDX-License-Identifier: GPL-2.0-only
|
|
/*
|
|
* Copyright (c) 2021, NVIDIA Corporation.
|
|
*/
|
|
|
|
#include <linux/device.h>
|
|
#include <linux/of.h>
|
|
|
|
struct bus_type host1x_context_device_bus_type = {
|
|
.name = "host1x-context",
|
|
};
|
|
EXPORT_SYMBOL_GPL(host1x_context_device_bus_type);
|
|
|
|
static int __init host1x_context_device_bus_init(void)
|
|
{
|
|
int err;
|
|
|
|
if (!of_machine_is_compatible("nvidia,tegra186") &&
|
|
!of_machine_is_compatible("nvidia,tegra194") &&
|
|
!of_machine_is_compatible("nvidia,tegra234"))
|
|
return 0;
|
|
|
|
err = bus_register(&host1x_context_device_bus_type);
|
|
if (err < 0) {
|
|
pr_err("bus type registration failed: %d\n", err);
|
|
return err;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
postcore_initcall(host1x_context_device_bus_init);
|