diff options
author | Siddharth Kapoor <ksiddharth@google.com> | 2022-08-01 16:50:41 -0700 |
---|---|---|
committer | Siddharth Kapoor <ksiddharth@google.com> | 2022-08-03 05:07:20 +0000 |
commit | 865a858478765e384e3be77f0ff777d3d4daf5c8 (patch) | |
tree | d7424c9020708981bbfc4784af35f2757490839c | |
parent | fd7b74008f7ae6e2a3d2704cd73ffb11dba35e8f (diff) | |
download | gpu-android-gs-bluejay-5.10-android13-qpr1-beta.tar.gz |
mali_kbase: platform: dvfs: Reset QoS votes correctlyandroid-t-qpr1-beta-3_r0.4android-t-qpr1-beta-3_r0.3android-t-qpr1-beta-2_r0.5android-t-qpr1-beta-2_r0.4android-t-qpr1-beta-1_r0.4android-t-qpr1-beta-1_r0.3android-13.0.0_r0.49android-13.0.0_r0.48android-gs-raviole-5.10-t-qpr1-beta-2android-gs-raviole-5.10-android13-qpr1-beta-3android-gs-raviole-5.10-android13-qpr1-betaandroid-gs-bluejay-5.10-t-qpr1-beta-2android-gs-bluejay-5.10-android13-qpr1-beta-3android-gs-bluejay-5.10-android13-qpr1-beta
Currently the QoS votes are set correcty, but not reset if it is set to
0 in gpu dvfs table for a specific OPP.
Reset the QoS votes in case it is set to 0 in gpu dvfs table.
Bug: 237810419
Test: Check INT/MIF votes for Camera, gfxbench use-case
Change-Id: I5f4ec4e506986be12ffe68df92b9d540cd22bbb9
Signed-off-by: Siddharth Kapoor <ksiddharth@google.com>
-rw-r--r-- | mali_kbase/platform/pixel/pixel_gpu_dvfs_qos.c | 29 |
1 files changed, 16 insertions, 13 deletions
diff --git a/mali_kbase/platform/pixel/pixel_gpu_dvfs_qos.c b/mali_kbase/platform/pixel/pixel_gpu_dvfs_qos.c index 88c22f7..7c7f84f 100644 --- a/mali_kbase/platform/pixel/pixel_gpu_dvfs_qos.c +++ b/mali_kbase/platform/pixel/pixel_gpu_dvfs_qos.c @@ -22,19 +22,6 @@ #include "pixel_gpu_dvfs.h" /** - * qos_set() - Set a QOS vote on an IP block - * - * @vote: The &struct gpu_dvfs_qos_vote to set the vote on. - * @value: The value to vote for. - */ -static inline void qos_set(struct gpu_dvfs_qos_vote *vote, int value) { - if (unlikely(value)) { - exynos_pm_qos_update_request(&vote->req, value); - vote->enabled = true; - } -} - -/** * qos_reset() - Resets a QOS vote on an IP block * * @vote: The &struct gpu_dvfs_qos_vote to reset the vote on. @@ -50,6 +37,22 @@ static inline void qos_reset(struct gpu_dvfs_qos_vote *vote) { } /** + * qos_set() - Set a QOS vote on an IP block + * + * @vote: The &struct gpu_dvfs_qos_vote to set the vote on. + * @value: The value to vote for. + */ +static inline void qos_set(struct gpu_dvfs_qos_vote *vote, int value) { + if (unlikely(value)) { + exynos_pm_qos_update_request(&vote->req, value); + vote->enabled = true; + } + else { + qos_reset(vote); + } +} + +/** * gpu_dvfs_qos_set() - Issue QOS requests for a GPU DVFS level. * * @kbdev: The &struct kbase_device for the GPU. |