mirror of
https://github.com/hardkernel/linux.git
synced 2026-06-07 03:15:31 +09:00
drm/msm/adreno: fix zap vs no-zap handling
[ Upstream commit15ab987c42] We can have two cases, when it comes to "zap" fw. Either the fw requires zap fw to take the GPU out of secure mode at boot, or it does not and we can write RBBM_SECVID_TRUST_CNTL directly. Previously we decided based on whether zap fw load succeeded, but this is not a great plan because: 1) we could have zap fw in the filesystem on a device where it is not required 2) we could have the inverse case Instead, shift to deciding based on whether we have a 'zap-shader' node in dt. In practice, there is only one device (currently) with upstream dt that does not use zap (cheza), and it already has a /delete-node/ for the zap-shader node. Fixes:abccb9fe32("drm/msm/a6xx: Add zap shader load") Signed-off-by: Rob Clark <robdclark@chromium.org> Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
committed by
Greg Kroah-Hartman
parent
4aa148666a
commit
4a8bb7ce9f
@@ -726,11 +726,18 @@ static int a5xx_hw_init(struct msm_gpu *gpu)
|
||||
gpu->funcs->flush(gpu, gpu->rb[0]);
|
||||
if (!a5xx_idle(gpu, gpu->rb[0]))
|
||||
return -EINVAL;
|
||||
} else {
|
||||
/* Print a warning so if we die, we know why */
|
||||
} else if (ret == -ENODEV) {
|
||||
/*
|
||||
* This device does not use zap shader (but print a warning
|
||||
* just in case someone got their dt wrong.. hopefully they
|
||||
* have a debug UART to realize the error of their ways...
|
||||
* if you mess this up you are about to crash horribly)
|
||||
*/
|
||||
dev_warn_once(gpu->dev->dev,
|
||||
"Zap shader not enabled - using SECVID_TRUST_CNTL instead\n");
|
||||
gpu_write(gpu, REG_A5XX_RBBM_SECVID_TRUST_CNTL, 0x0);
|
||||
} else {
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* Last step - yield the ringbuffer */
|
||||
|
||||
@@ -537,12 +537,19 @@ static int a6xx_hw_init(struct msm_gpu *gpu)
|
||||
a6xx_flush(gpu, gpu->rb[0]);
|
||||
if (!a6xx_idle(gpu, gpu->rb[0]))
|
||||
return -EINVAL;
|
||||
} else {
|
||||
/* Print a warning so if we die, we know why */
|
||||
} else if (ret == -ENODEV) {
|
||||
/*
|
||||
* This device does not use zap shader (but print a warning
|
||||
* just in case someone got their dt wrong.. hopefully they
|
||||
* have a debug UART to realize the error of their ways...
|
||||
* if you mess this up you are about to crash horribly)
|
||||
*/
|
||||
dev_warn_once(gpu->dev->dev,
|
||||
"Zap shader not enabled - using SECVID_TRUST_CNTL instead\n");
|
||||
gpu_write(gpu, REG_A6XX_RBBM_SECVID_TRUST_CNTL, 0x0);
|
||||
ret = 0;
|
||||
} else {
|
||||
return ret;
|
||||
}
|
||||
|
||||
out:
|
||||
|
||||
Reference in New Issue
Block a user