From 5756924a8b03f0d78f6543e0a7e445d864ad5723 Mon Sep 17 00:00:00 2001 From: rmylavarapu Date: Fri, 6 Sep 2019 12:07:55 +0530 Subject: [PATCH] nvgpu: gpu: Add boardobj class_ids to all units - Class_ids of all the units has been changed in safety PMU ucode, this CL will have the updated class_ids of all units. NVGPU-4007 Change-Id: Ic109b5140840da64f903be6b3de88c5d948b3d1c Signed-off-by: rmylavarapu Reviewed-on: https://git-master.nvidia.com/r/2191523 Reviewed-by: mobile promotions Tested-by: mobile promotions --- arch/nvgpu-common.yaml | 3 +- drivers/gpu/nvgpu/common/pmu/clk/clk_domain.c | 1 + drivers/gpu/nvgpu/common/pmu/clk/clk_fll.c | 1 + .../common/pmu/clk/clk_freq_controller.c | 1 + .../nvgpu/common/pmu/clk/clk_freq_domain.c | 1 + drivers/gpu/nvgpu/common/pmu/clk/clk_prog.c | 1 + .../gpu/nvgpu/common/pmu/clk/clk_vf_point.c | 1 + drivers/gpu/nvgpu/common/pmu/clk/clk_vin.c | 1 + .../gpu/nvgpu/common/pmu/perf/perf_pstate.c | 1 + drivers/gpu/nvgpu/common/pmu/perf/vfe_equ.c | 1 + drivers/gpu/nvgpu/common/pmu/perf/vfe_var.c | 1 + .../gpu/nvgpu/common/pmu/therm/thrmchannel.c | 1 + drivers/gpu/nvgpu/common/pmu/therm/thrmdev.c | 1 + drivers/gpu/nvgpu/common/pmu/therm/thrmpmu.c | 1 + drivers/gpu/nvgpu/common/pmu/volt/volt_dev.c | 1 + .../gpu/nvgpu/common/pmu/volt/volt_policy.c | 1 + drivers/gpu/nvgpu/common/pmu/volt/volt_rail.c | 1 + .../include/nvgpu/pmu/boardobjgrp_classes.h | 84 +++++++++++++++++++ .../gpu/nvgpu/include/nvgpu/pmu/pmuif/clk.h | 13 --- .../gpu/nvgpu/include/nvgpu/pmu/pmuif/perf.h | 9 -- .../include/nvgpu/pmu/pmuif/thermsensor.h | 3 - .../gpu/nvgpu/include/nvgpu/pmu/pmuif/volt.h | 7 -- 22 files changed, 102 insertions(+), 33 deletions(-) create mode 100644 drivers/gpu/nvgpu/include/nvgpu/pmu/boardobjgrp_classes.h diff --git a/arch/nvgpu-common.yaml b/arch/nvgpu-common.yaml index 052f92d72..f99f7bb53 100644 --- a/arch/nvgpu-common.yaml +++ b/arch/nvgpu-common.yaml @@ -641,7 +641,8 @@ pmu: common/pmu/boardobj/boardobjgrp_e32.c, include/nvgpu/boardobjgrp.h, include/nvgpu/boardobjgrp_e255.h, - include/nvgpu/boardobjgrp_e32.h ] + include/nvgpu/boardobjgrp_e32.h, + include/nvgpu/pmu/boardobjgrp_classes.h ] boardobjgrpmask: safe: yes gpu: dgpu diff --git a/drivers/gpu/nvgpu/common/pmu/clk/clk_domain.c b/drivers/gpu/nvgpu/common/pmu/clk/clk_domain.c index 10e96d175..fa3283239 100644 --- a/drivers/gpu/nvgpu/common/pmu/clk/clk_domain.c +++ b/drivers/gpu/nvgpu/common/pmu/clk/clk_domain.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/gpu/nvgpu/common/pmu/clk/clk_fll.c b/drivers/gpu/nvgpu/common/pmu/clk/clk_fll.c index ecd82c3fc..bee13d0bb 100644 --- a/drivers/gpu/nvgpu/common/pmu/clk/clk_fll.c +++ b/drivers/gpu/nvgpu/common/pmu/clk/clk_fll.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/gpu/nvgpu/common/pmu/clk/clk_freq_controller.c b/drivers/gpu/nvgpu/common/pmu/clk/clk_freq_controller.c index 06004c88f..646afa711 100644 --- a/drivers/gpu/nvgpu/common/pmu/clk/clk_freq_controller.c +++ b/drivers/gpu/nvgpu/common/pmu/clk/clk_freq_controller.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/gpu/nvgpu/common/pmu/clk/clk_freq_domain.c b/drivers/gpu/nvgpu/common/pmu/clk/clk_freq_domain.c index 1a86773a1..14cbe19fd 100644 --- a/drivers/gpu/nvgpu/common/pmu/clk/clk_freq_domain.c +++ b/drivers/gpu/nvgpu/common/pmu/clk/clk_freq_domain.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/gpu/nvgpu/common/pmu/clk/clk_prog.c b/drivers/gpu/nvgpu/common/pmu/clk/clk_prog.c index 5c0e22f95..400edb9ea 100644 --- a/drivers/gpu/nvgpu/common/pmu/clk/clk_prog.c +++ b/drivers/gpu/nvgpu/common/pmu/clk/clk_prog.c @@ -26,6 +26,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/gpu/nvgpu/common/pmu/clk/clk_vf_point.c b/drivers/gpu/nvgpu/common/pmu/clk/clk_vf_point.c index 9f519ecc6..a68d809cb 100644 --- a/drivers/gpu/nvgpu/common/pmu/clk/clk_vf_point.c +++ b/drivers/gpu/nvgpu/common/pmu/clk/clk_vf_point.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/gpu/nvgpu/common/pmu/clk/clk_vin.c b/drivers/gpu/nvgpu/common/pmu/clk/clk_vin.c index 7f29c6b6d..6a429ddea 100644 --- a/drivers/gpu/nvgpu/common/pmu/clk/clk_vin.c +++ b/drivers/gpu/nvgpu/common/pmu/clk/clk_vin.c @@ -27,6 +27,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/gpu/nvgpu/common/pmu/perf/perf_pstate.c b/drivers/gpu/nvgpu/common/pmu/perf/perf_pstate.c index 26a26eda3..666b50bcb 100644 --- a/drivers/gpu/nvgpu/common/pmu/perf/perf_pstate.c +++ b/drivers/gpu/nvgpu/common/pmu/perf/perf_pstate.c @@ -29,6 +29,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/gpu/nvgpu/common/pmu/perf/vfe_equ.c b/drivers/gpu/nvgpu/common/pmu/perf/vfe_equ.c index 5c525de8b..cb5569eba 100644 --- a/drivers/gpu/nvgpu/common/pmu/perf/vfe_equ.c +++ b/drivers/gpu/nvgpu/common/pmu/perf/vfe_equ.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/gpu/nvgpu/common/pmu/perf/vfe_var.c b/drivers/gpu/nvgpu/common/pmu/perf/vfe_var.c index c95ab80aa..34145d8bb 100644 --- a/drivers/gpu/nvgpu/common/pmu/perf/vfe_var.c +++ b/drivers/gpu/nvgpu/common/pmu/perf/vfe_var.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/gpu/nvgpu/common/pmu/therm/thrmchannel.c b/drivers/gpu/nvgpu/common/pmu/therm/thrmchannel.c index e85cb1e4d..0ae827d07 100644 --- a/drivers/gpu/nvgpu/common/pmu/therm/thrmchannel.c +++ b/drivers/gpu/nvgpu/common/pmu/therm/thrmchannel.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include "thrmchannel.h" diff --git a/drivers/gpu/nvgpu/common/pmu/therm/thrmdev.c b/drivers/gpu/nvgpu/common/pmu/therm/thrmdev.c index c9457050d..38f7c1b41 100644 --- a/drivers/gpu/nvgpu/common/pmu/therm/thrmdev.c +++ b/drivers/gpu/nvgpu/common/pmu/therm/thrmdev.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include diff --git a/drivers/gpu/nvgpu/common/pmu/therm/thrmpmu.c b/drivers/gpu/nvgpu/common/pmu/therm/thrmpmu.c index 82bf2d596..22211e30e 100644 --- a/drivers/gpu/nvgpu/common/pmu/therm/thrmpmu.c +++ b/drivers/gpu/nvgpu/common/pmu/therm/thrmpmu.c @@ -22,6 +22,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/gpu/nvgpu/common/pmu/volt/volt_dev.c b/drivers/gpu/nvgpu/common/pmu/volt/volt_dev.c index 6dbf9cb44..b3db657f6 100644 --- a/drivers/gpu/nvgpu/common/pmu/volt/volt_dev.c +++ b/drivers/gpu/nvgpu/common/pmu/volt/volt_dev.c @@ -28,6 +28,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/gpu/nvgpu/common/pmu/volt/volt_policy.c b/drivers/gpu/nvgpu/common/pmu/volt/volt_policy.c index 30526bdfc..c5ad21ad9 100644 --- a/drivers/gpu/nvgpu/common/pmu/volt/volt_policy.c +++ b/drivers/gpu/nvgpu/common/pmu/volt/volt_policy.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/gpu/nvgpu/common/pmu/volt/volt_rail.c b/drivers/gpu/nvgpu/common/pmu/volt/volt_rail.c index 1fe58ae66..30eac8748 100644 --- a/drivers/gpu/nvgpu/common/pmu/volt/volt_rail.c +++ b/drivers/gpu/nvgpu/common/pmu/volt/volt_rail.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include #include diff --git a/drivers/gpu/nvgpu/include/nvgpu/pmu/boardobjgrp_classes.h b/drivers/gpu/nvgpu/include/nvgpu/pmu/boardobjgrp_classes.h new file mode 100644 index 000000000..77f13d62d --- /dev/null +++ b/drivers/gpu/nvgpu/include/nvgpu/pmu/boardobjgrp_classes.h @@ -0,0 +1,84 @@ +/* +* Copyright (c) 2019, 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_BOARDOBJGRP_CLASSES_H +#define NVGPU_BOARDOBJGRP_CLASSES_H + +/* Enumeration of BOARDOBJGRP class IDs. Used as "classId" argument for + * communications between Kernel and PMU via the various generic + * BOARDOBJGRP interfaces. +*/ + +/* Clk unit */ +#define NV_PMU_CLK_BOARDOBJGRP_CLASS_ID__FIRST 0x01U +#define NV_PMU_CLK_BOARDOBJGRP_CLASS_ID_CLK_DOMAIN \ + (NV_PMU_CLK_BOARDOBJGRP_CLASS_ID__FIRST + 0x00U) +#define NV_PMU_CLK_BOARDOBJGRP_CLASS_ID_CLK_PROG \ + (NV_PMU_CLK_BOARDOBJGRP_CLASS_ID__FIRST + 0x01U) +#define NV_PMU_CLK_BOARDOBJGRP_CLASS_ID_VIN_DEVICE \ + (NV_PMU_CLK_BOARDOBJGRP_CLASS_ID__FIRST + 0x02U) +#define NV_PMU_CLK_BOARDOBJGRP_CLASS_ID_FLL_DEVICE \ + (NV_PMU_CLK_BOARDOBJGRP_CLASS_ID__FIRST + 0x03U) +#define NV_PMU_CLK_BOARDOBJGRP_CLASS_ID_CLK_VF_POINT \ + (NV_PMU_CLK_BOARDOBJGRP_CLASS_ID__FIRST + 0x04U) +#define NV_PMU_CLK_BOARDOBJGRP_CLASS_ID_CLK_FREQ_CONTROLLER \ + (NV_PMU_CLK_BOARDOBJGRP_CLASS_ID__FIRST + 0x05U) +#define NV_PMU_CLK_BOARDOBJGRP_CLASS_ID_CLK_FREQ_DOMAIN \ + (NV_PMU_CLK_BOARDOBJGRP_CLASS_ID__FIRST + 0x07U) +#define NV_PMU_CLK_BOARDOBJGRP_CLASS_ID__LAST \ + (NV_PMU_CLK_BOARDOBJGRP_CLASS_ID__FIRST + 0x0BU) + +/* Volt unit */ +#define NV_PMU_VOLT_BOARDOBJGRP_CLASS_ID__FIRST \ + (NV_PMU_CLK_BOARDOBJGRP_CLASS_ID__LAST + 0x01U) +#define NV_PMU_VOLT_BOARDOBJGRP_CLASS_ID_VOLT_RAIL \ + (NV_PMU_VOLT_BOARDOBJGRP_CLASS_ID__FIRST + 0x00U) +#define NV_PMU_VOLT_BOARDOBJGRP_CLASS_ID_VOLT_DEVICE \ + (NV_PMU_VOLT_BOARDOBJGRP_CLASS_ID__FIRST + 0x01U) +#define NV_PMU_VOLT_BOARDOBJGRP_CLASS_ID_VOLT_POLICY \ + (NV_PMU_VOLT_BOARDOBJGRP_CLASS_ID__FIRST + 0x02U) +#define NV_PMU_VOLT_BOARDOBJGRP_CLASS_ID__LAST \ + (NV_PMU_VOLT_BOARDOBJGRP_CLASS_ID__FIRST + 0x04U) + +/* Perf unit */ +#define NV_PMU_PERF_BOARDOBJGRP_CLASS_ID__FIRST \ + (NV_PMU_VOLT_BOARDOBJGRP_CLASS_ID__LAST + 0x01U) +#define NV_PMU_PERF_BOARDOBJGRP_CLASS_ID_VFE_VAR \ + (NV_PMU_PERF_BOARDOBJGRP_CLASS_ID__FIRST + 0x00U) +#define NV_PMU_PERF_BOARDOBJGRP_CLASS_ID_VFE_EQU \ + (NV_PMU_PERF_BOARDOBJGRP_CLASS_ID__FIRST + 0x01U) +#define NV_PMU_PERF_BOARDOBJGRP_CLASS_ID_PSTATE \ + (NV_PMU_PERF_BOARDOBJGRP_CLASS_ID__FIRST + 0x03U) +#define NV_PMU_PERF_BOARDOBJGRP_CLASS_ID__LAST \ + (NV_PMU_PERF_BOARDOBJGRP_CLASS_ID__FIRST + 0x05U) + +/* Therm unit */ +#define NV_PMU_THERM_BOARDOBJGRP_CLASS_ID__FIRST \ + (NV_PMU_PERF_BOARDOBJGRP_CLASS_ID__LAST + 0x01U) +#define NV_PMU_THERM_BOARDOBJGRP_CLASS_ID_THERM_DEVICE \ + (NV_PMU_THERM_BOARDOBJGRP_CLASS_ID__FIRST + 0x00U) +#define NV_PMU_THERM_BOARDOBJGRP_CLASS_ID_THERM_CHANNEL \ + (NV_PMU_THERM_BOARDOBJGRP_CLASS_ID__FIRST + 0x01U) +#define NV_PMU_THERM_BOARDOBJGRP_CLASS_ID__LAST \ + (NV_PMU_THERM_BOARDOBJGRP_CLASS_ID__FIRST + 0x03U) + +#endif /* NVGPU_BOARDOBJGRP_CLASSES_H */ diff --git a/drivers/gpu/nvgpu/include/nvgpu/pmu/pmuif/clk.h b/drivers/gpu/nvgpu/include/nvgpu/pmu/pmuif/clk.h index 03b0ba2b6..7cf53e2be 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/pmu/pmuif/clk.h +++ b/drivers/gpu/nvgpu/include/nvgpu/pmu/pmuif/clk.h @@ -59,19 +59,6 @@ #define CLKWHICH_NVDCLK 20U #define CLKWHICH_PCIEGENCLK 26U -/* - * Enumeration of BOARDOBJGRP class IDs within OBJCLK. Used as "classId" - * argument for communications between Kernel and PMU via the various generic - * BOARDOBJGRP interfaces. - */ -#define NV_PMU_CLK_BOARDOBJGRP_CLASS_ID_CLK_DOMAIN 0x00U -#define NV_PMU_CLK_BOARDOBJGRP_CLASS_ID_CLK_PROG 0x01U -#define NV_PMU_CLK_BOARDOBJGRP_CLASS_ID_VIN_DEVICE 0x02U -#define NV_PMU_CLK_BOARDOBJGRP_CLASS_ID_FLL_DEVICE 0x03U -#define NV_PMU_CLK_BOARDOBJGRP_CLASS_ID_CLK_VF_POINT 0x04U -#define NV_PMU_CLK_BOARDOBJGRP_CLASS_ID_CLK_FREQ_CONTROLLER 0x05U -#define NV_PMU_CLK_BOARDOBJGRP_CLASS_ID_CLK_FREQ_DOMAIN 0x07U - #define NV_PMU_RPC_ID_CLK_CNTR_SAMPLE_DOMAIN 0x01U #define NV_PMU_RPC_ID_CLK_CLK_DOMAIN_35_PROG_VOLT_TO_FREQ 0x02U #define NV_PMU_RPC_ID_CLK_CLK_DOMAIN_35_PROG_FREQ_TO_VOLT 0x03U diff --git a/drivers/gpu/nvgpu/include/nvgpu/pmu/pmuif/perf.h b/drivers/gpu/nvgpu/include/nvgpu/pmu/pmuif/perf.h index 70fefcd18..eb9623bb3 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/pmu/pmuif/perf.h +++ b/drivers/gpu/nvgpu/include/nvgpu/pmu/pmuif/perf.h @@ -26,15 +26,6 @@ #include "perfvfe.h" #include "perfpstate.h" -/* - * Enumeration of BOARDOBJGRP class IDs within OBJPERF. Used as "classId" - * argument for communications between Kernel and PMU via the various generic - * BOARDOBJGRP interfaces. - */ -#define NV_PMU_PERF_BOARDOBJGRP_CLASS_ID_VFE_VAR 0x00U -#define NV_PMU_PERF_BOARDOBJGRP_CLASS_ID_VFE_EQU 0x01U -#define NV_PMU_PERF_BOARDOBJGRP_CLASS_ID_PSTATE 0x03U - #define NV_PMU_PERF_CMD_ID_RPC (0x00000002U) #define NV_PMU_PERF_CMD_ID_BOARDOBJ_GRP_SET (0x00000003U) #define NV_PMU_PERF_CMD_ID_BOARDOBJ_GRP_GET_STATUS (0x00000004U) diff --git a/drivers/gpu/nvgpu/include/nvgpu/pmu/pmuif/thermsensor.h b/drivers/gpu/nvgpu/include/nvgpu/pmu/pmuif/thermsensor.h index 85a8eb927..77fcafafb 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/pmu/pmuif/thermsensor.h +++ b/drivers/gpu/nvgpu/include/nvgpu/pmu/pmuif/thermsensor.h @@ -28,9 +28,6 @@ #include "ctrltherm.h" #include "boardobj.h" -#define NV_PMU_THERM_BOARDOBJGRP_CLASS_ID_THERM_DEVICE 0x00 -#define NV_PMU_THERM_BOARDOBJGRP_CLASS_ID_THERM_CHANNEL 0x01 - #define NV_PMU_THERM_CMD_ID_BOARDOBJ_GRP_SET 0x0000000B #define NV_PMU_THERM_MSG_ID_BOARDOBJ_GRP_SET 0x00000008 diff --git a/drivers/gpu/nvgpu/include/nvgpu/pmu/pmuif/volt.h b/drivers/gpu/nvgpu/include/nvgpu/pmu/pmuif/volt.h index 1b39ba752..e27b9fd03 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/pmu/pmuif/volt.h +++ b/drivers/gpu/nvgpu/include/nvgpu/pmu/pmuif/volt.h @@ -30,13 +30,6 @@ #define NV_PMU_VOLT_VALUE_0V_IN_UV (0U) -/* ------------- VOLT_RAIL's GRP_SET defines and structures ------------- */ - -#define NV_PMU_VOLT_BOARDOBJGRP_CLASS_ID_VOLT_RAIL 0x00U -#define NV_PMU_VOLT_BOARDOBJGRP_CLASS_ID_VOLT_DEVICE 0x01U -#define NV_PMU_VOLT_BOARDOBJGRP_CLASS_ID_VOLT_POLICY 0x02U - - struct nv_pmu_volt_volt_rail_boardobjgrp_set_header { struct nv_pmu_boardobjgrp_e32 super; };