From be3750bc9eb60f8696c20b7298cc282eea17ac1b Mon Sep 17 00:00:00 2001 From: Terje Bergstrom Date: Wed, 27 Sep 2017 13:21:44 -0700 Subject: gpu: nvgpu: Abstract IO aperture accessors Add abstraction of IO aperture accessors. Add new functions gk20a_io_exists() and gk20a_io_valid_reg() to remove dependencies to aperture fields from common code. Implement Linux version of the abstraction by moving gk20a_readl() and gk20a_writel() to new Linux specific io.c. Move the fields defining IO aperture to nvgpu_os_linux. Add t19x specific IO aperture initialization functions and add t19x specific section to nvgpu_os_linux. JIRA NVGPU-259 Change-Id: I09e79cda60d11a20d1099a9aaa6d2375236e94ce Signed-off-by: Terje Bergstrom Reviewed-on: https://git-master.nvidia.com/r/1569698 Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/include/nvgpu/io.h | 49 ++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 drivers/gpu/nvgpu/include/nvgpu/io.h (limited to 'drivers/gpu/nvgpu/include') diff --git a/drivers/gpu/nvgpu/include/nvgpu/io.h b/drivers/gpu/nvgpu/include/nvgpu/io.h new file mode 100644 index 00000000..94ae8f95 --- /dev/null +++ b/drivers/gpu/nvgpu/include/nvgpu/io.h @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2017, 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_IO_H__ +#define __NVGPU_IO_H__ + +#include +#ifdef CONFIG_TEGRA_19x_GPU +#include +#endif + +/* Legacy defines - should be removed once everybody uses nvgpu_* */ +#define gk20a_writel nvgpu_writel +#define gk20a_readl nvgpu_readl +#define gk20a_writel_check nvgpu_writel_check +#define gk20a_bar1_writel nvgpu_bar1_writel +#define gk20a_bar1_readl nvgpu_bar1_readl +#define gk20a_io_exists nvgpu_io_exists +#define gk20a_io_valid_reg nvgpu_io_valid_reg + +struct gk20a; + +void nvgpu_writel(struct gk20a *g, u32 r, u32 v); +u32 nvgpu_readl(struct gk20a *g, u32 r); +void nvgpu_writel_check(struct gk20a *g, u32 r, u32 v); +void nvgpu_bar1_writel(struct gk20a *g, u32 b, u32 v); +u32 nvgpu_bar1_readl(struct gk20a *g, u32 b); +bool nvgpu_io_exists(struct gk20a *g); +bool nvgpu_io_valid_reg(struct gk20a *g, u32 r); + +#endif -- cgit v1.2.2