summaryrefslogtreecommitdiff
path: root/mali_kbase
diff options
context:
space:
mode:
authorVarad Gautam <varadgautam@google.com>2023-08-23 15:07:47 +0000
committerTreehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com>2023-08-28 13:36:19 +0000
commit959f31c250e0e92c846a902d41cfc1e0fde71970 (patch)
tree255446801524d82868b2c88ec3feff88edb634bf /mali_kbase
parente950fd2ae546b6e16bce788dfdc111465a75fe8e (diff)
downloadgpu-959f31c250e0e92c846a902d41cfc1e0fde71970.tar.gz
mali_kbase: Unmask RESET_COMPLETED irq before resetting the GPU
This reverts commit e8fa58acd3f48031ac6297e64ae996d430fa31d4. b/290409680 shows RESET_COMPLETED irq being missed in the absence of this patch. The original patch (pa/I2dcec3ef431) was found to not cause the stability problems for which it was reverted (pa/I6ee1b26063a). Reintroduce it. Test: Boot to home. ARM Upstreaming: Pending in https://code.ipdelivery.arm.com/c/GPU/mali-ddk/+/4835 Bug: 290409680 Change-Id: Iada51bb1d9c88dd0d3b0fdab5961c85699221b47 Signed-off-by: Varad Gautam <varadgautam@google.com>
Diffstat (limited to 'mali_kbase')
-rw-r--r--mali_kbase/backend/gpu/mali_kbase_pm_driver.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/mali_kbase/backend/gpu/mali_kbase_pm_driver.c b/mali_kbase/backend/gpu/mali_kbase_pm_driver.c
index a6e292e..2c69ac9 100644
--- a/mali_kbase/backend/gpu/mali_kbase_pm_driver.c
+++ b/mali_kbase/backend/gpu/mali_kbase_pm_driver.c
@@ -3316,6 +3316,9 @@ static int kbase_pm_do_reset(struct kbase_device *kbdev)
KBASE_TLSTREAM_JD_GPU_SOFT_RESET(kbdev, kbdev);
+ /* Unmask the reset complete interrupt only */
+ kbase_reg_write(kbdev, GPU_CONTROL_REG(GPU_IRQ_MASK), RESET_COMPLETED);
+
if (kbdev->pm.backend.callback_soft_reset) {
ret = kbdev->pm.backend.callback_soft_reset(kbdev);
if (ret < 0)
@@ -3327,9 +3330,6 @@ static int kbase_pm_do_reset(struct kbase_device *kbdev)
GPU_COMMAND_SOFT_RESET);
}
- /* Unmask the reset complete interrupt only */
- kbase_reg_write(kbdev, GPU_CONTROL_REG(GPU_IRQ_MASK), RESET_COMPLETED);
-
/* Initialize a structure for tracking the status of the reset */
rtdata.kbdev = kbdev;
rtdata.timed_out = false;