mirror of https://gitee.com/openkylin/linux.git
drm/etnaviv: Ignore MC when checking runtime suspend idleness
Without that runtime suspend is often blocked due to etnaviv_gpu_rpm_suspend() returning -EBUSY since the FE seems to trigger the MC in its idle loop. Ignoring the MC bit makes the GPU suspend as expected. This was tested on GC7000. Signed-off-by: Guido Günther <agx@sigxcpu.org> Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
This commit is contained in:
parent
b170455120
commit
1a910c11d3
|
@ -1835,8 +1835,9 @@ static int etnaviv_gpu_rpm_suspend(struct device *dev)
|
|||
if (atomic_read(&gpu->sched.hw_rq_count))
|
||||
return -EBUSY;
|
||||
|
||||
/* Check whether the hardware (except FE) is idle */
|
||||
mask = gpu->idle_mask & ~VIVS_HI_IDLE_STATE_FE;
|
||||
/* Check whether the hardware (except FE and MC) is idle */
|
||||
mask = gpu->idle_mask & ~(VIVS_HI_IDLE_STATE_FE |
|
||||
VIVS_HI_IDLE_STATE_MC);
|
||||
idle = gpu_read(gpu, VIVS_HI_IDLE_STATE) & mask;
|
||||
if (idle != mask)
|
||||
return -EBUSY;
|
||||
|
|
Loading…
Reference in New Issue