From 7bd1c4640ca37ef621a11b7bbabe2ead86dff87b Mon Sep 17 00:00:00 2001 From: seshendra Gadagottu Date: Mon, 22 Jan 2018 15:03:02 -0800 Subject: gpu: nvgpu: gv11b: disable idle clock slowdown Updated thermal settings as per hw POR update: - Disabled idle clock slowdown - Updated therm_grad_stepping1_pdiv_duration as per updated hw por value. Bug 200365110 Change-Id: I0c67366ecebd5681343746e9badb57fa74dfaeaa Signed-off-by: seshendra Gadagottu Reviewed-on: https://git-master.nvidia.com/r/1643895 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/gv11b/therm_gv11b.c | 10 +++++-- .../nvgpu/include/nvgpu/hw/gv11b/hw_therm_gv11b.h | 34 +++++++++++++++++++++- 2 files changed, 41 insertions(+), 3 deletions(-) (limited to 'drivers') diff --git a/drivers/gpu/nvgpu/gv11b/therm_gv11b.c b/drivers/gpu/nvgpu/gv11b/therm_gv11b.c index f2d929fa..fe843325 100644 --- a/drivers/gpu/nvgpu/gv11b/therm_gv11b.c +++ b/drivers/gpu/nvgpu/gv11b/therm_gv11b.c @@ -1,7 +1,7 @@ /* * GV11B Therm * - * Copyright (c) 2015-2017, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2015-2018, 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"), @@ -81,12 +81,18 @@ int gv11b_init_therm_setup_hw(struct gk20a *g) gk20a_writel(g, therm_config2_r(), v); gk20a_writel(g, therm_grad_stepping1_r(), - therm_grad_stepping1_pdiv_duration_f(0x40)); + therm_grad_stepping1_pdiv_duration_f(0xbf4)); v = gk20a_readl(g, therm_grad_stepping0_r()); v |= therm_grad_stepping0_feature_enable_f(); gk20a_writel(g, therm_grad_stepping0_r(), v); + /* disable idle clock slowdown */ + v = therm_clk_slowdown_2_idle_condition_a_select_f(0) | + therm_clk_slowdown_2_idle_condition_a_type_never_f() | + therm_clk_slowdown_2_idle_condition_b_type_never_f(); + gk20a_writel(g, therm_clk_slowdown_2_r(0), v); + return 0; } diff --git a/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_therm_gv11b.h b/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_therm_gv11b.h index 3afe7501..0050083c 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_therm_gv11b.h +++ b/drivers/gpu/nvgpu/include/nvgpu/hw/gv11b/hw_therm_gv11b.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2016-2017, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2016-2018, 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"), @@ -332,6 +332,38 @@ static inline u32 therm_clk_slowdown_idle_factor_disabled_f(void) { return 0x0U; } +static inline u32 therm_clk_slowdown_2_r(u32 i) +{ + return 0x000201a0U + i*4U; +} +static inline u32 therm_clk_slowdown_2_idle_condition_a_select_f(u32 v) +{ + return (v & 0xfU) << 0U; +} +static inline u32 therm_clk_slowdown_2_idle_condition_a_type_f(u32 v) +{ + return (v & 0x7U) << 4U; +} +static inline u32 therm_clk_slowdown_2_idle_condition_a_type_v(u32 r) +{ + return (r >> 4U) & 0x7U; +} +static inline u32 therm_clk_slowdown_2_idle_condition_a_type_never_f(void) +{ + return 0x40U; +} +static inline u32 therm_clk_slowdown_2_idle_condition_b_type_f(u32 v) +{ + return (v & 0x7U) << 12U; +} +static inline u32 therm_clk_slowdown_2_idle_condition_b_type_v(u32 r) +{ + return (r >> 12U) & 0x7U; +} +static inline u32 therm_clk_slowdown_2_idle_condition_b_type_never_f(void) +{ + return 0x4000U; +} static inline u32 therm_grad_stepping_table_r(u32 i) { return 0x000202c8U + i*4U; -- cgit v1.2.2