mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-22 09:11:26 +03:00
nvsciipc: use CONFIG_TEGRA_VIRTUALIZATION
Use CONFIG_TEGRA_VIRTUALIZATION to remove dependency on ivc-cdev.ko and tegra_hv.ko in native Linux. Bug 3861841 Change-Id: I671a0eec76713715d7fc79cb730aeaa7ab460043 Signed-off-by: Joshua Cha <joshuac@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2830878 Reviewed-by: svcacv <svcacv@nvidia.com> Reviewed-by: Suresh Venkatachalam <skathirampat@nvidia.com> Reviewed-by: Kurt Yi <kyi@nvidia.com> GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
This commit is contained in:
committed by
mobile promotions
parent
46858f60e8
commit
7f189297bd
@@ -5,5 +5,11 @@
|
||||
# Makefile for NvSciIpc driver
|
||||
#
|
||||
|
||||
ifeq ($(CONFIG_TEGRA_OOT_MODULE),m)
|
||||
ccflags-y += -DCONFIG_TEGRA_OOT_MODULE
|
||||
ifeq ($(CONFIG_TEGRA_VIRTUALIZATION),y)
|
||||
ccflags-y += -DCONFIG_TEGRA_VIRTUALIZATION
|
||||
endif
|
||||
endif
|
||||
obj-m += nvsciipc.o
|
||||
|
||||
|
||||
@@ -31,9 +31,13 @@
|
||||
#include <linux/of.h>
|
||||
#include <linux/fs.h>
|
||||
|
||||
#ifdef CONFIG_TEGRA_VIRTUALIZATION
|
||||
#include <soc/tegra/virt/syscalls.h>
|
||||
#ifdef CONFIG_TEGRA_OOT_MODULE
|
||||
#include <soc/tegra/virt/hv-ivc.h>
|
||||
#endif /* CONFIG_TEGRA_OOT_MODULE */
|
||||
#include <uapi/linux/tegra-ivc-dev.h>
|
||||
#endif /* CONFIG_TEGRA_VIRTUALIZATION */
|
||||
|
||||
#include "nvsciipc.h"
|
||||
|
||||
@@ -46,7 +50,9 @@ DEFINE_MUTEX(nvsciipc_mutex);
|
||||
|
||||
static struct platform_device *nvsciipc_pdev;
|
||||
static struct nvsciipc *ctx;
|
||||
#ifdef CONFIG_TEGRA_VIRTUALIZATION
|
||||
static int32_t s_guestid = -1;
|
||||
#endif /* CONFIG_TEGRA_VIRTUALIZATION */
|
||||
|
||||
NvSciError NvSciIpcEndpointGetAuthToken(NvSciIpcEndpoint handle,
|
||||
NvSciIpcEndpointAuthToken *authToken)
|
||||
@@ -471,6 +477,7 @@ static int nvsciipc_ioctl_set_db(struct nvsciipc *ctx, unsigned int cmd,
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef CONFIG_TEGRA_VIRTUALIZATION
|
||||
if (s_guestid != -1) {
|
||||
struct nvsciipc_config_entry *entry;
|
||||
union nvsciipc_vuid_64 vuid64;
|
||||
@@ -491,6 +498,7 @@ static int nvsciipc_ioctl_set_db(struct nvsciipc *ctx, unsigned int cmd,
|
||||
(void)ivc_cdev_get_peer_vmid(entry->id, &entry->peer_vmid);
|
||||
}
|
||||
}
|
||||
#endif /* CONFIG_TEGRA_VIRTUALIZATION */
|
||||
|
||||
kfree(entry_ptr);
|
||||
|
||||
@@ -588,10 +596,14 @@ static long nvsciipc_dev_ioctl(struct file *filp, unsigned int cmd,
|
||||
break;
|
||||
#endif /* DEBUG_AUTH_API */
|
||||
case NVSCIIPC_IOCTL_GET_VMID:
|
||||
#ifdef CONFIG_TEGRA_VIRTUALIZATION
|
||||
if (copy_to_user((void __user *) arg, &s_guestid,
|
||||
sizeof(s_guestid))) {
|
||||
ret = -EFAULT;
|
||||
}
|
||||
#else
|
||||
ret = -EFAULT;
|
||||
#endif /* CONFIG_TEGRA_VIRTUALIZATION */
|
||||
break;
|
||||
default:
|
||||
ERR("unrecognised ioctl cmd: 0x%x\n", cmd);
|
||||
@@ -704,6 +716,7 @@ static int nvsciipc_probe(struct platform_device *pdev)
|
||||
}
|
||||
dev_set_drvdata(ctx->device, ctx);
|
||||
|
||||
#ifdef CONFIG_TEGRA_VIRTUALIZATION
|
||||
if (is_tegra_hypervisor_mode()) {
|
||||
ret = hyp_read_gid(&s_guestid);
|
||||
if (ret != 0) {
|
||||
@@ -712,6 +725,7 @@ static int nvsciipc_probe(struct platform_device *pdev)
|
||||
}
|
||||
INFO("guestid: %d\n", s_guestid);
|
||||
}
|
||||
#endif /* CONFIG_TEGRA_VIRTUALIZATION */
|
||||
|
||||
INFO("loaded module\n");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user