diff options
Diffstat (limited to 'drivers/gpu/nvgpu/clk/clk.h')
-rw-r--r-- | drivers/gpu/nvgpu/clk/clk.h | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/clk/clk.h b/drivers/gpu/nvgpu/clk/clk.h index 1f25fa4e..e54af521 100644 --- a/drivers/gpu/nvgpu/clk/clk.h +++ b/drivers/gpu/nvgpu/clk/clk.h | |||
@@ -35,6 +35,7 @@ struct clk_pmupstate { | |||
35 | struct clk_progs clk_progobjs; | 35 | struct clk_progs clk_progobjs; |
36 | struct clk_vf_points clk_vf_pointobjs; | 36 | struct clk_vf_points clk_vf_pointobjs; |
37 | struct clk_mclk_state clk_mclk; | 37 | struct clk_mclk_state clk_mclk; |
38 | struct mutex changeclkmutex; | ||
38 | }; | 39 | }; |
39 | 40 | ||
40 | struct clockentry { | 41 | struct clockentry { |
@@ -44,6 +45,25 @@ struct clockentry { | |||
44 | u32 api_clk_domain; | 45 | u32 api_clk_domain; |
45 | }; | 46 | }; |
46 | 47 | ||
48 | struct change_fll_clk { | ||
49 | u32 api_clk_domain; | ||
50 | u16 clkmhz; | ||
51 | u32 voltuv; | ||
52 | }; | ||
53 | |||
54 | struct set_fll_clk { | ||
55 | u32 voltuv; | ||
56 | u16 gpc2clkmhz; | ||
57 | u32 current_regime_id_gpc; | ||
58 | u32 target_regime_id_gpc; | ||
59 | u16 sys2clkmhz; | ||
60 | u32 current_regime_id_sys; | ||
61 | u32 target_regime_id_sys; | ||
62 | u16 xbar2clkmhz; | ||
63 | u32 current_regime_id_xbar; | ||
64 | u32 target_regime_id_xbar; | ||
65 | }; | ||
66 | |||
47 | #define NV_PERF_HEADER_4X_CLOCKS_DOMAINS_MAX_NUMCLKS 9 | 67 | #define NV_PERF_HEADER_4X_CLOCKS_DOMAINS_MAX_NUMCLKS 9 |
48 | 68 | ||
49 | struct vbios_clock_domain { | 69 | struct vbios_clock_domain { |
@@ -82,7 +102,6 @@ struct vbios_clocks_table_1x_hal_clock_entry { | |||
82 | #define PERF_CLK_PCIEGENCLK 12 | 102 | #define PERF_CLK_PCIEGENCLK 12 |
83 | #define PERF_CLK_NUM 13 | 103 | #define PERF_CLK_NUM 13 |
84 | 104 | ||
85 | u32 clk_pmu_vf_inject(struct gk20a *g); | ||
86 | u32 clk_pmu_vin_load(struct gk20a *g); | 105 | u32 clk_pmu_vin_load(struct gk20a *g); |
87 | u32 clk_domain_print_vf_table(struct gk20a *g, u32 clkapidomain); | 106 | u32 clk_domain_print_vf_table(struct gk20a *g, u32 clkapidomain); |
88 | u32 clk_domain_get_f_or_v | 107 | u32 clk_domain_get_f_or_v |
@@ -98,5 +117,6 @@ u32 clk_domain_get_f_points( | |||
98 | u32 *fpointscount, | 117 | u32 *fpointscount, |
99 | u16 *freqpointsinmhz | 118 | u16 *freqpointsinmhz |
100 | ); | 119 | ); |
101 | 120 | int clk_set_boot_fll_clk(struct gk20a *g); | |
121 | int clk_program_fll_clks(struct gk20a *g, struct change_fll_clk *fllclk); | ||
102 | #endif | 122 | #endif |