From 0cecc5c5ab1e8ab412f22d5c744a9da54b69d092 Mon Sep 17 00:00:00 2001 From: Debarshi Dutta Date: Mon, 13 Jun 2022 12:18:42 +0530 Subject: [PATCH] gpu: nvgpu: don't skip setting same clk in arbiter In the current setting, clock arbiter skips setting the clock if its already set previously. The value set by the arbiter is stored in "struct nvgpu_clk_arb->actual" whenever the clock is updated via the arbiter. However, DVFS might also update the clock and the updates are not synchronized with the arbiter. Hence, ensure that any clock requests are always updated i.e. the requested rate is set even if the previous rate remains the same. Bug 3666615 Signed-off-by: Debarshi Dutta Change-Id: I32bf4dbf81b19fdd6fa0bdec3a6c9a9312b78eca Reviewed-on: https://git-master.nvidia.com/r/c/linux-nvgpu/+/2732364 Reviewed-by: svcacv Reviewed-by: Vijayakumar Subbu GVS: Gerrit_Virtual_Submit --- drivers/gpu/nvgpu/common/clk_arb/clk_arb_gp10b.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/drivers/gpu/nvgpu/common/clk_arb/clk_arb_gp10b.c b/drivers/gpu/nvgpu/common/clk_arb/clk_arb_gp10b.c index fe844a251..575d6ff12 100644 --- a/drivers/gpu/nvgpu/common/clk_arb/clk_arb_gp10b.c +++ b/drivers/gpu/nvgpu/common/clk_arb/clk_arb_gp10b.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2018-2021, NVIDIA CORPORATION. All rights reserved. + * Copyright (c) 2018-2022, NVIDIA CORPORATION. All rights reserved. * * Permission is hereby granted, free of charge, to any person obtaining a * copy of this software and associated documentation files (the "Software"), @@ -305,12 +305,6 @@ void gp10b_clk_arb_run_arbiter_cb(struct nvgpu_clk_arb *arb) gpc2clk_session_target = gpc2clk_target; - if (arb->actual->gpc2clk == gpc2clk_target) { - nvgpu_atomic_inc(&arb->req_nr); - nvgpu_cond_signal_interruptible(&arb->request_wq); - goto exit_arb; - } - nvgpu_mutex_acquire(&arb->pstate_lock); status = g->ops.clk.clk_get_round_rate(g,