| From e4840d537c2c6b1189d4de16ee0f4820e069dcea Mon Sep 17 00:00:00 2001 |
| From: Rob Clark <robdclark@chromium.org> |
| Date: Mon, 8 Nov 2021 10:01:22 -0800 |
| Subject: drm/msm: Do hw_init() before capturing GPU state |
| |
| From: Rob Clark <robdclark@chromium.org> |
| |
| commit e4840d537c2c6b1189d4de16ee0f4820e069dcea upstream. |
| |
| In particular, we need to ensure all the necessary blocks are switched |
| to 64b mode (a5xx+) otherwise the high bits of the address of the BO to |
| snapshot state into will be ignored, resulting in: |
| |
| *** gpu fault: ttbr0=0000000000000000 iova=0000000000012000 dir=READ type=TRANSLATION source=CP (0,0,0,0) |
| platform 506a000.gmu: [drm:a6xx_gmu_set_oob] *ERROR* Timeout waiting for GMU OOB set BOOT_SLUMBER: 0x0 |
| |
| Fixes: 4f776f4511c7 ("drm/msm/gpu: Convert the GPU show function to use the GPU state") |
| Signed-off-by: Rob Clark <robdclark@chromium.org> |
| Link: https://lore.kernel.org/r/20211108180122.487859-1-robdclark@gmail.com |
| Signed-off-by: Rob Clark <robdclark@chromium.org> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/gpu/drm/msm/msm_debugfs.c | 1 + |
| 1 file changed, 1 insertion(+) |
| |
| --- a/drivers/gpu/drm/msm/msm_debugfs.c |
| +++ b/drivers/gpu/drm/msm/msm_debugfs.c |
| @@ -77,6 +77,7 @@ static int msm_gpu_open(struct inode *in |
| goto free_priv; |
| |
| pm_runtime_get_sync(&gpu->pdev->dev); |
| + msm_gpu_hw_init(gpu); |
| show_priv->state = gpu->funcs->gpu_state_get(gpu); |
| pm_runtime_put_sync(&gpu->pdev->dev); |
| |