From b42fb7ba26b565f93118fbdd9e17b42ee6144c5e Mon Sep 17 00:00:00 2001 From: Deepak Nibade Date: Tue, 14 Nov 2017 06:43:28 -0800 Subject: gpu: nvgpu: move vgpu code to linux Most of VGPU code is linux specific but lies in common code So until VGPU code is properly abstracted and made os-independent, move all of VGPU code to linux specific directory Handle corresponding Makefile changes Update all #includes to reflect new paths Add GPL license to newly added linux files Jira NVGPU-387 Change-Id: Ic133e4c80e570bcc273f0dacf45283fefd678923 Signed-off-by: Deepak Nibade Reviewed-on: https://git-master.nvidia.com/r/1599472 GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/common/linux/vgpu/fifo_vgpu.h | 59 +++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 drivers/gpu/nvgpu/common/linux/vgpu/fifo_vgpu.h (limited to 'drivers/gpu/nvgpu/common/linux/vgpu/fifo_vgpu.h') diff --git a/drivers/gpu/nvgpu/common/linux/vgpu/fifo_vgpu.h b/drivers/gpu/nvgpu/common/linux/vgpu/fifo_vgpu.h new file mode 100644 index 00000000..62a3a256 --- /dev/null +++ b/drivers/gpu/nvgpu/common/linux/vgpu/fifo_vgpu.h @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2017, NVIDIA CORPORATION. All rights reserved. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms and conditions of the GNU General Public License, + * version 2, as published by the Free Software Foundation. + * + * This program is distributed in the hope it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for + * more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +#ifndef _FIFO_VGPU_H_ +#define _FIFO_VGPU_H_ + +#include + +struct gk20a; +struct channel_gk20a; +struct fifo_gk20a; +struct tsg_gk20a; + +int vgpu_init_fifo_setup_hw(struct gk20a *g); +void vgpu_channel_bind(struct channel_gk20a *ch); +void vgpu_channel_unbind(struct channel_gk20a *ch); +int vgpu_channel_alloc_inst(struct gk20a *g, struct channel_gk20a *ch); +void vgpu_channel_free_inst(struct gk20a *g, struct channel_gk20a *ch); +void vgpu_channel_enable(struct channel_gk20a *ch); +void vgpu_channel_disable(struct channel_gk20a *ch); +int vgpu_channel_setup_ramfc(struct channel_gk20a *ch, u64 gpfifo_base, + u32 gpfifo_entries, + unsigned long acquire_timeout, u32 flags); +int vgpu_fifo_init_engine_info(struct fifo_gk20a *f); +int vgpu_fifo_preempt_channel(struct gk20a *g, u32 chid); +int vgpu_fifo_preempt_tsg(struct gk20a *g, u32 tsgid); +int vgpu_fifo_update_runlist(struct gk20a *g, u32 runlist_id, + u32 chid, bool add, bool wait_for_finish); +int vgpu_fifo_wait_engine_idle(struct gk20a *g); +int vgpu_fifo_set_runlist_interleave(struct gk20a *g, + u32 id, + bool is_tsg, + u32 runlist_id, + u32 new_level); +int vgpu_channel_set_timeslice(struct channel_gk20a *ch, u32 timeslice); +int vgpu_fifo_force_reset_ch(struct channel_gk20a *ch, + u32 err_code, bool verbose); +u32 vgpu_fifo_default_timeslice_us(struct gk20a *g); +int vgpu_tsg_open(struct tsg_gk20a *tsg); +int vgpu_tsg_bind_channel(struct tsg_gk20a *tsg, + struct channel_gk20a *ch); +int vgpu_tsg_unbind_channel(struct channel_gk20a *ch); +int vgpu_tsg_set_timeslice(struct tsg_gk20a *tsg, u32 timeslice); +int vgpu_enable_tsg(struct tsg_gk20a *tsg); + +#endif -- cgit v1.2.2