[PATCH] drm/amdgpu: Fix none-powerplay issue when load driver on emulation mode
Alex Deucher
alexdeucher at gmail.com
Tue Feb 6 19:36:45 UTC 2018
On Tue, Feb 6, 2018 at 2:34 PM, Shaoyun Liu <Shaoyun.Liu at amd.com> wrote:
> On emulation mode , driver will be loaded with powerplay disabled
>
> Change-Id: I22c343d990f9a306b033728a1cb560c1e8a4677f
> Signed-off-by: Shaoyun Liu <Shaoyun.Liu at amd.com>
Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c | 8 ++++++++
> drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 3 +++
> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c | 6 ++++--
> 3 files changed, 15 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
> index 2d99099..7bca99d 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd.c
> @@ -398,6 +398,11 @@ void get_local_mem_info(struct kgd_dev *kgd,
> mem_info->local_mem_size_public,
> mem_info->local_mem_size_private);
>
> + if (amdgpu_emu_mode == 1) {
> + mem_info->mem_clk_max = 100;
> + return;
> + }
> +
> if (amdgpu_sriov_vf(adev))
> mem_info->mem_clk_max = adev->clock.default_mclk / 100;
> else
> @@ -418,6 +423,9 @@ uint32_t get_max_engine_clock_in_mhz(struct kgd_dev *kgd)
> struct amdgpu_device *adev = (struct amdgpu_device *)kgd;
>
> /* the sclk is in quantas of 10kHz */
> + if (amdgpu_emu_mode == 1)
> + return 100;
> +
> if (amdgpu_sriov_vf(adev))
> return adev->clock.default_sclk / 100;
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> index fe7a941..ab6068c 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
> @@ -1420,6 +1420,9 @@ static int amdgpu_device_ip_late_set_cg_state(struct amdgpu_device *adev)
> {
> int i = 0, r;
>
> + if (amdgpu_emu_mode == 1)
> + return 0;
> +
> for (i = 0; i < adev->num_ip_blocks; i++) {
> if (!adev->ip_blocks[i].status.valid)
> continue;
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> index 6270131..1b2b039 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c
> @@ -2372,7 +2372,8 @@ int amdgpu_vm_init(struct amdgpu_device *adev, struct amdgpu_vm *vm,
> mutex_lock(&id_mgr->lock);
>
> if ((adev->vm_manager.n_compute_vms++ == 0) &&
> - (!amdgpu_sriov_vf(adev))) {
> + (!amdgpu_sriov_vf(adev)) &&
> + (amdgpu_emu_mode != 1)) {
> /* First Compute VM: enable compute power profile */
> if (adev->powerplay.pp_funcs->switch_power_profile)
> amdgpu_dpm_switch_power_profile(adev,
> @@ -2461,7 +2462,8 @@ void amdgpu_vm_fini(struct amdgpu_device *adev, struct amdgpu_vm *vm)
> WARN(adev->vm_manager.n_compute_vms == 0, "Unbalanced number of Compute VMs");
>
> if ((--adev->vm_manager.n_compute_vms == 0) &&
> - (!amdgpu_sriov_vf(adev))) {
> + (!amdgpu_sriov_vf(adev)) &&
> + (amdgpu_emu_mode != 1)) {
> /* Last KFD VM: enable graphics power profile */
> if (adev->powerplay.pp_funcs->switch_power_profile)
> amdgpu_dpm_switch_power_profile(adev,
> --
> 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