summaryrefslogtreecommitdiff
path: root/mali_kbase/backend
diff options
context:
space:
mode:
authorVamsidhar reddy Gaddam <gvamsi@google.com>2024-02-06 11:45:42 +0000
committerVamsidhar reddy Gaddam <gvamsi@google.com>2024-02-07 17:24:10 +0000
commit0781d08e1eb2fce0dc82582a41ecd183d75fad71 (patch)
treeba227cefdd74ebdb680ec0a81e94fdb5d5f7cdb4 /mali_kbase/backend
parent88eb15d9c46c4992d178ce83216f97b8fb939cfe (diff)
downloadgpu-0781d08e1eb2fce0dc82582a41ecd183d75fad71.tar.gz
Remove IFPO from KMD
IFPO feature has been unusued and only creates overhead for smooth driver updates. Bug: 324019470 Change-Id: Iab65e95b9ba21d74cc158557e3fa78d4478c9a71 Signed-off-by: Vamsidhar reddy Gaddam <gvamsi@google.com>
Diffstat (limited to 'mali_kbase/backend')
-rw-r--r--mali_kbase/backend/gpu/mali_kbase_pm_backend.c10
-rw-r--r--mali_kbase/backend/gpu/mali_kbase_pm_defs.h13
-rw-r--r--mali_kbase/backend/gpu/mali_kbase_pm_driver.c49
3 files changed, 0 insertions, 72 deletions
diff --git a/mali_kbase/backend/gpu/mali_kbase_pm_backend.c b/mali_kbase/backend/gpu/mali_kbase_pm_backend.c
index 0cb205b..d8d55f3 100644
--- a/mali_kbase/backend/gpu/mali_kbase_pm_backend.c
+++ b/mali_kbase/backend/gpu/mali_kbase_pm_backend.c
@@ -75,12 +75,6 @@ int kbase_pm_runtime_init(struct kbase_device *kbdev)
callbacks->power_runtime_gpu_idle_callback;
kbdev->pm.backend.callback_power_runtime_gpu_active =
callbacks->power_runtime_gpu_active_callback;
-#ifdef CONFIG_MALI_HOST_CONTROLS_SC_RAILS
- kbdev->pm.backend.callback_power_on_sc_rails =
- callbacks->power_on_sc_rails_callback;
- kbdev->pm.backend.callback_power_off_sc_rails =
- callbacks->power_off_sc_rails_callback;
-#endif
if (callbacks->power_runtime_init_callback)
return callbacks->power_runtime_init_callback(kbdev);
@@ -101,10 +95,6 @@ int kbase_pm_runtime_init(struct kbase_device *kbdev)
kbdev->pm.backend.callback_hardware_reset = NULL;
kbdev->pm.backend.callback_power_runtime_gpu_idle = NULL;
kbdev->pm.backend.callback_power_runtime_gpu_active = NULL;
-#ifdef CONFIG_MALI_HOST_CONTROLS_SC_RAILS
- kbdev->pm.backend.callback_power_on_sc_rails = NULL;
- kbdev->pm.backend.callback_power_off_sc_rails = NULL;
-#endif
return 0;
}
diff --git a/mali_kbase/backend/gpu/mali_kbase_pm_defs.h b/mali_kbase/backend/gpu/mali_kbase_pm_defs.h
index 9b17092..edec761 100644
--- a/mali_kbase/backend/gpu/mali_kbase_pm_defs.h
+++ b/mali_kbase/backend/gpu/mali_kbase_pm_defs.h
@@ -361,10 +361,6 @@ struct kbase_pm_event_log {
* @callback_power_runtime_gpu_idle was
* called previously.
* See &struct kbase_pm_callback_conf.
- * @callback_power_on_sc_rails: Callback invoked to turn on the shader core
- * power rails. See &struct kbase_pm_callback_conf.
- * @callback_power_off_sc_rails: Callback invoked to turn off the shader core
- * power rails. See &struct kbase_pm_callback_conf.
* @ca_cores_enabled: Cores that are currently available
* @apply_hw_issue_TITANHW_2938_wa: Indicates if the workaround for BASE_HW_ISSUE_TITANHW_2938
* needs to be applied when unmapping memory from GPU.
@@ -536,10 +532,6 @@ struct kbase_pm_backend_data {
void (*callback_hardware_reset)(struct kbase_device *kbdev);
void (*callback_power_runtime_gpu_idle)(struct kbase_device *kbdev);
void (*callback_power_runtime_gpu_active)(struct kbase_device *kbdev);
-#ifdef CONFIG_MALI_HOST_CONTROLS_SC_RAILS
- void (*callback_power_on_sc_rails)(struct kbase_device *kbdev);
- void (*callback_power_off_sc_rails)(struct kbase_device *kbdev);
-#endif
u64 ca_cores_enabled;
@@ -558,11 +550,6 @@ struct kbase_pm_backend_data {
struct mutex policy_change_lock;
struct workqueue_struct *core_idle_wq;
struct work_struct core_idle_work;
-#ifdef CONFIG_MALI_HOST_CONTROLS_SC_RAILS
- struct work_struct sc_rails_on_work;
- bool sc_power_rails_off;
- bool sc_pwroff_safe;
-#endif
#ifdef KBASE_PM_RUNTIME
bool gpu_sleep_supported;
diff --git a/mali_kbase/backend/gpu/mali_kbase_pm_driver.c b/mali_kbase/backend/gpu/mali_kbase_pm_driver.c
index 142f819..4637861 100644
--- a/mali_kbase/backend/gpu/mali_kbase_pm_driver.c
+++ b/mali_kbase/backend/gpu/mali_kbase_pm_driver.c
@@ -802,10 +802,6 @@ static void kbasep_pm_toggle_power_interrupt(struct kbase_device *kbdev, bool en
irq_mask = kbase_reg_read32(kbdev, GPU_CONTROL_ENUM(GPU_IRQ_MASK));
-#ifdef CONFIG_MALI_HOST_CONTROLS_SC_RAILS
- /* For IFPO, we require the POWER_CHANGED_ALL interrupt to be always on */
- enable = true;
-#endif
if (enable) {
irq_mask |= POWER_CHANGED_ALL;
kbase_reg_write32(kbdev, GPU_CONTROL_ENUM(GPU_IRQ_CLEAR), POWER_CHANGED_ALL);
@@ -938,14 +934,6 @@ static int kbase_pm_mcu_update_state(struct kbase_device *kbdev)
backend->shaders_avail = backend->shaders_desired_mask;
backend->pm_shaders_core_mask = 0;
if (kbdev->csf.firmware_hctl_core_pwr) {
-#ifdef CONFIG_MALI_HOST_CONTROLS_SC_RAILS
- /* On rail up, this state machine will be re-invoked */
- if (backend->sc_power_rails_off) {
- /* The work should already be queued or executing */
- WARN_ON(!work_busy(&backend->sc_rails_on_work));
- break;
- }
-#endif
kbase_pm_invoke(kbdev, KBASE_PM_CORE_SHADER,
backend->shaders_avail, ACTION_PWRON);
backend->mcu_state = KBASE_MCU_HCTL_SHADERS_PEND_ON;
@@ -1311,31 +1299,6 @@ static void core_idle_worker(struct work_struct *work)
}
#endif
-#ifdef CONFIG_MALI_HOST_CONTROLS_SC_RAILS
-static void sc_rails_on_worker(struct work_struct *work)
-{
- struct kbase_device *kbdev =
- container_of(work, struct kbase_device, pm.backend.sc_rails_on_work);
- unsigned long flags;
-
- /*
- * Intentionally not synchronized using the scheduler.lock, as the scheduler may be waiting
- * on the SC rail to power up
- */
- kbase_pm_lock(kbdev);
-
- kbase_pm_turn_on_sc_power_rails_locked(kbdev);
-
- spin_lock_irqsave(&kbdev->hwaccess_lock, flags);
- /* Push the state machine forward in case it was waiting on SC rail power up */
- kbase_pm_update_state(kbdev);
- spin_unlock_irqrestore(&kbdev->hwaccess_lock, flags);
-
- kbase_pm_unlock(kbdev);
-}
-#endif /* CONFIG_MALI_HOST_CONTROLS_SC_RAILS */
-
-
static const char *kbase_l2_core_state_to_string(enum kbase_l2_core_state state)
{
const char *const strings[] = {
@@ -2475,9 +2438,6 @@ int kbase_pm_state_machine_init(struct kbase_device *kbdev)
}
INIT_WORK(&kbdev->pm.backend.core_idle_work, core_idle_worker);
-#ifdef CONFIG_MALI_HOST_CONTROLS_SC_RAILS
- INIT_WORK(&kbdev->pm.backend.sc_rails_on_work, sc_rails_on_worker);
-#endif
#endif
return 0;
@@ -2591,10 +2551,6 @@ void kbase_gpu_timeout_debug_message(struct kbase_device *kbdev, const char *tim
kbase_pm_is_l2_desired(kbdev), kbdev->pm.backend.policy_change_clamp_state_to_off);
dev_err(kbdev->dev, "\tL2 sw state = %d\n",
kbdev->pm.backend.l2_state);
-#ifdef CONFIG_MALI_HOST_CONTROLS_SC_RAILS
- dev_err(kbdev->dev, "\tbackend.sc_power_rails_off = %d\n",
- kbdev->pm.backend.sc_power_rails_off);
-#endif
spin_unlock_irqrestore(&kbdev->hwaccess_lock, flags);
#endif
dev_err(kbdev->dev, "Current state :\n");
@@ -3642,11 +3598,6 @@ int kbase_pm_init_hw(struct kbase_device *kbdev, unsigned int flags)
kbdev->pm.backend.gpu_powered = true;
}
-#ifdef CONFIG_MALI_HOST_CONTROLS_SC_RAILS
- /* Ensure the SC rail is up otherwise the FW will get stuck during reset */
- kbase_pm_turn_on_sc_power_rails_locked(kbdev);
-#endif
-
/* Ensure interrupts are off to begin with, this also clears any
* outstanding interrupts