diff options
Diffstat (limited to 'drivers/gpu/nvgpu/gm20b/hal_gm20b.c')
-rw-r--r-- | drivers/gpu/nvgpu/gm20b/hal_gm20b.c | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/drivers/gpu/nvgpu/gm20b/hal_gm20b.c b/drivers/gpu/nvgpu/gm20b/hal_gm20b.c index c2bccbee..c16cd3e5 100644 --- a/drivers/gpu/nvgpu/gm20b/hal_gm20b.c +++ b/drivers/gpu/nvgpu/gm20b/hal_gm20b.c | |||
@@ -277,6 +277,17 @@ static const struct gpu_ops gm20b_ops = { | |||
277 | .init_therm_setup_hw = gm20b_init_therm_setup_hw, | 277 | .init_therm_setup_hw = gm20b_init_therm_setup_hw, |
278 | .elcg_init_idle_filters = gk20a_elcg_init_idle_filters, | 278 | .elcg_init_idle_filters = gk20a_elcg_init_idle_filters, |
279 | }, | 279 | }, |
280 | .clk = { | ||
281 | .init_clk_support = gm20b_init_clk_support, | ||
282 | .suspend_clk_support = gm20b_suspend_clk_support, | ||
283 | #ifdef CONFIG_DEBUG_FS | ||
284 | .init_debugfs = gm20b_clk_init_debugfs, | ||
285 | #endif | ||
286 | .get_voltage = gm20b_clk_get_voltage, | ||
287 | .get_gpcclk_clock_counter = gm20b_clk_get_gpcclk_clock_counter, | ||
288 | .pll_reg_write = gm20b_clk_pll_reg_write, | ||
289 | .get_pll_debug_data = gm20b_clk_get_pll_debug_data, | ||
290 | }, | ||
280 | .regops = { | 291 | .regops = { |
281 | .get_global_whitelist_ranges = | 292 | .get_global_whitelist_ranges = |
282 | gm20b_get_global_whitelist_ranges, | 293 | gm20b_get_global_whitelist_ranges, |
@@ -373,6 +384,18 @@ int gm20b_init_hal(struct gk20a *g) | |||
373 | gops->fifo = gm20b_ops.fifo; | 384 | gops->fifo = gm20b_ops.fifo; |
374 | gops->gr_ctx = gm20b_ops.gr_ctx; | 385 | gops->gr_ctx = gm20b_ops.gr_ctx; |
375 | gops->therm = gm20b_ops.therm; | 386 | gops->therm = gm20b_ops.therm; |
387 | /* | ||
388 | * clk must be assigned member by member | ||
389 | * since some clk ops are assigned during probe prior to HAL init | ||
390 | */ | ||
391 | gops->clk.init_clk_support = gm20b_ops.clk.init_clk_support; | ||
392 | gops->clk.suspend_clk_support = gm20b_ops.clk.suspend_clk_support; | ||
393 | gops->clk.get_voltage = gm20b_ops.clk.get_voltage; | ||
394 | gops->clk.get_gpcclk_clock_counter = | ||
395 | gm20b_ops.clk.get_gpcclk_clock_counter; | ||
396 | gops->clk.pll_reg_write = gm20b_ops.clk.pll_reg_write; | ||
397 | gops->clk.get_pll_debug_data = gm20b_ops.clk.get_pll_debug_data; | ||
398 | |||
376 | gops->regops = gm20b_ops.regops; | 399 | gops->regops = gm20b_ops.regops; |
377 | gops->mc = gm20b_ops.mc; | 400 | gops->mc = gm20b_ops.mc; |
378 | gops->dbg_session_ops = gm20b_ops.dbg_session_ops; | 401 | gops->dbg_session_ops = gm20b_ops.dbg_session_ops; |
@@ -427,7 +450,6 @@ int gm20b_init_hal(struct gk20a *g) | |||
427 | gm20b_init_fb(gops); | 450 | gm20b_init_fb(gops); |
428 | gm20b_init_mm(gops); | 451 | gm20b_init_mm(gops); |
429 | gm20b_init_pmu_ops(g); | 452 | gm20b_init_pmu_ops(g); |
430 | gm20b_init_clk_ops(gops); | ||
431 | 453 | ||
432 | g->name = "gm20b"; | 454 | g->name = "gm20b"; |
433 | 455 | ||