summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/nvgpu/clk/clk_arb.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/nvgpu/clk/clk_arb.c')
-rw-r--r--drivers/gpu/nvgpu/clk/clk_arb.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/gpu/nvgpu/clk/clk_arb.c b/drivers/gpu/nvgpu/clk/clk_arb.c
index 452d9de3..3d97535d 100644
--- a/drivers/gpu/nvgpu/clk/clk_arb.c
+++ b/drivers/gpu/nvgpu/clk/clk_arb.c
@@ -772,6 +772,11 @@ int nvgpu_clk_arb_init_arbiter(struct gk20a *g)
772 return err; 772 return err;
773} 773}
774 774
775bool nvgpu_clk_arb_has_active_req(struct gk20a *g)
776{
777 return (nvgpu_atomic_read(&g->clk_arb_global_nr) > 0);
778}
779
775void nvgpu_clk_arb_send_thermal_alarm(struct gk20a *g) 780void nvgpu_clk_arb_send_thermal_alarm(struct gk20a *g)
776{ 781{
777 nvgpu_clk_arb_schedule_alarm(g, 782 nvgpu_clk_arb_schedule_alarm(g,
@@ -854,10 +859,12 @@ void nvgpu_clk_arb_free_fd(struct nvgpu_ref *refcount)
854 struct nvgpu_clk_dev *dev = container_of(refcount, 859 struct nvgpu_clk_dev *dev = container_of(refcount,
855 struct nvgpu_clk_dev, refcount); 860 struct nvgpu_clk_dev, refcount);
856 struct nvgpu_clk_session *session = dev->session; 861 struct nvgpu_clk_session *session = dev->session;
862 struct gk20a *g = session->g;
857 863
858 nvgpu_clk_notification_queue_free(session->g, &dev->queue); 864 nvgpu_clk_notification_queue_free(g, &dev->queue);
859 865
860 nvgpu_kfree(session->g, dev); 866 nvgpu_atomic_dec(&g->clk_arb_global_nr);
867 nvgpu_kfree(g, dev);
861} 868}
862 869
863void nvgpu_clk_arb_free_session(struct nvgpu_ref *refcount) 870void nvgpu_clk_arb_free_session(struct nvgpu_ref *refcount)