From 67399a189214b52166f5633eed858c521a62f622 Mon Sep 17 00:00:00 2001 From: Deepak Nibade Date: Fri, 4 Jun 2021 16:10:12 +0530 Subject: [PATCH] gpu: nvgpu: unit: BVEC test for common.class unit class_validate_setup is already testing for valid/invalid boundary values for common.class APIs. Append the valid/invalid list with BVEC test values. Fix obsolete gops_class doxygen documentation. Jira NVGPU-6403 Change-Id: Id713db614919842324f6d655b36dd57043958919 Signed-off-by: Deepak Nibade Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2539797 (cherry picked from commit 6aed159f9f3eeea553a442af37e3bcc840152154) Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2539795 Reviewed-by: svc_kernel_abi Reviewed-by: Shashank Singh Reviewed-by: mobile promotions GVS: Gerrit_Virtual_Submit Tested-by: mobile promotions --- drivers/gpu/nvgpu/include/nvgpu/gops/class.h | 20 +++++--------- userspace/units/class/nvgpu-class.c | 28 +++++++++++++++----- userspace/units/class/nvgpu-class.h | 4 +-- 3 files changed, 30 insertions(+), 22 deletions(-) diff --git a/drivers/gpu/nvgpu/include/nvgpu/gops/class.h b/drivers/gpu/nvgpu/include/nvgpu/gops/class.h index 4b4e454bc..31117a440 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/gops/class.h +++ b/drivers/gpu/nvgpu/include/nvgpu/gops/class.h @@ -44,20 +44,14 @@ struct gops_class { * * List of valid class numbers: *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - * 1. Graphics classes: (Fix: Lot of qnx safety tests are still using - * graphics 3d class. Until these tests get fixed, - * allowing 3d graphics class as valid class for - * safety build.) - * a. VOLTA_A --> 0xC397U - * 2. Compute classes: + * 1. Compute class: * a. VOLTA_COMPUTE_A --> 0xC3C0U - * 3. DMA copy - * a. KEPLER_DMA_COPY_A --> 0xA0B5U - * b. MAXWELL_DMA_COPY_A --> 0xB0B5U - * c. PASCAL_DMA_COPY_A --> 0xC0B5U - * d. VOLTA_DMA_COPY_A --> 0xC3B5U - * 4. Inline to memory - * a. KEPLER_INLINE_TO_MEMORY_B --> 0xA140U + * 2. DMA copy class: + * a. VOLTA_DMA_COPY_A --> 0xC3B5U + * 3. Channel Gpfifo class: + * a. VOLTA_CHANNEL_GPFIFO_A --> 0xC36FU + * 4. Graphics class: + * a. VOLTA_A --> 0xC397U *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * * @param class_num [in] Class number to be checked. diff --git a/userspace/units/class/nvgpu-class.c b/userspace/units/class/nvgpu-class.c index 18f314c9b..f8b08ec97 100644 --- a/userspace/units/class/nvgpu-class.c +++ b/userspace/units/class/nvgpu-class.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2020, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2019-2021, 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"), @@ -51,15 +51,19 @@ u32 invalid_compute_classes[] = { 0x902DU, /* FERMI_TWOD_A */ 0x1234U, /* random value */ 0x76543210U, /* random value */ - 0x0000U, /* random value */ - 0xC000U, /* random value */ + 0x0000U, /* BVEC test value */ + 0xB000U, /* BVEC test value */ + 0xC3BFU, /* BVEC test value */ + 0xC3C1U, /* BVEC test value */ + 0xD000U, /* BVEC test value */ + 0xFFFFFFFFU, /* BVEC test value */ }; u32 valid_classes[] = { - 0xC3C0U, /* VOLTA_COMPUTE_A */ - 0xC3B5U, /* VOLTA_DMA_COPY_A */ 0xC36FU, /* VOLTA_CHANNEL_GPFIFO_A */ 0xC397U, /* VOLTA_A */ + 0xC3B5U, /* VOLTA_DMA_COPY_A */ + 0xC3C0U, /* VOLTA_COMPUTE_A */ }; u32 invalid_classes[] = { @@ -76,8 +80,18 @@ u32 invalid_classes[] = { 0xA140U, /* KEPLER_INLINE_TO_MEMORY_B */ 0xA0B5U, /* KEPLER_DMA_COPY_A */ 0x76543210U, /* random value */ - 0x0000U, /* random value */ - 0xC000U, /* random value */ + 0x0000U, /* BVEC test value */ + 0xB000U, /* BVEC test value */ + 0xC36EU, /* BVEC test value */ + 0xC370U, /* BVEC test value */ + 0xC396U, /* BVEC test value */ + 0xC398U, /* BVEC test value */ + 0xC3B4U, /* BVEC test value */ + 0xC3B6U, /* BVEC test value */ + 0xC3BFU, /* BVEC test value */ + 0xC3C1U, /* BVEC test value */ + 0xD000U, /* BVEC test value */ + 0xFFFFFFFFU, /* BVEC test value */ }; int class_validate_setup(struct unit_module *m, struct gk20a *g, void *args) diff --git a/userspace/units/class/nvgpu-class.h b/userspace/units/class/nvgpu-class.h index 9a101fad7..51c82d606 100644 --- a/userspace/units/class/nvgpu-class.h +++ b/userspace/units/class/nvgpu-class.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2019-2020, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2019-2021, 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"), @@ -37,7 +37,7 @@ struct unit_module; * * Description: Validate common.class unit API. * - * Test Type: Feature + * Test Type: Feature, Boundary Values * * Targets: gops_class.is_valid_compute, gv11b_class_is_valid_compute, * gops_class.is_valid, gv11b_class_is_valid