[PATCH 5/6] drm/amd/pp: Use release_firmware function directly in powerplay

Alex Deucher alexdeucher at gmail.com
Thu Mar 22 13:23:05 UTC 2018


On Thu, Mar 22, 2018 at 7:40 AM, Rex Zhu <Rex.Zhu at amd.com> wrote:
> Change-Id: I7e3c01d0d413bbada67c044b88f2e5f0a53f0b38
> Signed-off-by: Rex Zhu <Rex.Zhu at amd.com>

Please include a patch description.  E.g.,
Use release_firmware directly so we can remove the cgs firmware wrapper.

With that fixed:
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>

> ---
>  drivers/gpu/drm/amd/powerplay/amd_powerplay.c           | 5 ++++-
>  drivers/gpu/drm/amd/powerplay/inc/amd_powerplay.h       | 1 +
>  drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c        | 1 -
>  drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smumgr.c | 3 ++-
>  drivers/gpu/drm/amd/powerplay/smumgr/smu7_smumgr.c      | 1 -
>  5 files changed, 7 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/powerplay/amd_powerplay.c b/drivers/gpu/drm/amd/powerplay/amd_powerplay.c
> index 5717859..315e25c 100644
> --- a/drivers/gpu/drm/amd/powerplay/amd_powerplay.c
> +++ b/drivers/gpu/drm/amd/powerplay/amd_powerplay.c
> @@ -107,8 +107,11 @@ static int pp_sw_fini(void *handle)
>
>         hwmgr_sw_fini(hwmgr);
>
> -       if (adev->firmware.load_type == AMDGPU_FW_LOAD_SMU)
> +       if (adev->firmware.load_type == AMDGPU_FW_LOAD_SMU) {
> +               release_firmware(adev->pm.fw);
> +               adev->pm.fw = NULL;
>                 amdgpu_ucode_fini_bo(adev);
> +       }
>
>         return 0;
>  }
> diff --git a/drivers/gpu/drm/amd/powerplay/inc/amd_powerplay.h b/drivers/gpu/drm/amd/powerplay/inc/amd_powerplay.h
> index fe36659..c7d6533 100644
> --- a/drivers/gpu/drm/amd/powerplay/inc/amd_powerplay.h
> +++ b/drivers/gpu/drm/amd/powerplay/inc/amd_powerplay.h
> @@ -31,5 +31,6 @@
>  #include "dm_pp_interface.h"
>  #include "kgd_pp_interface.h"
>  #include "amdgpu.h"
> +#include <linux/firmware.h>
>
>  #endif /* _AMD_POWERPLAY_H_ */
> diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c b/drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c
> index 08d0001..e30a2ee 100644
> --- a/drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c
> +++ b/drivers/gpu/drm/amd/powerplay/smumgr/ci_smumgr.c
> @@ -2784,7 +2784,6 @@ static int ci_smu_fini(struct pp_hwmgr *hwmgr)
>  {
>         kfree(hwmgr->smu_backend);
>         hwmgr->smu_backend = NULL;
> -       cgs_rel_firmware(hwmgr->device, CGS_UCODE_ID_SMU);
>         return 0;
>  }
>
> diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smumgr.c b/drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smumgr.c
> index b861c26..3e80d61 100644
> --- a/drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smumgr.c
> +++ b/drivers/gpu/drm/amd/powerplay/smumgr/polaris10_smumgr.c
> @@ -308,7 +308,8 @@ static int polaris10_start_smu(struct pp_hwmgr *hwmgr)
>                         /* If failed, try with different security Key. */
>                         if (result != 0) {
>                                 smu_data->smu7_data.security_hard_key ^= 1;
> -                               cgs_rel_firmware(hwmgr->device, CGS_UCODE_ID_SMU);
> +                               release_firmware(((struct amdgpu_device *)hwmgr->adev)->pm.fw);
> +                               ((struct amdgpu_device *)hwmgr->adev)->pm.fw = NULL;
>                                 result = polaris10_start_smu_in_protection_mode(hwmgr);
>                         }
>                 }
> diff --git a/drivers/gpu/drm/amd/powerplay/smumgr/smu7_smumgr.c b/drivers/gpu/drm/amd/powerplay/smumgr/smu7_smumgr.c
> index 3684822..41fab2d 100644
> --- a/drivers/gpu/drm/amd/powerplay/smumgr/smu7_smumgr.c
> +++ b/drivers/gpu/drm/amd/powerplay/smumgr/smu7_smumgr.c
> @@ -650,6 +650,5 @@ int smu7_smu_fini(struct pp_hwmgr *hwmgr)
>
>         kfree(hwmgr->smu_backend);
>         hwmgr->smu_backend = NULL;
> -       cgs_rel_firmware(hwmgr->device, CGS_UCODE_ID_SMU);
>         return 0;
>  }
> --
> 1.9.1
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


More information about the amd-gfx mailing list