From cefabe7eb1f1f1dba9692e21ab4f1b88b9163489 Mon Sep 17 00:00:00 2001 From: Sami Kiminki Date: Thu, 2 Nov 2017 22:03:15 +0200 Subject: gpu: nvgpu: Remove PTE kind logic Since NVGPU_AS_MAP_BUFFER_FLAGS_DIRECT_KIND_CTRL was made mandatory, kernel does not need to know the details about the PTE kinds anymore. Thus, we can remove the kind_gk20a.h header and the code related to kind table setup, as well as simplify buffer mapping code a bit. Bug 1902982 Change-Id: Iaf798023c219a64fb0a84da09431c5ce4bc046eb Signed-off-by: Sami Kiminki Reviewed-on: https://git-master.nvidia.com/r/1560933 Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/gk20a/fb_gk20a.c | 1 - drivers/gpu/nvgpu/gk20a/gr_gk20a.c | 1 - drivers/gpu/nvgpu/gk20a/kind_gk20a.c | 414 ----------------------------------- drivers/gpu/nvgpu/gk20a/kind_gk20a.h | 90 -------- drivers/gpu/nvgpu/gk20a/mm_gk20a.c | 1 - 5 files changed, 507 deletions(-) delete mode 100644 drivers/gpu/nvgpu/gk20a/kind_gk20a.c delete mode 100644 drivers/gpu/nvgpu/gk20a/kind_gk20a.h (limited to 'drivers/gpu/nvgpu/gk20a') diff --git a/drivers/gpu/nvgpu/gk20a/fb_gk20a.c b/drivers/gpu/nvgpu/gk20a/fb_gk20a.c index efe04dc2..a5a2cb51 100644 --- a/drivers/gpu/nvgpu/gk20a/fb_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/fb_gk20a.c @@ -25,7 +25,6 @@ #include #include "gk20a.h" -#include "kind_gk20a.h" #include "fb_gk20a.h" #include diff --git a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c index c59132f2..b77db87f 100644 --- a/drivers/gpu/nvgpu/gk20a/gr_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/gr_gk20a.c @@ -41,7 +41,6 @@ #include #include "gk20a.h" -#include "kind_gk20a.h" #include "gr_ctx_gk20a.h" #include "gr_pri_gk20a.h" #include "regops_gk20a.h" diff --git a/drivers/gpu/nvgpu/gk20a/kind_gk20a.c b/drivers/gpu/nvgpu/gk20a/kind_gk20a.c deleted file mode 100644 index 2d7eae0a..00000000 --- a/drivers/gpu/nvgpu/gk20a/kind_gk20a.c +++ /dev/null @@ -1,414 +0,0 @@ -/* - * GK20A memory kind management - * - * Copyright (c) 2011-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. - */ - -#include "kind_gk20a.h" - -#include - -/* TBD: generate these from kind_macros.h */ - -/* - * Use noinline_for_stack for these huge functions, otherwise GCC 4.7 will - * blow up when building a coverage-enabled kernel. (error: the frame size of - * 1232 bytes is larger than 1024 bytes [-Werror=frame-larger-than=]) - */ - -/* note: taken from the !2cs_compression case */ -static noinline_for_stack bool gk20a_kind_supported(u8 k) -{ - return gk20a_kind_work_creation(k) - || (k == gmmu_pte_kind_invalid_v()) - || (k == gmmu_pte_kind_pitch_v()) - || (k >= gmmu_pte_kind_z16_v() && - k <= gmmu_pte_kind_z16_ms8_2c_v()) - || (k >= gmmu_pte_kind_z16_2z_v() && - k <= gmmu_pte_kind_z16_ms8_2z_v()) - || (k == gmmu_pte_kind_s8z24_v()) - || (k >= gmmu_pte_kind_s8z24_2cz_v() && - k <= gmmu_pte_kind_s8z24_ms8_2cz_v()) - || (k >= gmmu_pte_kind_v8z24_ms4_vc12_v() && - k <= gmmu_pte_kind_v8z24_ms8_vc24_v()) - || (k >= gmmu_pte_kind_v8z24_ms4_vc12_2czv_v() && - k <= gmmu_pte_kind_v8z24_ms8_vc24_2zv_v()) - || (k == gmmu_pte_kind_z24s8_v()) - || (k >= gmmu_pte_kind_z24s8_2cz_v() && - k <= gmmu_pte_kind_z24s8_ms8_2cz_v()) - || (k == gmmu_pte_kind_zf32_v()) - || (k >= gmmu_pte_kind_zf32_2cz_v() && - k <= gmmu_pte_kind_zf32_ms8_2cz_v()) - || (k >= gmmu_pte_kind_x8z24_x16v8s8_ms4_vc12_v() && - k <= gmmu_pte_kind_x8z24_x16v8s8_ms8_vc24_v()) - || (k >= gmmu_pte_kind_x8z24_x16v8s8_ms4_vc12_2cszv_v() && - k <= gmmu_pte_kind_zf32_x16v8s8_ms8_vc24_v()) - || (k >= gmmu_pte_kind_zf32_x16v8s8_ms4_vc12_2cszv_v() && - k <= gmmu_pte_kind_zf32_x24s8_v()) - || (k >= gmmu_pte_kind_zf32_x24s8_2cszv_v() && - k <= gmmu_pte_kind_zf32_x24s8_ms8_2cszv_v()) - || (k == gmmu_pte_kind_generic_16bx2_v()) - || (k == gmmu_pte_kind_c32_2c_v()) - || (k == gmmu_pte_kind_c32_2cra_v()) - || (k == gmmu_pte_kind_c32_ms2_2c_v()) - || (k == gmmu_pte_kind_c32_ms2_2cra_v()) - || (k >= gmmu_pte_kind_c32_ms4_2c_v() && - k <= gmmu_pte_kind_c32_ms4_2cbr_v()) - || (k >= gmmu_pte_kind_c32_ms4_2cra_v() && - k <= gmmu_pte_kind_c64_2c_v()) - || (k == gmmu_pte_kind_c64_2cra_v()) - || (k == gmmu_pte_kind_c64_ms2_2c_v()) - || (k == gmmu_pte_kind_c64_ms2_2cra_v()) - || (k >= gmmu_pte_kind_c64_ms4_2c_v() && - k <= gmmu_pte_kind_c64_ms4_2cbr_v()) - || (k >= gmmu_pte_kind_c64_ms4_2cra_v() && - k <= gmmu_pte_kind_c128_ms8_ms16_2cr_v()) - || (k == gmmu_pte_kind_pitch_no_swizzle_v()); -} - -static noinline_for_stack bool gk20a_kind_z(u8 k) -{ - return (k >= gmmu_pte_kind_z16_v() && - k <= gmmu_pte_kind_v8z24_ms8_vc24_v()) - || (k >= gmmu_pte_kind_v8z24_ms4_vc12_1zv_v() && - k <= gmmu_pte_kind_v8z24_ms8_vc24_2cs_v()) - || (k >= gmmu_pte_kind_v8z24_ms4_vc12_2czv_v() && - k <= gmmu_pte_kind_z24v8_ms8_vc24_v()) - || (k >= gmmu_pte_kind_z24v8_ms4_vc12_1zv_v() && - k <= gmmu_pte_kind_z24v8_ms8_vc24_2cs_v()) - || (k >= gmmu_pte_kind_z24v8_ms4_vc12_2czv_v() && - k <= gmmu_pte_kind_x8z24_x16v8s8_ms8_vc24_1cs_v()) - || (k >= gmmu_pte_kind_x8z24_x16v8s8_ms4_vc12_1zv_v() && - k <= gmmu_pte_kind_zf32_x16v8s8_ms8_vc24_1cs_v()) - || (k >= gmmu_pte_kind_zf32_x16v8s8_ms4_vc12_1zv_v() && - k <= gmmu_pte_kind_zf32_x24s8_ms16_1cs_v()); -} - -static noinline_for_stack bool gk20a_kind_c(u8 k) -{ - return gk20a_kind_work_creation(k) - || (k == gmmu_pte_kind_pitch_v()) - || (k == gmmu_pte_kind_generic_16bx2_v()) - || (k >= gmmu_pte_kind_c32_2c_v() && - k <= gmmu_pte_kind_c32_ms2_2cbr_v()) - || (k == gmmu_pte_kind_c32_ms2_2cra_v()) - || (k >= gmmu_pte_kind_c32_ms4_2c_v() && - k <= gmmu_pte_kind_c64_ms2_2cbr_v()) - || (k == gmmu_pte_kind_c64_ms2_2cra_v()) - || (k >= gmmu_pte_kind_c64_ms4_2c_v() && - k <= gmmu_pte_kind_pitch_no_swizzle_v()); -} - -static noinline_for_stack bool gk20a_kind_compressible(u8 k) -{ - return (k >= gmmu_pte_kind_z16_2c_v() && - k <= gmmu_pte_kind_z16_ms16_4cz_v()) - || (k >= gmmu_pte_kind_s8z24_1z_v() && - k <= gmmu_pte_kind_s8z24_ms16_4cszv_v()) - || (k >= gmmu_pte_kind_v8z24_ms4_vc12_1zv_v() && - k <= gmmu_pte_kind_v8z24_ms8_vc24_2cs_v()) - || (k >= gmmu_pte_kind_v8z24_ms4_vc12_2czv_v() && - k <= gmmu_pte_kind_v8z24_ms8_vc24_4cszv_v()) - || (k >= gmmu_pte_kind_z24s8_1z_v() && - k <= gmmu_pte_kind_z24s8_ms16_4cszv_v()) - || (k >= gmmu_pte_kind_z24v8_ms4_vc12_1zv_v() && - k <= gmmu_pte_kind_z24v8_ms8_vc24_2cs_v()) - || (k >= gmmu_pte_kind_z24v8_ms4_vc12_2czv_v() && - k <= gmmu_pte_kind_z24v8_ms8_vc24_4cszv_v()) - || (k >= gmmu_pte_kind_zf32_1z_v() && - k <= gmmu_pte_kind_zf32_ms16_2cz_v()) - || (k >= gmmu_pte_kind_x8z24_x16v8s8_ms4_vc12_1cs_v() && - k <= gmmu_pte_kind_x8z24_x16v8s8_ms8_vc24_1cs_v()) - || (k >= gmmu_pte_kind_x8z24_x16v8s8_ms4_vc12_1zv_v() && - k <= gmmu_pte_kind_x8z24_x16v8s8_ms8_vc24_2cszv_v()) - || (k >= gmmu_pte_kind_zf32_x16v8s8_ms4_vc12_1cs_v() && - k <= gmmu_pte_kind_zf32_x16v8s8_ms8_vc24_1cs_v()) - || (k >= gmmu_pte_kind_zf32_x16v8s8_ms4_vc12_1zv_v() && - k <= gmmu_pte_kind_zf32_x16v8s8_ms8_vc24_2cszv_v()) - || (k >= gmmu_pte_kind_zf32_x24s8_1cs_v() && - k <= gmmu_pte_kind_zf32_x24s8_ms16_1cs_v()) - || (k >= gmmu_pte_kind_zf32_x24s8_2cszv_v() && - k <= gmmu_pte_kind_c32_ms2_2cbr_v()) - || (k == gmmu_pte_kind_c32_ms2_2cra_v()) - || (k >= gmmu_pte_kind_c32_ms4_2c_v() && - k <= gmmu_pte_kind_c64_ms2_2cbr_v()) - || (k == gmmu_pte_kind_c64_ms2_2cra_v()) - || (k >= gmmu_pte_kind_c64_ms4_2c_v() && - k <= gmmu_pte_kind_c128_ms8_ms16_2cr_v()); -} - -static noinline_for_stack bool gk20a_kind_zbc(u8 k) -{ - return (k >= gmmu_pte_kind_z16_2c_v() && - k <= gmmu_pte_kind_z16_ms16_2c_v()) - || (k >= gmmu_pte_kind_z16_4cz_v() && - k <= gmmu_pte_kind_z16_ms16_4cz_v()) - || (k >= gmmu_pte_kind_s8z24_2cz_v() && - k <= gmmu_pte_kind_s8z24_ms16_4cszv_v()) - || (k >= gmmu_pte_kind_v8z24_ms4_vc12_2cs_v() && - k <= gmmu_pte_kind_v8z24_ms8_vc24_2cs_v()) - || (k >= gmmu_pte_kind_v8z24_ms4_vc12_2czv_v() && - k <= gmmu_pte_kind_v8z24_ms8_vc24_2czv_v()) - || (k >= gmmu_pte_kind_v8z24_ms4_vc12_4cszv_v() && - k <= gmmu_pte_kind_v8z24_ms8_vc24_4cszv_v()) - || (k >= gmmu_pte_kind_z24s8_2cs_v() && - k <= gmmu_pte_kind_z24s8_ms16_4cszv_v()) - || (k >= gmmu_pte_kind_z24v8_ms4_vc12_2cs_v() && - k <= gmmu_pte_kind_z24v8_ms8_vc24_2cs_v()) - || (k >= gmmu_pte_kind_z24v8_ms4_vc12_2czv_v() && - k <= gmmu_pte_kind_z24v8_ms8_vc24_2czv_v()) - || (k >= gmmu_pte_kind_z24v8_ms4_vc12_4cszv_v() && - k <= gmmu_pte_kind_z24v8_ms8_vc24_4cszv_v()) - || (k >= gmmu_pte_kind_zf32_2cs_v() && - k <= gmmu_pte_kind_zf32_ms16_2cz_v()) - || (k >= gmmu_pte_kind_x8z24_x16v8s8_ms4_vc12_1cs_v() && - k <= gmmu_pte_kind_x8z24_x16v8s8_ms8_vc24_1cs_v()) - || (k >= gmmu_pte_kind_x8z24_x16v8s8_ms4_vc12_1czv_v() && - k <= gmmu_pte_kind_x8z24_x16v8s8_ms8_vc24_2cszv_v()) - || (k >= gmmu_pte_kind_zf32_x16v8s8_ms4_vc12_1cs_v() && - k <= gmmu_pte_kind_zf32_x16v8s8_ms8_vc24_1cs_v()) - || (k >= gmmu_pte_kind_zf32_x16v8s8_ms4_vc12_1czv_v() && - k <= gmmu_pte_kind_zf32_x16v8s8_ms8_vc24_2cszv_v()) - || (k >= gmmu_pte_kind_zf32_x24s8_1cs_v() && - k <= gmmu_pte_kind_zf32_x24s8_ms16_1cs_v()) - || (k >= gmmu_pte_kind_zf32_x24s8_2cszv_v() && - k <= gmmu_pte_kind_c32_2cra_v()) - || (k >= gmmu_pte_kind_c32_ms2_2c_v() && - k <= gmmu_pte_kind_c32_ms2_2cbr_v()) - || (k == gmmu_pte_kind_c32_ms2_2cra_v()) - || (k >= gmmu_pte_kind_c32_ms4_2c_v() && - k <= gmmu_pte_kind_c32_ms4_2cra_v()) - || (k >= gmmu_pte_kind_c32_ms8_ms16_2c_v() && - k <= gmmu_pte_kind_c64_2cra_v()) - || (k >= gmmu_pte_kind_c64_ms2_2c_v() && - k <= gmmu_pte_kind_c64_ms2_2cbr_v()) - || (k == gmmu_pte_kind_c64_ms2_2cra_v()) - || (k >= gmmu_pte_kind_c64_ms4_2c_v() && - k <= gmmu_pte_kind_c64_ms4_2cra_v()) - || (k >= gmmu_pte_kind_c64_ms8_ms16_2c_v() && - k <= gmmu_pte_kind_c128_ms8_ms16_2cr_v()); -} - -u8 gk20a_uc_kind_map[256]; -void gk20a_init_uncompressed_kind_map(void) -{ - int i; - for (i = 0; i < 256; i++) - gk20a_uc_kind_map[i] = gmmu_pte_kind_invalid_v(); - - gk20a_uc_kind_map[gmmu_pte_kind_z16_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_z16_2c_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_z16_ms2_2c_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_z16_ms4_2c_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_z16_ms8_2c_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_z16_2z_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_z16_ms2_2z_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_z16_ms4_2z_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_z16_ms8_2z_v()] = - gmmu_pte_kind_z16_v(); - - gk20a_uc_kind_map[gmmu_pte_kind_s8z24_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_s8z24_2cz_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_s8z24_ms2_2cz_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_s8z24_ms4_2cz_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_s8z24_ms8_2cz_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_s8z24_2cs_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_s8z24_ms2_2cs_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_s8z24_ms4_2cs_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_s8z24_ms8_2cs_v()] = - gmmu_pte_kind_s8z24_v(); - - gk20a_uc_kind_map[gmmu_pte_kind_v8z24_ms4_vc4_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_v8z24_ms4_vc4_2cs_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_v8z24_ms4_vc4_2czv_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_v8z24_ms4_vc4_2zv_v()] = - gmmu_pte_kind_v8z24_ms4_vc4_v(); - - gk20a_uc_kind_map[gmmu_pte_kind_v8z24_ms8_vc8_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_v8z24_ms8_vc8_2cs_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_v8z24_ms8_vc8_2czv_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_v8z24_ms8_vc8_2zv_v()] = - gmmu_pte_kind_v8z24_ms8_vc8_v(); - - gk20a_uc_kind_map[gmmu_pte_kind_v8z24_ms4_vc12_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_v8z24_ms4_vc12_2cs_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_v8z24_ms4_vc12_2czv_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_v8z24_ms4_vc12_2zv_v()] = - gmmu_pte_kind_v8z24_ms4_vc12_v(); - - gk20a_uc_kind_map[gmmu_pte_kind_v8z24_ms8_vc24_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_v8z24_ms8_vc24_2cs_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_v8z24_ms8_vc24_2czv_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_v8z24_ms8_vc24_2zv_v()] = - gmmu_pte_kind_v8z24_ms8_vc24_v(); - - gk20a_uc_kind_map[gmmu_pte_kind_z24s8_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_z24s8_2cs_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_z24s8_ms2_2cs_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_z24s8_ms4_2cs_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_z24s8_ms8_2cs_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_z24s8_2cz_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_z24s8_ms2_2cz_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_z24s8_ms4_2cz_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_z24s8_ms8_2cz_v()] = - gmmu_pte_kind_z24s8_v(); - - gk20a_uc_kind_map[gmmu_pte_kind_zf32_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_zf32_2cs_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_zf32_ms2_2cs_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_zf32_ms4_2cs_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_zf32_ms8_2cs_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_zf32_2cz_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_zf32_ms2_2cz_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_zf32_ms4_2cz_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_zf32_ms8_2cz_v()] = - gmmu_pte_kind_zf32_v(); - - gk20a_uc_kind_map[gmmu_pte_kind_x8z24_x16v8s8_ms4_vc12_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_x8z24_x16v8s8_ms4_vc12_2cs_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_x8z24_x16v8s8_ms4_vc12_2cszv_v()] = - gmmu_pte_kind_x8z24_x16v8s8_ms4_vc12_v(); - - gk20a_uc_kind_map[gmmu_pte_kind_x8z24_x16v8s8_ms4_vc4_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_x8z24_x16v8s8_ms4_vc4_2cs_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_x8z24_x16v8s8_ms4_vc4_2cszv_v()] = - gmmu_pte_kind_x8z24_x16v8s8_ms4_vc4_v(); - - gk20a_uc_kind_map[gmmu_pte_kind_x8z24_x16v8s8_ms8_vc8_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_x8z24_x16v8s8_ms8_vc8_2cs_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_x8z24_x16v8s8_ms8_vc8_2cszv_v()] = - gmmu_pte_kind_x8z24_x16v8s8_ms8_vc8_v(); - - gk20a_uc_kind_map[gmmu_pte_kind_x8z24_x16v8s8_ms8_vc24_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_x8z24_x16v8s8_ms8_vc24_2cs_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_x8z24_x16v8s8_ms8_vc24_2cszv_v()] = - gmmu_pte_kind_x8z24_x16v8s8_ms8_vc24_v(); - - gk20a_uc_kind_map[gmmu_pte_kind_zf32_x16v8s8_ms4_vc12_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_zf32_x16v8s8_ms4_vc12_2cs_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_zf32_x16v8s8_ms4_vc12_2cszv_v()] = - gmmu_pte_kind_zf32_x16v8s8_ms4_vc12_v(); - - gk20a_uc_kind_map[gmmu_pte_kind_zf32_x16v8s8_ms4_vc4_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_zf32_x16v8s8_ms4_vc4_2cs_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_zf32_x16v8s8_ms4_vc4_2cszv_v()] = - gmmu_pte_kind_zf32_x16v8s8_ms4_vc4_v(); - - gk20a_uc_kind_map[gmmu_pte_kind_zf32_x16v8s8_ms8_vc8_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_zf32_x16v8s8_ms8_vc8_2cs_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_zf32_x16v8s8_ms8_vc8_2cszv_v()] = - gmmu_pte_kind_zf32_x16v8s8_ms8_vc8_v(); - - gk20a_uc_kind_map[gmmu_pte_kind_zf32_x16v8s8_ms8_vc24_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_zf32_x16v8s8_ms8_vc24_2cs_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_zf32_x16v8s8_ms8_vc24_2cszv_v()] = - gmmu_pte_kind_zf32_x16v8s8_ms8_vc24_v(); - - gk20a_uc_kind_map[gmmu_pte_kind_zf32_x24s8_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_zf32_x24s8_2cszv_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_zf32_x24s8_ms2_2cszv_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_zf32_x24s8_ms4_2cszv_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_zf32_x24s8_ms8_2cszv_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_zf32_x24s8_2cs_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_zf32_x24s8_ms2_2cs_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_zf32_x24s8_ms4_2cs_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_zf32_x24s8_ms8_2cs_v()] = - gmmu_pte_kind_zf32_x24s8_v(); - - gk20a_uc_kind_map[gmmu_pte_kind_c32_2c_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_c32_2cba_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_c32_2cra_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_c32_2bra_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_c32_ms2_2c_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_c32_ms2_2cra_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_c32_ms4_2c_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_c32_ms4_2cbr_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_c32_ms4_2cba_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_c32_ms4_2cra_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_c32_ms4_2bra_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_c32_ms8_ms16_2c_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_c32_ms8_ms16_2cra_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_c64_2c_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_c64_2cbr_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_c64_2cba_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_c64_2cra_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_c64_2bra_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_c64_ms2_2c_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_c64_ms2_2cra_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_c64_ms4_2c_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_c64_ms4_2cbr_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_c64_ms4_2cba_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_c64_ms4_2cra_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_c64_ms4_2bra_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_c64_ms8_ms16_2c_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_c64_ms8_ms16_2cra_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_c128_2c_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_c128_2cr_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_c128_ms2_2c_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_c128_ms2_2cr_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_c128_ms4_2c_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_c128_ms4_2cr_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_c128_ms8_ms16_2c_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_c128_ms8_ms16_2cr_v()] = - gmmu_pte_kind_generic_16bx2_v(); - - gk20a_uc_kind_map[gmmu_pte_kind_z24v8_ms4_vc4_2czv_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_z24v8_ms4_vc4_2cs_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_z24v8_ms4_vc4_2zv_v()] = - gmmu_pte_kind_z24v8_ms4_vc4_v(); - - gk20a_uc_kind_map[gmmu_pte_kind_z24v8_ms4_vc12_2czv_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_z24v8_ms4_vc12_2cs_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_z24v8_ms4_vc12_2zv_v()] = - gmmu_pte_kind_z24v8_ms4_vc12_v(); - - gk20a_uc_kind_map[gmmu_pte_kind_z24v8_ms8_vc8_2cs_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_z24v8_ms8_vc8_2czv_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_z24v8_ms8_vc8_2zv_v()] = - gmmu_pte_kind_z24v8_ms8_vc8_v(); - - gk20a_uc_kind_map[gmmu_pte_kind_z24v8_ms8_vc24_2cs_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_z24v8_ms8_vc24_2czv_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_z24v8_ms8_vc24_2zv_v()] = - gmmu_pte_kind_z24v8_ms8_vc24_v(); - - gk20a_uc_kind_map[gmmu_pte_kind_x8c24_v()] = - gmmu_pte_kind_x8c24_v(); -} - -u16 gk20a_kind_attr[NV_KIND_ATTR_SIZE]; -void gk20a_init_kind_attr(void) -{ - u16 k; - for (k = 0; k < NV_KIND_ATTR_SIZE; k++) { - gk20a_kind_attr[k] = 0; - if (gk20a_kind_supported((u8)k)) - gk20a_kind_attr[k] |= GK20A_KIND_ATTR_SUPPORTED; - if (gk20a_kind_compressible((u8)k)) - gk20a_kind_attr[k] |= GK20A_KIND_ATTR_COMPRESSIBLE; - if (gk20a_kind_z((u8)k)) - gk20a_kind_attr[k] |= GK20A_KIND_ATTR_Z; - if (gk20a_kind_c((u8)k)) - gk20a_kind_attr[k] |= GK20A_KIND_ATTR_C; - if (gk20a_kind_zbc((u8)k)) - gk20a_kind_attr[k] |= GK20A_KIND_ATTR_ZBC; - } -} diff --git a/drivers/gpu/nvgpu/gk20a/kind_gk20a.h b/drivers/gpu/nvgpu/gk20a/kind_gk20a.h deleted file mode 100644 index da7c13cd..00000000 --- a/drivers/gpu/nvgpu/gk20a/kind_gk20a.h +++ /dev/null @@ -1,90 +0,0 @@ -/* - * drivers/video/tegra/host/gk20a/kind_gk20a.h - * - * GK20A memory kind management - * - * Copyright (c) 2011-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 __KIND_GK20A_H__ -#define __KIND_GK20A_H__ - -#include - -void gk20a_init_uncompressed_kind_map(void); -void gk20a_init_kind_attr(void); - -extern u16 gk20a_kind_attr[]; -#define NV_KIND_ATTR_SIZE 256 -#define NV_KIND_DEFAULT -1 - -#define GK20A_KIND_ATTR_SUPPORTED BIT(0) -#define GK20A_KIND_ATTR_COMPRESSIBLE BIT(1) -#define GK20A_KIND_ATTR_Z BIT(2) -#define GK20A_KIND_ATTR_C BIT(3) -#define GK20A_KIND_ATTR_ZBC BIT(4) - -/* TBD: not sure on the work creation for gk20a, doubtful */ -static inline bool gk20a_kind_work_creation_sked(u8 k) -{ - return false; -} -static inline bool gk20a_kind_work_creation_host(u8 k) -{ - return false; -} - -static inline bool gk20a_kind_work_creation(u8 k) -{ - return gk20a_kind_work_creation_sked(k) || - gk20a_kind_work_creation_host(k); -} - -static inline bool gk20a_kind_is_supported(u8 k) -{ - return !!(gk20a_kind_attr[k] & GK20A_KIND_ATTR_SUPPORTED); -} -static inline bool gk20a_kind_is_compressible(u8 k) -{ - return !!(gk20a_kind_attr[k] & GK20A_KIND_ATTR_COMPRESSIBLE); -} - -static inline bool gk20a_kind_is_z(u8 k) -{ - return !!(gk20a_kind_attr[k] & GK20A_KIND_ATTR_Z); -} - -static inline bool gk20a_kind_is_c(u8 k) -{ - return !!(gk20a_kind_attr[k] & GK20A_KIND_ATTR_C); -} -static inline bool gk20a_kind_is_zbc(u8 k) -{ - return !!(gk20a_kind_attr[k] & GK20A_KIND_ATTR_ZBC); -} - -/* maps kind to its uncompressed version */ -extern u8 gk20a_uc_kind_map[]; -static inline u8 gk20a_get_uncompressed_kind(u8 k) -{ - return gk20a_uc_kind_map[k]; -} - -#endif /* __KIND_GK20A_H__ */ diff --git a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c index d54e8d43..759ef816 100644 --- a/drivers/gpu/nvgpu/gk20a/mm_gk20a.c +++ b/drivers/gpu/nvgpu/gk20a/mm_gk20a.c @@ -43,7 +43,6 @@ #include "gk20a.h" #include "mm_gk20a.h" #include "fence_gk20a.h" -#include "kind_gk20a.h" #include "bus_gk20a.h" #include -- cgit v1.2.2