gpu: nvgpu: prepare class unit for safety build

Move graphics related defs and functions under CONFIG_NVGPU_GRAPHICS
switch.
Move classes not supported in GV11B under CONFIG_NVGPU_NON_FUSA
switch.
Add missing valid class numbers to gpu_class.is_valid HAL.
Also remove un-used class defs from class.h header.

Lot of qnx safety tests are still using graphics 3d class.
Until those tests got fixed, allowing 3d graphics class
as valid class for safety build.

JIRA NVGPU-4301

Change-Id: Ifd2a13bee3210821799c2bca10e7245eb3c79121
Signed-off-by: Seshendra Gadagottu <sgadagottu@nvidia.com>
Signed-off-by: Tejal Kudav <tkudav@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2224658
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
Seshendra Gadagottu
2019-10-23 18:12:21 -07:00
committed by Alex Waterman
parent 6d0ef6473d
commit d8058743d7
20 changed files with 110 additions and 47 deletions

View File

@@ -29,14 +29,24 @@ bool gm20b_class_is_valid(u32 class_num)
bool valid;
switch (class_num) {
case MAXWELL_COMPUTE_B:
case MAXWELL_B:
case FERMI_TWOD_A:
case KEPLER_DMA_COPY_A:
case KEPLER_INLINE_TO_MEMORY_B:
case MAXWELL_DMA_COPY_A:
case MAXWELL_CHANNEL_GPFIFO_A:
valid = true;
break;
#ifdef CONFIG_NVGPU_NON_FUSA
case MAXWELL_COMPUTE_B:
valid = true;
break;
#endif
#ifdef CONFIG_NVGPU_GRAPHICS
case MAXWELL_B:
case FERMI_TWOD_A:
valid = true;
break;
#endif
default:
valid = false;
break;

View File

@@ -26,7 +26,10 @@
#include <nvgpu/types.h>
bool gp10b_class_is_valid(u32 class_num);
bool gp10b_class_is_valid_gfx(u32 class_num);
bool gp10b_class_is_valid_compute(u32 class_num);
#ifdef CONFIG_NVGPU_GRAPHICS
bool gp10b_class_is_valid_gfx(u32 class_num);
#endif
#endif /* NVGPU_CLASS_GP10B */

View File

@@ -32,11 +32,20 @@ bool gp10b_class_is_valid(u32 class_num)
nvgpu_speculation_barrier();
switch (class_num) {
case PASCAL_COMPUTE_A:
case PASCAL_A:
case PASCAL_DMA_COPY_A:
case PASCAL_CHANNEL_GPFIFO_A:
valid = true;
break;
#ifdef CONFIG_NVGPU_GRAPHICS
case PASCAL_A:
valid = true;
break;
#endif
#ifdef CONFIG_NVGPU_NON_FUSA
case PASCAL_COMPUTE_A:
valid = true;
break;
#endif
default:
valid = gm20b_class_is_valid(class_num);
break;
@@ -44,6 +53,7 @@ bool gp10b_class_is_valid(u32 class_num)
return valid;
}
#ifdef CONFIG_NVGPU_GRAPHICS
bool gp10b_class_is_valid_gfx(u32 class_num)
{
if (class_num == PASCAL_A || class_num == MAXWELL_B) {
@@ -52,7 +62,9 @@ bool gp10b_class_is_valid_gfx(u32 class_num)
return false;
}
}
#endif
#ifdef CONFIG_NVGPU_NON_FUSA
bool gp10b_class_is_valid_compute(u32 class_num)
{
if (class_num == PASCAL_COMPUTE_A || class_num == MAXWELL_COMPUTE_B) {
@@ -61,3 +73,4 @@ bool gp10b_class_is_valid_compute(u32 class_num)
return false;
}
}
#endif

View File

@@ -26,7 +26,10 @@
#include <nvgpu/types.h>
bool gv11b_class_is_valid(u32 class_num);
bool gv11b_class_is_valid_gfx(u32 class_num);
bool gv11b_class_is_valid_compute(u32 class_num);
#ifdef CONFIG_NVGPU_GRAPHICS
bool gv11b_class_is_valid_gfx(u32 class_num);
#endif
#endif /* NVGPU_CLASS_GV11B */

View File

@@ -33,9 +33,10 @@ bool gv11b_class_is_valid(u32 class_num)
nvgpu_speculation_barrier();
switch (class_num) {
case VOLTA_COMPUTE_A:
case VOLTA_A:
case VOLTA_COMPUTE_A:
case VOLTA_DMA_COPY_A:
case VOLTA_CHANNEL_GPFIFO_A:
valid = true;
break;
default:
@@ -45,6 +46,7 @@ bool gv11b_class_is_valid(u32 class_num)
return valid;
}
#ifdef CONFIG_NVGPU_GRAPHICS
bool gv11b_class_is_valid_gfx(u32 class_num)
{
bool valid;
@@ -61,21 +63,13 @@ bool gv11b_class_is_valid_gfx(u32 class_num)
}
return valid;
}
#endif
bool gv11b_class_is_valid_compute(u32 class_num)
{
bool valid;
nvgpu_speculation_barrier();
switch (class_num) {
case VOLTA_COMPUTE_A:
valid = true;
break;
default:
valid = gp10b_class_is_valid_compute(class_num);
break;
if (class_num == VOLTA_COMPUTE_A) {
return true;
} else {
return false;
}
return valid;
}

View File

@@ -34,9 +34,11 @@ bool tu104_class_is_valid(u32 class_num)
switch (class_num) {
case TURING_CHANNEL_GPFIFO_A:
case TURING_A:
case TURING_COMPUTE_A:
case TURING_DMA_COPY_A:
#ifdef CONFIG_NVGPU_GRAPHICS
case TURING_A:
#endif
valid = true;
break;
default:
@@ -46,6 +48,7 @@ bool tu104_class_is_valid(u32 class_num)
return valid;
};
#ifdef CONFIG_NVGPU_GRAPHICS
bool tu104_class_is_valid_gfx(u32 class_num)
{
bool valid;
@@ -62,6 +65,7 @@ bool tu104_class_is_valid_gfx(u32 class_num)
}
return valid;
}
#endif
bool tu104_class_is_valid_compute(u32 class_num)
{

View File

@@ -26,7 +26,10 @@
#include <nvgpu/types.h>
bool tu104_class_is_valid(u32 class_num);
bool tu104_class_is_valid_gfx(u32 class_num);
bool tu104_class_is_valid_compute(u32 class_num);
#ifdef CONFIG_NVGPU_GRAPHICS
bool tu104_class_is_valid_gfx(u32 class_num);
#endif
#endif /* NVGPU_CLASS_TU104 */