diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gp106')
-rw-r--r-- | drivers/gpu/nvgpu/gp106/clk_arb_gp106.c | 9 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gp106/clk_arb_gp106.h | 2 | ||||
-rw-r--r-- | drivers/gpu/nvgpu/gp106/hal_gp106.c | 1 |
3 files changed, 12 insertions, 0 deletions
diff --git a/drivers/gpu/nvgpu/gp106/clk_arb_gp106.c b/drivers/gpu/nvgpu/gp106/clk_arb_gp106.c index 001f2bfc..87fc6a1f 100644 --- a/drivers/gpu/nvgpu/gp106/clk_arb_gp106.c +++ b/drivers/gpu/nvgpu/gp106/clk_arb_gp106.c | |||
@@ -31,6 +31,13 @@ u32 gp106_get_arbiter_clk_domains(struct gk20a *g) | |||
31 | return (CTRL_CLK_DOMAIN_MCLK|CTRL_CLK_DOMAIN_GPC2CLK); | 31 | return (CTRL_CLK_DOMAIN_MCLK|CTRL_CLK_DOMAIN_GPC2CLK); |
32 | } | 32 | } |
33 | 33 | ||
34 | int gp106_get_arbiter_f_points(struct gk20a *g,u32 api_domain, | ||
35 | u32 *num_points, u16 *freqs_in_mhz) | ||
36 | { | ||
37 | return g->ops.clk.clk_domain_get_f_points(g, | ||
38 | api_domain, num_points, freqs_in_mhz); | ||
39 | } | ||
40 | |||
34 | int gp106_get_arbiter_clk_range(struct gk20a *g, u32 api_domain, | 41 | int gp106_get_arbiter_clk_range(struct gk20a *g, u32 api_domain, |
35 | u16 *min_mhz, u16 *max_mhz) | 42 | u16 *min_mhz, u16 *max_mhz) |
36 | { | 43 | { |
@@ -129,6 +136,8 @@ int gp106_init_clk_arbiter(struct gk20a *g) | |||
129 | if (!arb) | 136 | if (!arb) |
130 | return -ENOMEM; | 137 | return -ENOMEM; |
131 | 138 | ||
139 | arb->clk_arb_events_supported = true; | ||
140 | |||
132 | err = nvgpu_mutex_init(&arb->pstate_lock); | 141 | err = nvgpu_mutex_init(&arb->pstate_lock); |
133 | if (err) | 142 | if (err) |
134 | goto mutex_fail; | 143 | goto mutex_fail; |
diff --git a/drivers/gpu/nvgpu/gp106/clk_arb_gp106.h b/drivers/gpu/nvgpu/gp106/clk_arb_gp106.h index e2b2834c..4c1257e1 100644 --- a/drivers/gpu/nvgpu/gp106/clk_arb_gp106.h +++ b/drivers/gpu/nvgpu/gp106/clk_arb_gp106.h | |||
@@ -26,6 +26,8 @@ struct nvgpu_clk_session; | |||
26 | struct nvgpu_clk_arb; | 26 | struct nvgpu_clk_arb; |
27 | 27 | ||
28 | u32 gp106_get_arbiter_clk_domains(struct gk20a *g); | 28 | u32 gp106_get_arbiter_clk_domains(struct gk20a *g); |
29 | int gp106_get_arbiter_f_points(struct gk20a *g,u32 api_domain, | ||
30 | u32 *num_points, u16 *freqs_in_mhz); | ||
29 | int gp106_get_arbiter_clk_range(struct gk20a *g, u32 api_domain, | 31 | int gp106_get_arbiter_clk_range(struct gk20a *g, u32 api_domain, |
30 | u16 *min_mhz, u16 *max_mhz); | 32 | u16 *min_mhz, u16 *max_mhz); |
31 | int gp106_get_arbiter_clk_default(struct gk20a *g, u32 api_domain, | 33 | int gp106_get_arbiter_clk_default(struct gk20a *g, u32 api_domain, |
diff --git a/drivers/gpu/nvgpu/gp106/hal_gp106.c b/drivers/gpu/nvgpu/gp106/hal_gp106.c index ef66be56..d3804f0e 100644 --- a/drivers/gpu/nvgpu/gp106/hal_gp106.c +++ b/drivers/gpu/nvgpu/gp106/hal_gp106.c | |||
@@ -679,6 +679,7 @@ static const struct gpu_ops gp106_ops = { | |||
679 | }, | 679 | }, |
680 | .clk_arb = { | 680 | .clk_arb = { |
681 | .get_arbiter_clk_domains = gp106_get_arbiter_clk_domains, | 681 | .get_arbiter_clk_domains = gp106_get_arbiter_clk_domains, |
682 | .get_arbiter_f_points = gp106_get_arbiter_f_points, | ||
682 | .get_arbiter_clk_range = gp106_get_arbiter_clk_range, | 683 | .get_arbiter_clk_range = gp106_get_arbiter_clk_range, |
683 | .get_arbiter_clk_default = gp106_get_arbiter_clk_default, | 684 | .get_arbiter_clk_default = gp106_get_arbiter_clk_default, |
684 | .get_current_pstate = nvgpu_clk_arb_get_current_pstate, | 685 | .get_current_pstate = nvgpu_clk_arb_get_current_pstate, |