hc
2024-05-16 8d2a02b24d66aa359e83eebc1ed3c0f85367a1cb
kernel/drivers/gpu/arm/bifrost/backend/gpu/mali_kbase_pm_mcu_states.h
....@@ -1,7 +1,7 @@
11 /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
22 /*
33 *
4
- * (C) COPYRIGHT 2020-2021 ARM Limited. All rights reserved.
4
+ * (C) COPYRIGHT 2020-2022 ARM Limited. All rights reserved.
55 *
66 * This program is free software and is provided to you under the terms of the
77 * GNU General Public License version 2 as published by the Free Software
....@@ -25,23 +25,54 @@
2525 * this header file. This header file can be included multiple times in the
2626 * same compilation unit with different definitions of KBASEP_MCU_STATE().
2727 *
28
- * @OFF: The MCU is powered off.
29
- * @PEND_ON_RELOAD: The warm boot of MCU or cold boot of MCU (with
30
- * firmware reloading) is in progress.
31
- * @ON_GLB_REINIT_PEND: The MCU is enabled and Global configuration
32
- * requests have been sent to the firmware.
33
- * @ON_HWCNT_ENABLE: The Global requests have completed and MCU is now
34
- * ready for use and hwcnt is being enabled.
35
- * @ON: The MCU is active and hwcnt has been enabled.
36
- * @ON_CORE_ATTR_UPDATE_PEND: The MCU is active and mask of enabled shader cores
37
- * is being updated.
38
- * @ON_HWCNT_DISABLE: The MCU is on and hwcnt is being disabled.
39
- * @ON_HALT: The MCU is on and hwcnt has been disabled, MCU
40
- * halt would be triggered.
41
- * @ON_PEND_HALT: MCU halt in progress, confirmation pending.
42
- * @POWER_DOWN: MCU halted operations, pending being disabled.
43
- * @PEND_OFF: MCU is being disabled, pending on powering off.
44
- * @RESET_WAIT: The GPU is resetting, MCU state is unknown.
28
+ * @OFF: The MCU is powered off.
29
+ * @PEND_ON_RELOAD: The warm boot of MCU or cold boot of MCU (with
30
+ * firmware reloading) is in progress.
31
+ * @ON_GLB_REINIT_PEND: The MCU is enabled and Global configuration
32
+ * requests have been sent to the firmware.
33
+ * @ON_HWCNT_ENABLE: The Global requests have completed and MCU is now
34
+ * ready for use and hwcnt is being enabled.
35
+ * @ON: The MCU is active and hwcnt has been enabled.
36
+ * @ON_CORE_ATTR_UPDATE_PEND: The MCU is active and mask of enabled shader cores
37
+ * is being updated.
38
+ * @ON_HWCNT_DISABLE: The MCU is on and hwcnt is being disabled.
39
+ * @ON_HALT: The MCU is on and hwcnt has been disabled, MCU
40
+ * halt would be triggered.
41
+ * @ON_PEND_HALT: MCU halt in progress, confirmation pending.
42
+ * @POWER_DOWN: MCU halted operations, pending being disabled.
43
+ * @PEND_OFF: MCU is being disabled, pending on powering off.
44
+ * @RESET_WAIT: The GPU is resetting, MCU state is unknown.
45
+ * @HCTL_SHADERS_PEND_ON: Global configuration requests sent to the firmware
46
+ * have completed and shaders have been requested to
47
+ * power on.
48
+ * @HCTL_CORES_NOTIFY_PEND: Shader cores have powered up and firmware is being
49
+ * notified of the mask of enabled shader cores.
50
+ * @HCTL_MCU_ON_RECHECK: MCU is on and hwcnt disabling is triggered
51
+ * and checks are done to update the number of
52
+ * enabled cores.
53
+ * @HCTL_SHADERS_READY_OFF: MCU has halted and cores need to be powered down
54
+ * @HCTL_SHADERS_PEND_OFF: Cores are transitioning to power down.
55
+ * @HCTL_CORES_DOWN_SCALE_NOTIFY_PEND: Firmware has been informed to stop using
56
+ * specific cores, due to core_mask change request.
57
+ * After the ACK from FW, the wait will be done for
58
+ * undesired cores to become inactive.
59
+ * @HCTL_CORE_INACTIVE_PEND: Waiting for specific cores to become inactive.
60
+ * Once the cores become inactive their power down
61
+ * will be initiated.
62
+ * @HCTL_SHADERS_CORE_OFF_PEND: Waiting for specific cores to complete the
63
+ * transition to power down. Once powered down,
64
+ * HW counters will be re-enabled.
65
+ * @ON_SLEEP_INITIATE: MCU is on and hwcnt has been disabled and MCU
66
+ * is being put to sleep.
67
+ * @ON_PEND_SLEEP: MCU sleep is in progress.
68
+ * @IN_SLEEP: Sleep request is completed and MCU has halted.
69
+ * @ON_PMODE_ENTER_CORESIGHT_DISABLE: The MCU is on, protected mode enter is about to
70
+ * be requested, Coresight is being disabled.
71
+ * @ON_PMODE_EXIT_CORESIGHT_ENABLE : The MCU is on, protected mode exit has happened
72
+ * Coresight is being enabled.
73
+ * @CORESIGHT_DISABLE: The MCU is on and Coresight is being disabled.
74
+ * @CORESIGHT_ENABLE: The MCU is on, host does not have control and
75
+ * Coresight is being enabled.
4576 */
4677 KBASEP_MCU_STATE(OFF)
4778 KBASEP_MCU_STATE(PEND_ON_RELOAD)
....@@ -61,3 +92,17 @@
6192 KBASEP_MCU_STATE(HCTL_MCU_ON_RECHECK)
6293 KBASEP_MCU_STATE(HCTL_SHADERS_READY_OFF)
6394 KBASEP_MCU_STATE(HCTL_SHADERS_PEND_OFF)
95
+KBASEP_MCU_STATE(HCTL_CORES_DOWN_SCALE_NOTIFY_PEND)
96
+KBASEP_MCU_STATE(HCTL_CORE_INACTIVE_PEND)
97
+KBASEP_MCU_STATE(HCTL_SHADERS_CORE_OFF_PEND)
98
+/* Additional MCU states to support GPU sleep feature */
99
+KBASEP_MCU_STATE(ON_SLEEP_INITIATE)
100
+KBASEP_MCU_STATE(ON_PEND_SLEEP)
101
+KBASEP_MCU_STATE(IN_SLEEP)
102
+#if IS_ENABLED(CONFIG_MALI_CORESIGHT)
103
+/* Additional MCU states for Coresight */
104
+KBASEP_MCU_STATE(ON_PMODE_ENTER_CORESIGHT_DISABLE)
105
+KBASEP_MCU_STATE(ON_PMODE_EXIT_CORESIGHT_ENABLE)
106
+KBASEP_MCU_STATE(CORESIGHT_DISABLE)
107
+KBASEP_MCU_STATE(CORESIGHT_ENABLE)
108
+#endif /* IS_ENABLED(CONFIG_MALI_CORESIGHT) */