diff options
author | Mahantesh Kumbar <mkumbar@nvidia.com> | 2016-09-21 05:32:59 -0400 |
---|---|---|
committer | Deepak Nibade <dnibade@nvidia.com> | 2016-12-27 04:56:50 -0500 |
commit | 741d78ec45f6c48348743617ba5ae7163c95e49a (patch) | |
tree | af51c25cd2ccae6ced16710d80209e35181b3b8f /drivers/gpu/nvgpu/pstate/pstate.c | |
parent | 173bdefc92e2e4ef8f1e7e6ead7f86e746bee935 (diff) |
gpu: nvgpu: construct/load tabels & set voltage
- Read voltage tables from VBIOS & construct
then send to PMU.
- compare & set voltage based on
mclk/gpc2clk clk, take higher voltage
between two & set.
JIRA DNVGPU-122
Change-Id: I23e7b101a3b1c1b6596620fc6b8319c70bd9a488
Signed-off-by: Mahantesh Kumbar <mkumbar@nvidia.com>
Reviewed-on: http://git-master/r/1224365
(cherry picked from commit e0055c3ec798b8312df3fa9bf92bde8c57c6f58c)
Reviewed-on: http://git-master/r/1244657
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com>
Tested-by: Terje Bergstrom <tbergstrom@nvidia.com>
Diffstat (limited to 'drivers/gpu/nvgpu/pstate/pstate.c')
-rw-r--r-- | drivers/gpu/nvgpu/pstate/pstate.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/pstate/pstate.c b/drivers/gpu/nvgpu/pstate/pstate.c index f4cc50ab..a4787f35 100644 --- a/drivers/gpu/nvgpu/pstate/pstate.c +++ b/drivers/gpu/nvgpu/pstate/pstate.c | |||
@@ -29,6 +29,18 @@ int gk20a_init_pstate_support(struct gk20a *g) | |||
29 | 29 | ||
30 | gk20a_dbg_fn(""); | 30 | gk20a_dbg_fn(""); |
31 | 31 | ||
32 | err = volt_rail_sw_setup(g); | ||
33 | if (err) | ||
34 | return err; | ||
35 | |||
36 | err = volt_dev_sw_setup(g); | ||
37 | if (err) | ||
38 | return err; | ||
39 | |||
40 | err = volt_policy_sw_setup(g); | ||
41 | if (err) | ||
42 | return err; | ||
43 | |||
32 | err = clk_vin_sw_setup(g); | 44 | err = clk_vin_sw_setup(g); |
33 | if (err) | 45 | if (err) |
34 | return err; | 46 | return err; |
@@ -72,6 +84,26 @@ int gk20a_init_pstate_pmu_support(struct gk20a *g) | |||
72 | 84 | ||
73 | gk20a_dbg_fn(""); | 85 | gk20a_dbg_fn(""); |
74 | 86 | ||
87 | err = volt_rail_pmu_setup(g); | ||
88 | if (err) | ||
89 | return err; | ||
90 | |||
91 | err = volt_dev_pmu_setup(g); | ||
92 | if (err) | ||
93 | return err; | ||
94 | |||
95 | err = volt_policy_pmu_setup(g); | ||
96 | if (err) | ||
97 | return err; | ||
98 | |||
99 | err = volt_pmu_send_load_cmd_to_pmu(g); | ||
100 | if (err) { | ||
101 | gk20a_err(dev_from_gk20a(g), | ||
102 | "Failed to send VOLT LOAD CMD to PMU: status = 0x%08x.", | ||
103 | err); | ||
104 | return err; | ||
105 | } | ||
106 | |||
75 | err = vfe_var_pmu_setup(g); | 107 | err = vfe_var_pmu_setup(g); |
76 | if (err) | 108 | if (err) |
77 | return err; | 109 | return err; |