On 2018-09-11 10:44 AM, Alex Deucher wrote: > On Mon, Sep 10, 2018 at 4:34 PM James Zhu <jzhums at gmail.com> wrote: >> Signed-off-by: James Zhu <James.Zhu at amd.com> >> >> When VCN PG state is unchanged, it is unnecessary to reset >> power gate state again. > Don't you need to initialize and store the PG state somewhere? You > are just using a local variable here. > > Alex > Hi Alex, I used */static/* for this local state variable(*cur_state*) with initialization state AMD_PG_STATE_GATE. this variable's scope is only inside this function, but it's initialization is done once at compile time and it's lifetime will last until the driver exit. Since it is only used inside this function, I didn't put it into struct amdgpu_vcn. Best Regards! James Zhu >> --- >> drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c | 13 +++++++++++-- >> 1 file changed, 11 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c b/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c >> index 2664bb2..86d98d2 100644 >> --- a/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c >> +++ b/drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c >> @@ -1633,12 +1633,21 @@ static int vcn_v1_0_set_powergating_state(void *handle, >> * revisit this when there is a cleaner line between >> * the smc and the hw blocks >> */ >> + int ret; >> + static enum amd_powergating_state cur_state = AMD_PG_STATE_GATE; >> struct amdgpu_device *adev = (struct amdgpu_device *)handle; >> >> + if (state == cur_state) >> + return 0; >> + >> if (state == AMD_PG_STATE_GATE) >> - return vcn_v1_0_stop(adev); >> + ret = vcn_v1_0_stop(adev); >> else >> - return vcn_v1_0_start(adev); >> + ret = vcn_v1_0_start(adev); >> + >> + if (!ret) >> + cur_state = state; >> + return ret; >> } >> >> static const struct amd_ip_funcs vcn_v1_0_ip_funcs = { >> -- >> 2.7.4 >> >> _______________________________________________ >> amd-gfx mailing list >> amd-gfx at lists.freedesktop.org >> https://lists.freedesktop.org/mailman/listinfo/amd-gfx -------------- next part -------------- An HTML attachment was scrubbed... URL: <https://lists.freedesktop.org/archives/amd-gfx/attachments/20180911/f1c35660/attachment.html>