diff options
author | Varad Gautam <varadgautam@google.com> | 2023-08-23 15:07:47 +0000 |
---|---|---|
committer | Treehugger Robot <android-test-infra-autosubmit@system.gserviceaccount.com> | 2023-08-28 13:36:19 +0000 |
commit | 959f31c250e0e92c846a902d41cfc1e0fde71970 (patch) | |
tree | 255446801524d82868b2c88ec3feff88edb634bf /mali_kbase | |
parent | e950fd2ae546b6e16bce788dfdc111465a75fe8e (diff) | |
download | gpu-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.c | 6 |
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; |