diff options
author | Debarshi Dutta <debarshid@google.com> | 2023-08-07 09:36:18 +0000 |
---|---|---|
committer | Debarshi Dutta <debarshid@google.com> | 2023-08-07 11:34:20 +0000 |
commit | 67cf0926399ee85101cfa582dc511965befb82c1 (patch) | |
tree | a5aaad3e54004aa6f883015a972b01d3e8eb1641 /mali_kbase | |
parent | b7705dc18e5925f2acce2c60620723a3ae1127b5 (diff) | |
download | gpu-67cf0926399ee85101cfa582dc511965befb82c1.tar.gz |
mali_kbase: restore hysteresis time.
An accidental change back to a lower hysteresis time as
a part of the R43P0 merge commit resulted in GPU
powering on and off more frequently and regressing previously
established perf. Restore the same to a value that was previously
determined and set in our downstream driver.
Bug 292157710
Bug 278174418
Change-Id: Id44337bc1fd672722a5edaf27aaca16f320b7ad0
Signed-off-by: Debarshi Dutta <debarshid@google.com>
Diffstat (limited to 'mali_kbase')
-rw-r--r-- | mali_kbase/csf/mali_kbase_csf.c | 2 | ||||
-rw-r--r-- | mali_kbase/csf/mali_kbase_csf.h | 2 | ||||
-rw-r--r-- | mali_kbase/csf/mali_kbase_csf_firmware.c | 13 |
3 files changed, 3 insertions, 14 deletions
diff --git a/mali_kbase/csf/mali_kbase_csf.c b/mali_kbase/csf/mali_kbase_csf.c index 639c6da..c3d34b3 100644 --- a/mali_kbase/csf/mali_kbase_csf.c +++ b/mali_kbase/csf/mali_kbase_csf.c @@ -3160,8 +3160,6 @@ void kbase_csf_interrupt(struct kbase_device *kbdev, u32 val) kbase_csf_firmware_global_input_mask( global_iface, GLB_REQ, glb_ack, GLB_REQ_IDLE_EVENT_MASK); - - kbase_csf_scheduler_process_gpu_idle_event(kbdev); #endif glb_idle_irq_received = true; diff --git a/mali_kbase/csf/mali_kbase_csf.h b/mali_kbase/csf/mali_kbase_csf.h index d2d4163..35d0331 100644 --- a/mali_kbase/csf/mali_kbase_csf.h +++ b/mali_kbase/csf/mali_kbase_csf.h @@ -50,7 +50,7 @@ /* 60ms optimizes power while minimizing latency impact for UI test cases. */ #define MALI_HOST_CONTROLS_SC_RAILS_IDLE_TIMER_US (600) -#define FIRMWARE_IDLE_HYSTERESIS_TIME_USEC (10000) /* Default 10 milliseconds */ +#define FIRMWARE_IDLE_HYSTERESIS_TIME_USEC (60000) /* Default 60 milliseconds */ /* Idle hysteresis time can be scaled down when GPU sleep feature is used */ #define FIRMWARE_IDLE_HYSTERESIS_GPU_SLEEP_SCALER (5) diff --git a/mali_kbase/csf/mali_kbase_csf_firmware.c b/mali_kbase/csf/mali_kbase_csf_firmware.c index 0b1dae1..a4f561b 100644 --- a/mali_kbase/csf/mali_kbase_csf_firmware.c +++ b/mali_kbase/csf/mali_kbase_csf_firmware.c @@ -2097,22 +2097,13 @@ u32 kbase_csf_firmware_get_gpu_idle_hysteresis_time(struct kbase_device *kbdev) return dur; } -#ifndef CONFIG_MALI_HOST_CONTROLS_SC_RAILS -static inline u32 msec_to_usec_saturate(u32 ms) { -#define MILLISECONDS_PER_SECOND 1000 - if (ms > U32_MAX / MILLISECONDS_PER_SECOND) - return U32_MAX; - return ms * MILLISECONDS_PER_SECOND; -} -#endif - u32 kbase_csf_firmware_set_gpu_idle_hysteresis_time(struct kbase_device *kbdev, u32 dur) { unsigned long flags; #ifdef CONFIG_MALI_HOST_CONTROLS_SC_RAILS const u32 hysteresis_val = convert_dur_to_idle_count(kbdev, MALI_HOST_CONTROLS_SC_RAILS_IDLE_TIMER_US); #else - const u32 hysteresis_val = convert_dur_to_idle_count(kbdev, msec_to_usec_saturate(dur)); + const u32 hysteresis_val = convert_dur_to_idle_count(kbdev, dur); #endif /* The 'fw_load_lock' is taken to synchronize against the deferred @@ -2182,7 +2173,7 @@ u32 kbase_csf_firmware_set_gpu_idle_hysteresis_time(struct kbase_device *kbdev, mutex_unlock(&kbdev->csf.reg_lock); #endif - dev_dbg(kbdev->dev, "GPU suspend timeout updated: %i ms (0x%.8x)", + dev_dbg(kbdev->dev, "GPU suspend timeout updated: %i us (0x%.8x)", kbdev->csf.gpu_idle_hysteresis_us, kbdev->csf.gpu_idle_dur_count); kbase_csf_scheduler_pm_idle(kbdev); |