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/gm20b/fb_gm20b.c | 402 ------------------------------------ drivers/gpu/nvgpu/gm20b/fb_gm20b.h | 2 - drivers/gpu/nvgpu/gm20b/hal_gm20b.c | 3 - 3 files changed, 407 deletions(-) (limited to 'drivers/gpu/nvgpu/gm20b') diff --git a/drivers/gpu/nvgpu/gm20b/fb_gm20b.c b/drivers/gpu/nvgpu/gm20b/fb_gm20b.c index d23c4787..1f8cc326 100644 --- a/drivers/gpu/nvgpu/gm20b/fb_gm20b.c +++ b/drivers/gpu/nvgpu/gm20b/fb_gm20b.c @@ -23,7 +23,6 @@ */ #include "gk20a/gk20a.h" -#include "gk20a/kind_gk20a.h" #include "gk20a/fb_gk20a.h" #include "gm20b/fb_gm20b.h" @@ -43,407 +42,6 @@ void fb_gm20b_init_fs_state(struct gk20a *g) g->ltc_count); } -noinline_for_stack void gm20b_init_uncompressed_kind_map(void) -{ - int i; - - for (i = 0; i < 256; i++) - gk20a_uc_kind_map[i] = gmmu_pte_kind_invalid_v(); - - /* From gm20b */ - gk20a_uc_kind_map[gmmu_pte_kind_s8_v()] = - gk20a_uc_kind_map[gmmu_pte_kind_s8_2s_v()] = - gmmu_pte_kind_s8_v(); - - /* From gk20a */ - 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(); -} - -static noinline_for_stack bool gm20b_kind_supported(u8 k) -{ - return /* From gm20b */ - (k == gmmu_pte_kind_smsked_message_v()) - || (k >= gmmu_pte_kind_s8_v() && - k <= gmmu_pte_kind_s8_2s_v()) - /* From gk20a */ - || 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 gm20b_kind_z(u8 k) -{ - return /* From gm20b */ - (k >= gmmu_pte_kind_s8_v() && - k <= gmmu_pte_kind_s8_2s_v()) - /* From gk20a */ - || (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 gm20b_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 gm20b_kind_compressible(u8 k) -{ - return /* From gm20b */ - (k >= gmmu_pte_kind_s8_v() && - k <= gmmu_pte_kind_s8_2s_v()) - /* From gk20a */ - || (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 gm20b_kind_zbc(u8 k) -{ - return /* From gm20b */ - (k >= gmmu_pte_kind_s8_v() && - k <= gmmu_pte_kind_s8_2s_v()) - /* From gk20a */ - || (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()); -} - -void gm20b_init_kind_attr(void) -{ - u16 k; - - for (k = 0; k < NV_KIND_ATTR_SIZE; k++) { - gk20a_kind_attr[k] = 0; - if (gm20b_kind_supported((u8)k)) - gk20a_kind_attr[k] |= GK20A_KIND_ATTR_SUPPORTED; - if (gm20b_kind_compressible((u8)k)) - gk20a_kind_attr[k] |= GK20A_KIND_ATTR_COMPRESSIBLE; - if (gm20b_kind_z((u8)k)) - gk20a_kind_attr[k] |= GK20A_KIND_ATTR_Z; - if (gm20b_kind_c((u8)k)) - gk20a_kind_attr[k] |= GK20A_KIND_ATTR_C; - if (gm20b_kind_zbc((u8)k)) - gk20a_kind_attr[k] |= GK20A_KIND_ATTR_ZBC; - } -} - void gm20b_fb_set_mmu_page_size(struct gk20a *g) { /* set large page size in fb */ diff --git a/drivers/gpu/nvgpu/gm20b/fb_gm20b.h b/drivers/gpu/nvgpu/gm20b/fb_gm20b.h index 1bc0c14c..32d36f57 100644 --- a/drivers/gpu/nvgpu/gm20b/fb_gm20b.h +++ b/drivers/gpu/nvgpu/gm20b/fb_gm20b.h @@ -37,6 +37,4 @@ int gm20b_fb_vpr_info_fetch(struct gk20a *g); bool gm20b_fb_debug_mode_enabled(struct gk20a *g); void gm20b_fb_set_debug_mode(struct gk20a *g, bool enable); -void gm20b_init_uncompressed_kind_map(void); -void gm20b_init_kind_attr(void); #endif diff --git a/drivers/gpu/nvgpu/gm20b/hal_gm20b.c b/drivers/gpu/nvgpu/gm20b/hal_gm20b.c index 20ab808a..42df76c9 100644 --- a/drivers/gpu/nvgpu/gm20b/hal_gm20b.c +++ b/drivers/gpu/nvgpu/gm20b/hal_gm20b.c @@ -703,9 +703,6 @@ int gm20b_init_hal(struct gk20a *g) g->pmu_lsf_pmu_wpr_init_done = 0; g->bootstrap_owner = LSF_BOOTSTRAP_OWNER_DEFAULT; - gm20b_init_uncompressed_kind_map(); - gm20b_init_kind_attr(); - g->name = "gm20b"; return 0; -- cgit v1.2.2