summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLakshmanan M <lm@nvidia.com>2016-10-07 04:54:58 -0400
committermobile promotions <svcmobile_promotions@nvidia.com>2016-10-27 05:50:56 -0400
commite5a762c6372b0a01b7c3575b66d0ecac6c82d59b (patch)
treec3224ec9ec24f77faa11e7907ea96595d5715e39
parent315d8c6caa3a149b83c9894e94da852a50310c2d (diff)
gpu: nvgpu: Add SW_THRESHOLD policy support
Added SW_THRESHOLD policy support for over power protection. JIRA DNVGPU-70 Change-Id: I021f47f234d42be15ddbfd02a22e9299fd486636 Signed-off-by: Lakshmanan M <lm@nvidia.com> Reviewed-on: http://git-master/r/1233051 (cherry picked from commit 301e0ac123a7a65a7f83e5615f3a89e55253a0bd) Reviewed-on: http://git-master/r/1241958 Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> GVS: Gerrit_Virtual_Submit
-rw-r--r--drivers/gpu/nvgpu/ctrl/ctrlpmgr.h1
-rw-r--r--drivers/gpu/nvgpu/pmuif/gpmuifpmgr.h10
2 files changed, 11 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/ctrl/ctrlpmgr.h b/drivers/gpu/nvgpu/ctrl/ctrlpmgr.h
index ba55e4a5..514422dc 100644
--- a/drivers/gpu/nvgpu/ctrl/ctrlpmgr.h
+++ b/drivers/gpu/nvgpu/ctrl/ctrlpmgr.h
@@ -28,6 +28,7 @@
28 28
29#define CTRL_PMGR_PWR_POLICY_TABLE_VERSION_3X 0x30 29#define CTRL_PMGR_PWR_POLICY_TABLE_VERSION_3X 0x30
30#define CTRL_PMGR_PWR_POLICY_TYPE_HW_THRESHOLD 0x04 30#define CTRL_PMGR_PWR_POLICY_TYPE_HW_THRESHOLD 0x04
31#define CTRL_PMGR_PWR_POLICY_TYPE_SW_THRESHOLD 0x0C
31 32
32#define CTRL_PMGR_PWR_POLICY_MAX_LIMIT_INPUTS 0x8 33#define CTRL_PMGR_PWR_POLICY_MAX_LIMIT_INPUTS 0x8
33#define CTRL_PMGR_PWR_POLICY_IDX_NUM_INDEXES 0x08 34#define CTRL_PMGR_PWR_POLICY_IDX_NUM_INDEXES 0x08
diff --git a/drivers/gpu/nvgpu/pmuif/gpmuifpmgr.h b/drivers/gpu/nvgpu/pmuif/gpmuifpmgr.h
index 613dcea6..b985b015 100644
--- a/drivers/gpu/nvgpu/pmuif/gpmuifpmgr.h
+++ b/drivers/gpu/nvgpu/pmuif/gpmuifpmgr.h
@@ -212,6 +212,15 @@ struct nv_pmu_pmgr_pwr_policy_hw_threshold {
212 u16 low_threshold_value; 212 u16 low_threshold_value;
213}; 213};
214 214
215struct nv_pmu_pmgr_pwr_policy_sw_threshold {
216 struct nv_pmu_pmgr_pwr_policy super;
217 u8 threshold_idx;
218 u8 low_threshold_idx;
219 bool b_use_low_threshold;
220 u16 low_threshold_value;
221 u8 event_id;
222};
223
215struct nv_pmu_pmgr_pwr_policy_pmu_compactible { 224struct nv_pmu_pmgr_pwr_policy_pmu_compactible {
216 u8 pmu_compactible_data[68]; 225 u8 pmu_compactible_data[68];
217}; 226};
@@ -220,6 +229,7 @@ union nv_pmu_pmgr_pwr_policy_union {
220 struct nv_pmu_boardobj board_obj; 229 struct nv_pmu_boardobj board_obj;
221 struct nv_pmu_pmgr_pwr_policy pwr_policy; 230 struct nv_pmu_pmgr_pwr_policy pwr_policy;
222 struct nv_pmu_pmgr_pwr_policy_hw_threshold hw_threshold; 231 struct nv_pmu_pmgr_pwr_policy_hw_threshold hw_threshold;
232 struct nv_pmu_pmgr_pwr_policy_sw_threshold sw_threshold;
223 struct nv_pmu_pmgr_pwr_policy_pmu_compactible pmu_pwr_policy; 233 struct nv_pmu_pmgr_pwr_policy_pmu_compactible pmu_pwr_policy;
224}; 234};
225 235