Files
linux-nvgpu/drivers/gpu/nvgpu/os/linux/vgpu/vgpu_ivc.c
Jon Hunter 261d4bed13 gpu: nvgpu: Enable -Wmissing-prototypes
The compiler option -Wmissing-prototypes is being enabled globally in
the upstream Linux kernel and this causes build failures for nvgpu. The
build failures occur because either the driver is missing an include
file which has the prototype or because the function is not declared
statically when it should be (ie. there are no external users).

Fix the various build failures and enable -Wmissing-prototypes to
prevent any new instances from occurring.

Bug 4404965

Change-Id: I551922836e37b0c94c158232d6277f4053e9d2d3
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/3027483
(cherry picked from commit e8cbf90db2d0db7277db9e3eec9fb88d69c7fcc7)
Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/3035518
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
2023-12-15 14:09:44 -08:00

68 lines
1.5 KiB
C

// SPDX-License-Identifier: GPL-2.0-only
// SPDX-FileCopyrightText: Copyright (c) 2018-2023 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
#include <nvgpu/types.h>
#include <nvgpu/vgpu/vgpu_ivc.h>
#include <linux/tegra_gr_comm.h>
#include "os/linux/os_linux.h"
#include "os/linux/module.h"
int vgpu_ivc_init(struct gk20a *g, u32 elems,
const size_t *queue_sizes, u32 queue_start, u32 num_queues)
{
struct device *dev = dev_from_gk20a(g);
return tegra_gr_comm_init(dev, nvgpu_get_node(g), elems,
queue_sizes, queue_start,
num_queues);
}
void vgpu_ivc_deinit(u32 queue_start, u32 num_queues)
{
tegra_gr_comm_deinit(queue_start, num_queues);
}
void vgpu_ivc_release(void *handle)
{
tegra_gr_comm_release(handle);
}
u32 vgpu_ivc_get_server_vmid(void)
{
return tegra_gr_comm_get_server_vmid();
}
int vgpu_ivc_recv(u32 index, void **handle, void **data,
size_t *size, u32 *sender)
{
return tegra_gr_comm_recv(index, handle, data, size, sender);
}
int vgpu_ivc_send(u32 peer, u32 index, void *data, size_t size)
{
return tegra_gr_comm_send(peer, index, data, size);
}
int vgpu_ivc_sendrecv(u32 peer, u32 index, void **handle,
void **data, size_t *size)
{
return tegra_gr_comm_sendrecv(peer, index, handle, data, size);
}
u32 vgpu_ivc_get_peer_self(void)
{
return TEGRA_GR_COMM_ID_SELF;
}
void *vgpu_ivc_oob_get_ptr(u32 peer, u32 index, void **ptr,
size_t *size)
{
return tegra_gr_comm_oob_get_ptr(peer, index, ptr, size);
}
void vgpu_ivc_oob_put_ptr(void *handle)
{
tegra_gr_comm_oob_put_ptr(handle);
}