summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/clk/clk_arb.h
diff options
context:
space:
mode:
authorThomas Fleury <tfleury@nvidia.com>2016-09-30 19:40:29 -0400
committerDeepak Nibade <dnibade@nvidia.com>2016-12-27 04:56:51 -0500
commit7a8b12ab634c05cd39c08e704c28ee3f4e111c7f (patch)
treedd9ad4e4d27e0eb779329a0e86c8b8dff5b3312e /drivers/gpu/nvgpu/clk/clk_arb.h
parent3d9c33c5953e383527c7e4af594adfe0c82b5788 (diff)
gpu: nvgpu: clk requests completion and event fds
Install one completion fd per SET request. Notifications on dedicated event fd. Changed frequencies unit to Hz from MHz. Remove sequence numbers from dummy arbiter. Added effective clock type (query frequency from counters). Jira DNVGPU-125 Change-Id: Id5445c6ae1d6bf06f7f59c82ff6c5d3b34e26483 Signed-off-by: Thomas Fleury <tfleury@nvidia.com> Reviewed-on: http://git-master/r/1230239 Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom <tbergstrom@nvidia.com> (cherry picked from commit d17083f4ceb69725c661678607a3e43148d38560) Reviewed-on: http://git-master/r/1243106
Diffstat (limited to 'drivers/gpu/nvgpu/clk/clk_arb.h')
-rw-r--r--drivers/gpu/nvgpu/clk/clk_arb.h29
1 files changed, 15 insertions, 14 deletions
diff --git a/drivers/gpu/nvgpu/clk/clk_arb.h b/drivers/gpu/nvgpu/clk/clk_arb.h
index 9981041b..95749369 100644
--- a/drivers/gpu/nvgpu/clk/clk_arb.h
+++ b/drivers/gpu/nvgpu/clk/clk_arb.h
@@ -22,16 +22,17 @@ struct nvgpu_clk_session;
22int nvgpu_clk_arb_init_arbiter(struct gk20a *g); 22int nvgpu_clk_arb_init_arbiter(struct gk20a *g);
23 23
24int nvgpu_clk_arb_get_arbiter_clk_range(struct gk20a *g, u32 api_domain, 24int nvgpu_clk_arb_get_arbiter_clk_range(struct gk20a *g, u32 api_domain,
25 u16 *min_mhz, u16 *max_mhz); 25 u64 *min_hz, u64 *max_hz);
26 26
27int nvgpu_clk_arb_get_arbiter_actual_mhz(struct gk20a *g, 27int nvgpu_clk_arb_get_arbiter_actual_hz(struct gk20a *g,
28 u32 api_domain, u16 *actual_mhz); 28 u32 api_domain, u64 *actual_hz);
29
30int nvgpu_clk_arb_get_arbiter_effective_hz(struct gk20a *g,
31 u32 api_domain, u64 *actual_hz);
29 32
30int nvgpu_clk_arb_get_arbiter_clk_f_points(struct gk20a *g, 33int nvgpu_clk_arb_get_arbiter_clk_f_points(struct gk20a *g,
31 u32 api_domain, u32 *max_points, u16 *fpoints); 34 u32 api_domain, u32 *max_points, u16 *fpoints);
32 35
33u32 nvgpu_clk_arb_get_arbiter_req_nr(struct gk20a *g);
34
35u32 nvgpu_clk_arb_get_arbiter_clk_domains(struct gk20a *g); 36u32 nvgpu_clk_arb_get_arbiter_clk_domains(struct gk20a *g);
36 37
37void nvgpu_clk_arb_cleanup_arbiter(struct gk20a *g); 38void nvgpu_clk_arb_cleanup_arbiter(struct gk20a *g);
@@ -42,20 +43,20 @@ int nvgpu_clk_arb_install_session_fd(struct gk20a *g,
42int nvgpu_clk_arb_init_session(struct gk20a *g, 43int nvgpu_clk_arb_init_session(struct gk20a *g,
43 struct nvgpu_clk_session **_session); 44 struct nvgpu_clk_session **_session);
44 45
45void nvgpu_clk_arb_cleanup_session(struct gk20a *g, 46void nvgpu_clk_arb_release_session(struct gk20a *g,
46 struct nvgpu_clk_session *session); 47 struct nvgpu_clk_session *session);
47 48
48void nvgpu_clk_arb_apply_session_constraints(struct gk20a *g, 49int nvgpu_clk_arb_apply_session_constraints(struct gk20a *g,
49 struct nvgpu_clk_session *session); 50 struct nvgpu_clk_session *session, int *completion_fd);
50 51
51int nvgpu_clk_arb_set_session_target_mhz(struct nvgpu_clk_session *session, 52int nvgpu_clk_arb_set_session_target_hz(struct nvgpu_clk_session *session,
52 u32 api_domain, u16 target_mhz); 53 u32 api_domain, u64 target_hz);
53 54
54int nvgpu_clk_arb_get_session_target_mhz(struct nvgpu_clk_session *session, 55int nvgpu_clk_arb_get_session_target_hz(struct nvgpu_clk_session *session,
55 u32 api_domain, u16 *target_mhz); 56 u32 api_domain, u64 *target_hz);
56 57
57u32 nvgpu_clk_arb_get_session_req_nr(struct gk20a *g, 58int nvgpu_clk_arb_install_event_fd(struct gk20a *g,
58 struct nvgpu_clk_session *session); 59 struct nvgpu_clk_session *session, int *event_fd);
59 60
60 61
61 62