From 7e66f2a63d4855e763fa768047dfc32f6f96b771 Mon Sep 17 00:00:00 2001 From: Antony Clince Alex Date: Thu, 26 Apr 2018 09:59:35 +0530 Subject: gpu: nvgpu: created os-agnostic sim header. added a os-agnostic sim.h header which could be included in by any platform, moved out os specific headers to nvgpu/linux. JIRA VQRM-2368 Change-Id: I3861bfa75a6b8d2d909bc7223467fd68c208275b Signed-off-by: Antony Clince Alex Reviewed-on: https://git-master.nvidia.com/r/1702816 Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/include/nvgpu/linux/sim.h | 38 +++++++++++++++++ drivers/gpu/nvgpu/include/nvgpu/linux/sim_pci.h | 26 ++++++++++++ drivers/gpu/nvgpu/include/nvgpu/sim.h | 54 +++++++++++++++++++++++++ 3 files changed, 118 insertions(+) create mode 100644 drivers/gpu/nvgpu/include/nvgpu/linux/sim.h create mode 100644 drivers/gpu/nvgpu/include/nvgpu/linux/sim_pci.h create mode 100644 drivers/gpu/nvgpu/include/nvgpu/sim.h (limited to 'drivers/gpu/nvgpu/include') diff --git a/drivers/gpu/nvgpu/include/nvgpu/linux/sim.h b/drivers/gpu/nvgpu/include/nvgpu/linux/sim.h new file mode 100644 index 00000000..c5aab899 --- /dev/null +++ b/drivers/gpu/nvgpu/include/nvgpu/linux/sim.h @@ -0,0 +1,38 @@ +/* + * + * nvgpu sim support + * + * Copyright (c) 2018, 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 __SIM_LINUX_H__ +#define __SIM_LINUX_H__ + +#include + +struct sim_nvgpu_linux { + struct sim_nvgpu sim; + struct resource *reg_mem; + void __iomem *regs; + void (*remove_support_linux)(struct gk20a *g); +}; + +void sim_writel(struct sim_nvgpu *sim, u32 r, u32 v); +u32 sim_readl(struct sim_nvgpu *sim, u32 r); + +int nvgpu_init_sim_support_linux(struct gk20a *g, + struct platform_device *dev); +void nvgpu_remove_sim_support_linux(struct gk20a *g); +#endif diff --git a/drivers/gpu/nvgpu/include/nvgpu/linux/sim_pci.h b/drivers/gpu/nvgpu/include/nvgpu/linux/sim_pci.h new file mode 100644 index 00000000..5784ecba --- /dev/null +++ b/drivers/gpu/nvgpu/include/nvgpu/linux/sim_pci.h @@ -0,0 +1,26 @@ +/* + * + * GK20A sim support + * + * Copyright (c) 2018, 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 __SIM_PCI_LINUX_H__ +#define __SIM_PCI_LINUX_H__ + +int nvgpu_init_sim_support_linux_pci(struct gk20a *g); +void nvgpu_remove_sim_support_linux_pci(struct gk20a *g); + +#endif diff --git a/drivers/gpu/nvgpu/include/nvgpu/sim.h b/drivers/gpu/nvgpu/include/nvgpu/sim.h new file mode 100644 index 00000000..78b749dd --- /dev/null +++ b/drivers/gpu/nvgpu/include/nvgpu/sim.h @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2018, NVIDIA CORPORATION. All rights reserved. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + */ +#ifndef __NVGPU_SIM_H__ +#define __NVGPU_SIM_H__ + +#include + +struct gk20a; +struct sim_nvgpu { + struct gk20a *g; + u32 send_ring_put; + u32 recv_ring_get; + u32 recv_ring_put; + u32 sequence_base; + struct nvgpu_mem send_bfr; + struct nvgpu_mem recv_bfr; + struct nvgpu_mem msg_bfr; + void (*remove_support)(struct gk20a *); + int (*esc_readl)( + struct gk20a *g, char *path, u32 index, u32 *data); +}; +#ifdef __KERNEL__ +#include "linux/sim.h" +#include "linux/sim_pci.h" +#else + +#endif +int nvgpu_init_sim_support(struct gk20a *g); +int nvgpu_init_sim_support_pci(struct gk20a *g); +int nvgpu_alloc_sim_buffer(struct gk20a *g, struct nvgpu_mem *mem); +void nvgpu_free_sim_buffer(struct gk20a *g, struct nvgpu_mem *mem); +void nvgpu_free_sim_support(struct gk20a *g); +void nvgpu_remove_sim_support(struct gk20a *g); + +#endif -- cgit v1.2.2