[ADRENO_FW_PFP] = "a300_pfp.fw",
                },
                .gmem  = SZ_256K,
+               .inactive_period = DRM_MSM_INACTIVE_PERIOD,
                .init  = a3xx_gpu_init,
        }, {
                .rev   = ADRENO_REV(3, 0, 6, 0),
                        [ADRENO_FW_PFP] = "a300_pfp.fw",
                },
                .gmem  = SZ_128K,
+               .inactive_period = DRM_MSM_INACTIVE_PERIOD,
                .init  = a3xx_gpu_init,
        }, {
                .rev   = ADRENO_REV(3, 2, ANY_ID, ANY_ID),
                        [ADRENO_FW_PFP] = "a300_pfp.fw",
                },
                .gmem  = SZ_512K,
+               .inactive_period = DRM_MSM_INACTIVE_PERIOD,
                .init  = a3xx_gpu_init,
        }, {
                .rev   = ADRENO_REV(3, 3, 0, ANY_ID),
                        [ADRENO_FW_PFP] = "a330_pfp.fw",
                },
                .gmem  = SZ_1M,
+               .inactive_period = DRM_MSM_INACTIVE_PERIOD,
                .init  = a3xx_gpu_init,
        }, {
                .rev   = ADRENO_REV(4, 2, 0, ANY_ID),
                        [ADRENO_FW_PFP] = "a420_pfp.fw",
                },
                .gmem  = (SZ_1M + SZ_512K),
+               .inactive_period = DRM_MSM_INACTIVE_PERIOD,
                .init  = a4xx_gpu_init,
        }, {
                .rev   = ADRENO_REV(4, 3, 0, ANY_ID),
                        [ADRENO_FW_PFP] = "a420_pfp.fw",
                },
                .gmem  = (SZ_1M + SZ_512K),
+               .inactive_period = DRM_MSM_INACTIVE_PERIOD,
                .init  = a4xx_gpu_init,
        }, {
                .rev = ADRENO_REV(5, 3, 0, 2),
                        [ADRENO_FW_GPMU] = "a530v3_gpmu.fw2",
                },
                .gmem = SZ_1M,
+               /*
+                * Increase inactive period to 250 to avoid bouncing
+                * the GDSC which appears to make it grumpy
+                */
+               .inactive_period = 250,
                .quirks = ADRENO_QUIRK_TWO_PASS_USE_WFI |
                        ADRENO_QUIRK_FAULT_DETECT_MASK,
                .init = a5xx_gpu_init,
        mutex_lock(&dev->struct_mutex);
        ret = msm_gpu_hw_init(gpu);
        mutex_unlock(&dev->struct_mutex);
-       pm_runtime_put_sync(&pdev->dev);
+       pm_runtime_put_autosuspend(&pdev->dev);
        if (ret) {
                dev_err(dev->dev, "gpu hw init failed: %d\n", ret);
                return NULL;