[PATCH 6/9] drm/amdgpu: add reset_method asic callback for navi
Kevin Wang
kevwa at amd.com
Wed Jul 24 05:23:24 UTC 2019
Reviewed-by: Kevin Wang <kevin1.wang at amd.com>
On 7/24/19 1:00 PM, Alex Deucher wrote:
> Navi uses either mode1 or baco depending on various
> conditions.
>
> Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/nv.c | 15 ++++++++++++++-
> 1 file changed, 14 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/nv.c b/drivers/gpu/drm/amd/amdgpu/nv.c
> index 6c59b64b9bb1..bf4cbcdeef78 100644
> --- a/drivers/gpu/drm/amd/amdgpu/nv.c
> +++ b/drivers/gpu/drm/amd/amdgpu/nv.c
> @@ -289,6 +289,18 @@ static int nv_asic_mode1_reset(struct amdgpu_device *adev)
>
> return ret;
> }
> +
> +static enum amd_reset_method
> +nv_asic_reset_method(struct amdgpu_device *adev)
> +{
> + struct smu_context *smu = &adev->smu;
> +
> + if (smu_baco_is_support(smu))
> + return AMD_RESET_METHOD_BACO;
> + else
> + return AMD_RESET_METHOD_MODE1;
> +}
> +
> static int nv_asic_reset(struct amdgpu_device *adev)
> {
>
> @@ -303,7 +315,7 @@ static int nv_asic_reset(struct amdgpu_device *adev)
> int ret = 0;
> struct smu_context *smu = &adev->smu;
>
> - if (smu_baco_is_support(smu))
> + if (nv_asic_reset_method(adev) == AMD_RESET_METHOD_BACO)
> ret = smu_baco_reset(smu);
> else
> ret = nv_asic_mode1_reset(adev);
> @@ -500,6 +512,7 @@ static const struct amdgpu_asic_funcs nv_asic_funcs =
> .read_bios_from_rom = &nv_read_bios_from_rom,
> .read_register = &nv_read_register,
> .reset = &nv_asic_reset,
> + .reset_method = &nv_asic_reset_method,
> .set_vga_state = &nv_vga_set_state,
> .get_xclk = &nv_get_xclk,
> .set_uvd_clocks = &nv_set_uvd_clocks,
More information about the amd-gfx
mailing list