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/common/linux/module.c | 2 +- drivers/gpu/nvgpu/common/linux/pci.c | 3 +- drivers/gpu/nvgpu/common/linux/sim.c | 7 ++-- drivers/gpu/nvgpu/common/linux/sim.h | 43 -------------------- drivers/gpu/nvgpu/common/linux/sim_pci.c | 4 +- drivers/gpu/nvgpu/common/linux/sim_pci.h | 29 ------------- drivers/gpu/nvgpu/common/sim.c | 3 +- drivers/gpu/nvgpu/common/sim_pci.c | 2 +- drivers/gpu/nvgpu/gk20a/gk20a.h | 2 +- drivers/gpu/nvgpu/gk20a/gr_ctx_gk20a_sim.c | 2 +- drivers/gpu/nvgpu/gk20a/sim_gk20a.h | 45 --------------------- 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 +++++++++++++++++++++++++ 14 files changed, 128 insertions(+), 132 deletions(-) delete mode 100644 drivers/gpu/nvgpu/common/linux/sim.h delete mode 100644 drivers/gpu/nvgpu/common/linux/sim_pci.h delete mode 100644 drivers/gpu/nvgpu/gk20a/sim_gk20a.h 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 diff --git a/drivers/gpu/nvgpu/common/linux/module.c b/drivers/gpu/nvgpu/common/linux/module.c index e2b52dad..34850013 100644 --- a/drivers/gpu/nvgpu/common/linux/module.c +++ b/drivers/gpu/nvgpu/common/linux/module.c @@ -41,6 +41,7 @@ #include #include #include +#include #include "platform_gk20a.h" #include "sysfs.h" @@ -51,7 +52,6 @@ #include "module_usermode.h" #include "intr.h" #include "ioctl.h" -#include "sim.h" #include "os_linux.h" #include "ctxsw_trace.h" diff --git a/drivers/gpu/nvgpu/common/linux/pci.c b/drivers/gpu/nvgpu/common/linux/pci.c index a9bcca70..b860e35e 100644 --- a/drivers/gpu/nvgpu/common/linux/pci.c +++ b/drivers/gpu/nvgpu/common/linux/pci.c @@ -35,8 +35,7 @@ #include "sysfs.h" #include "os_linux.h" #include "platform_gk20a.h" -#include "sim.h" -#include "sim_pci.h" +#include #include "pci.h" #include "pci_usermode.h" diff --git a/drivers/gpu/nvgpu/common/linux/sim.c b/drivers/gpu/nvgpu/common/linux/sim.c index 5406035b..8e964f39 100644 --- a/drivers/gpu/nvgpu/common/linux/sim.c +++ b/drivers/gpu/nvgpu/common/linux/sim.c @@ -25,11 +25,11 @@ #include #include #include +#include #include "gk20a/gk20a.h" #include "platform_gk20a.h" #include "os_linux.h" #include "module.h" -#include "sim.h" /* will be removed in next patch */ void sim_writel(struct sim_nvgpu *sim, u32 r, u32 v) { @@ -51,10 +51,9 @@ void nvgpu_remove_sim_support_linux(struct gk20a *g) { struct sim_nvgpu_linux *sim_linux; - if (!g->sim) { - nvgpu_warn(g, "sim not allocated or not in sim_mode"); + if (!g->sim) return; - } + sim_linux = container_of(g->sim, struct sim_nvgpu_linux, sim); if (sim_linux->regs) { sim_writel(g->sim, sim_config_r(), sim_config_mode_disabled_v()); diff --git a/drivers/gpu/nvgpu/common/linux/sim.h b/drivers/gpu/nvgpu/common/linux/sim.h deleted file mode 100644 index 12f1a255..00000000 --- a/drivers/gpu/nvgpu/common/linux/sim.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * - * 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 -#include "gk20a/sim_gk20a.h" - -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(struct gk20a *g); /* will be moved to common in subsequent patch */ -int nvgpu_alloc_sim_buffer(struct gk20a *g, struct nvgpu_mem *mem); /* will be moved to common in subsequent patch */ -void nvgpu_free_sim_buffer(struct gk20a *g, struct nvgpu_mem *mem); /* will be moved to common in subsequent patch */ -void nvgpu_free_sim_support(struct gk20a *g); /* will be moved to common in subsequent patch */ -void nvgpu_remove_sim_support(struct gk20a *g); /* will be moved to common in subsequent patch */ -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/common/linux/sim_pci.c b/drivers/gpu/nvgpu/common/linux/sim_pci.c index 9dac630c..d37767b7 100644 --- a/drivers/gpu/nvgpu/common/linux/sim_pci.c +++ b/drivers/gpu/nvgpu/common/linux/sim_pci.c @@ -24,11 +24,10 @@ #include #include #include +#include #include "gk20a/gk20a.h" #include "os_linux.h" #include "module.h" -#include "sim.h" /* will be removed in subsequent patches */ -#include "sim_pci.h"/* will be removed in subsequent patches */ static bool _nvgpu_pci_is_simulation(struct gk20a *g, u32 sim_base) { @@ -50,7 +49,6 @@ void nvgpu_remove_sim_support_linux_pci(struct gk20a *g) is_simulation = _nvgpu_pci_is_simulation(g, sim_r()); if (!is_simulation) { - nvgpu_warn(g, "not in sim_mode"); return; } diff --git a/drivers/gpu/nvgpu/common/linux/sim_pci.h b/drivers/gpu/nvgpu/common/linux/sim_pci.h deleted file mode 100644 index 645dbdbd..00000000 --- a/drivers/gpu/nvgpu/common/linux/sim_pci.h +++ /dev/null @@ -1,29 +0,0 @@ -/* - * - * 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__ - -#include "gk20a/sim_gk20a.h" -#include "sim.h" - -int nvgpu_init_sim_support_pci(struct gk20a *g); /* this will be moved */ -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/common/sim.c b/drivers/gpu/nvgpu/common/sim.c index 0f88ec4d..6094d063 100644 --- a/drivers/gpu/nvgpu/common/sim.c +++ b/drivers/gpu/nvgpu/common/sim.c @@ -26,9 +26,8 @@ #include #include #include +#include #include "gk20a/gk20a.h" -#include "linux/sim.h" - int nvgpu_alloc_sim_buffer(struct gk20a *g, struct nvgpu_mem *mem) { diff --git a/drivers/gpu/nvgpu/common/sim_pci.c b/drivers/gpu/nvgpu/common/sim_pci.c index b4ca7bad..a72623e9 100644 --- a/drivers/gpu/nvgpu/common/sim_pci.c +++ b/drivers/gpu/nvgpu/common/sim_pci.c @@ -24,8 +24,8 @@ #include #include #include +#include #include "gk20a/gk20a.h" -#include "linux/sim.h" static inline u32 sim_msg_header_size(void) { diff --git a/drivers/gpu/nvgpu/gk20a/gk20a.h b/drivers/gpu/nvgpu/gk20a/gk20a.h index 7e1e751b..aac3380e 100644 --- a/drivers/gpu/nvgpu/gk20a/gk20a.h +++ b/drivers/gpu/nvgpu/gk20a/gk20a.h @@ -63,13 +63,13 @@ struct nvgpu_ctxsw_trace_filter; #include #include #include +#include #include "clk_gk20a.h" #include "ce2_gk20a.h" #include "fifo_gk20a.h" #include "tsg_gk20a.h" #include "gr_gk20a.h" -#include "sim_gk20a.h" #include "pmu_gk20a.h" #include "priv_ring_gk20a.h" #include "therm_gk20a.h" diff --git a/drivers/gpu/nvgpu/gk20a/gr_ctx_gk20a_sim.c b/drivers/gpu/nvgpu/gk20a/gr_ctx_gk20a_sim.c index 146b0e22..9674e2d6 100644 --- a/drivers/gpu/nvgpu/gk20a/gr_ctx_gk20a_sim.c +++ b/drivers/gpu/nvgpu/gk20a/gr_ctx_gk20a_sim.c @@ -25,7 +25,7 @@ */ #include "gk20a.h" -#include "sim_gk20a.h" +#include #include "gr_ctx_gk20a.h" #include diff --git a/drivers/gpu/nvgpu/gk20a/sim_gk20a.h b/drivers/gpu/nvgpu/gk20a/sim_gk20a.h deleted file mode 100644 index e74d33d5..00000000 --- a/drivers/gpu/nvgpu/gk20a/sim_gk20a.h +++ /dev/null @@ -1,45 +0,0 @@ -/* - * drivers/video/tegra/host/gk20a/sim_gk20a.h - * - * GK20A sim support - * - * Copyright (c) 2013-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 __SIM_GK20A_H__ -#define __SIM_GK20A_H__ - -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); -}; - -#endif /*__SIM_GK20A_H__*/ 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