Files
Richard Zhao 054f2a1a22 video: tegra: virt: separate dev and dt for init
The dt node that includes ivc properties and the dev does not have to be
same node. GPU could be PCIE endpoint device which does not have
corresponding dt node, so GPU driver uses PCIE controller node to store
ivc properties.

Jira GVSCI-15779

Change-Id: Ibf9c8f17eac1accceee5fe8d5eca3521cda934b9
Signed-off-by: Richard Zhao <rizhao@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nv-oot/+/2884313
Reviewed-by: svcacv <svcacv@nvidia.com>
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
Reviewed-by: svc-mobile-cert <svc-mobile-cert@nvidia.com>
Reviewed-by: Austin Tajiri <atajiri@nvidia.com>
Reviewed-by: Vijayakumar Subbu <vsubbu@nvidia.com>
GVS: Gerrit_Virtual_Submit <buildbot_gerritrpt@nvidia.com>
2023-05-01 00:25:01 -07:00

30 lines
978 B
C

/* SPDX-License-Identifier: GPL-2.0-only */
/*
* Copyright (c) 2013-2023, NVIDIA Corporation. All rights reserved.
*
* Tegra Graphics Virtualization Communication Framework
*/
#ifndef __TEGRA_GR_COMM_H
#define __TEGRA_GR_COMM_H
#include <linux/device.h>
#define TEGRA_GR_COMM_ID_SELF (0xFF)
int tegra_gr_comm_init(struct device *dev, struct device_node *dn, u32 elems,
const size_t *queue_sizes, u32 queue_start, u32 num_queues);
void tegra_gr_comm_deinit(u32 queue_start, u32 num_queues);
int tegra_gr_comm_send(u32 peer, u32 index, void *data,
size_t size);
int tegra_gr_comm_recv(u32 index, void **handle, void **data,
size_t *size, u32 *sender);
int tegra_gr_comm_sendrecv(u32 peer, u32 index, void **handle,
void **data, size_t *size);
void tegra_gr_comm_release(void *handle);
u32 tegra_gr_comm_get_server_vmid(void);
void *tegra_gr_comm_oob_get_ptr(u32 peer, u32 index,
void **ptr, size_t *size);
void tegra_gr_comm_oob_put_ptr(void *handle);
#endif