[AMD Official Use Only - Internal Distribution Only]
Yes.
These two APIs get called only during hw/smu initialization. And although there needs hw initialization also on resume/gpu reset.
They share no race conditions(there cannot be another gpu reset/resume unless current gpu reset/resume done).
BR
Evan
From: amd-gfx <amd-gfx-bounces@xxxxxxxxxxxxxxxxxxxxx>
On Behalf Of Deucher, Alexander
Sent: Friday, August 28, 2020 10:16 PM
To: Das, Nirmoy <Nirmoy.Das@xxxxxxx>; amd-gfx@xxxxxxxxxxxxxxxxxxxxx; Koenig, Christian <Christian.Koenig@xxxxxxx>
Subject: Re: [PATCH 1/4] drm/amd/pm: drop unnecessary feature->mutex lock protections(V2)
[AMD Official Use Only - Internal Distribution Only]
[AMD Official Use Only - Internal Distribution Only]
This code gets called during suspend and resume and GPU reset as well. Are those cases properly covered?
The explanation sounds sane, but since I don't know the affected code at
all the series is only Acked-by: Christian König <christian.koenig@xxxxxxx>
Maybe wait for Alex to give you an rb if you are unsure, otherwise feel
free to commit.
Christian.
Am 27.08.20 um 08:39 schrieb Nirmoy:
> Series is Acked-by: Nirmoy Das <nirmoy.das@xxxxxxx>
>
>
> On 8/25/20 9:49 AM, Evan Quan wrote:
>> As these operations are performed in hardware setup and there
>> is actually no race conditions during this period considering:
>> 1. the hardware setup is serial and cannnot be in parallel
>> 2. all other operations can be performed only after hardware
>> setup complete.
>>
>> V2: rich the commit log description
>>
>> Change-Id: I096d7ab0855ff59b0ecb56fd9d6d9946b3605fc8
>> Signed-off-by: Evan Quan <evan.quan@xxxxxxx>
>> ---
>> drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c | 4 ----
>> drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c | 2 --
>> 2 files changed, 6 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
>> b/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
>> index 09dc5303762b..b7cad8ef6153 100644
>> --- a/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
>> +++ b/drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c
>> @@ -361,20 +361,16 @@ static int
>> smu_get_driver_allowed_feature_mask(struct smu_context *smu)
>> int ret = 0;
>> uint32_t allowed_feature_mask[SMU_FEATURE_MAX/32];
>> - mutex_lock(&feature->mutex);
>> bitmap_zero(feature->allowed, SMU_FEATURE_MAX);
>> - mutex_unlock(&feature->mutex);
>> ret = smu_get_allowed_feature_mask(smu, allowed_feature_mask,
>> SMU_FEATURE_MAX/32);
>> if (ret)
>> return ret;
>> - mutex_lock(&feature->mutex);
>> bitmap_or(feature->allowed, feature->allowed,
>> (unsigned long *)allowed_feature_mask,
>> feature->feature_num);
>> - mutex_unlock(&feature->mutex);
>> return ret;
>> }
>> diff --git a/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c
>> b/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c
>> index 548db1edd352..28a19ffd22a1 100644
>> --- a/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c
>> +++ b/drivers/gpu/drm/amd/pm/swsmu/smu11/smu_v11_0.c
>> @@ -721,7 +721,6 @@ int smu_v11_0_set_allowed_mask(struct smu_context
>> *smu)
>> int ret = 0;
>> uint32_t feature_mask[2];
>> - mutex_lock(&feature->mutex);
>> if (bitmap_empty(feature->allowed, SMU_FEATURE_MAX) ||
>> feature->feature_num < 64)
>> goto failed;
>> @@ -738,7 +737,6 @@ int smu_v11_0_set_allowed_mask(struct
>> smu_context *smu)
>> goto failed;
>> failed:
>> - mutex_unlock(&feature->mutex);
>> return ret;
>> }
> _______________________________________________
> amd-gfx mailing list
> amd-gfx@xxxxxxxxxxxxxxxxxxxxx
>
https://nam11.safelinks.protection.outlook.com/?url="">
_______________________________________________
amd-gfx mailing list
amd-gfx@xxxxxxxxxxxxxxxxxxxxx
https://nam11.safelinks.protection.outlook.com/?url="">
|
_______________________________________________
amd-gfx mailing list
amd-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/amd-gfx