[Freedreno] [PATCH] drm/msm/a5xx: Add support for Adreno 506 GPU

Dmitry Baryshkov dmitry.baryshkov at linaro.org
Fri Dec 3 18:51:10 UTC 2021


On 22/10/2021 20:33, Bjorn Andersson wrote:
> On Fri 22 Oct 04:43 PDT 2021, Vladimir Lypak wrote:
> 
>> This GPU is found on SoCs such as MSM8953(650MHz), SDM450(600MHz),
>> SDM632(725MHz).
>>
>> Signed-off-by: Vladimir Lypak <vladimir.lypak at gmail.com>
>> ---
>>   drivers/gpu/drm/msm/adreno/a5xx_gpu.c      | 34 ++++++++++++++--------
>>   drivers/gpu/drm/msm/adreno/adreno_device.c | 18 ++++++++++++
>>   drivers/gpu/drm/msm/adreno/adreno_gpu.h    |  5 ++++
>>   3 files changed, 45 insertions(+), 12 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/msm/adreno/a5xx_gpu.c b/drivers/gpu/drm/msm/adreno/a5xx_gpu.c
>> index 5e2750eb3810..249a0d8bc673 100644
>> --- a/drivers/gpu/drm/msm/adreno/a5xx_gpu.c
>> +++ b/drivers/gpu/drm/msm/adreno/a5xx_gpu.c
>> @@ -441,7 +441,7 @@ void a5xx_set_hwcg(struct msm_gpu *gpu, bool state)
>>   	const struct adreno_five_hwcg_regs *regs;
>>   	unsigned int i, sz;
>>   
>> -	if (adreno_is_a508(adreno_gpu)) {
>> +	if (adreno_is_a506(adreno_gpu) || adreno_is_a508(adreno_gpu)) {
>>   		regs = a50x_hwcg;
>>   		sz = ARRAY_SIZE(a50x_hwcg);
>>   	} else if (adreno_is_a509(adreno_gpu) || adreno_is_a512(adreno_gpu)) {
>> @@ -485,7 +485,7 @@ static int a5xx_me_init(struct msm_gpu *gpu)
>>   	OUT_RING(ring, 0x00000000);
>>   
>>   	/* Specify workarounds for various microcode issues */
>> -	if (adreno_is_a530(adreno_gpu)) {
>> +	if (adreno_is_a506(adreno_gpu) || adreno_is_a530(adreno_gpu)) {
>>   		/* Workaround for token end syncs
>>   		 * Force a WFI after every direct-render 3D mode draw and every
>>   		 * 2D mode 3 draw
>> @@ -620,8 +620,17 @@ static int a5xx_ucode_init(struct msm_gpu *gpu)
>>   
>>   static int a5xx_zap_shader_resume(struct msm_gpu *gpu)
>>   {
>> +	struct adreno_gpu *adreno_gpu = to_adreno_gpu(gpu);
>>   	int ret;
>>   
>> +	/*
>> +	 * Adreno 506,508,512 have CPZ Retention feature and
>> +	 * don't need to resume zap shader
>> +	 */
>> +	if (adreno_is_a506(adreno_gpu) || adreno_is_a508(adreno_gpu) ||
>> +	    adreno_is_a512(adreno_gpu))
>> +		return 0;
> 
> Afaict all other changes in the patch adds a506 support, but this hunk
> changes a508 and a512 behavior.
> 
> I'm not saying that the change is wrong, but this hunk deserves to be in
> it's own patch - so that if there's any impact on those other versions
> it can be tracked down to that specific patch.

Vladimir, any plans to submit v2? This comment requests splitting the 
patch in two.


-- 
With best wishes
Dmitry


More information about the Freedreno mailing list