drm/amdgpu/vi: implement asic need_full_reset callback
authorAlex Deucher <alexander.deucher@amd.com>
Thu, 29 Mar 2018 19:39:28 +0000 (14:39 -0500)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 11 Apr 2018 18:07:58 +0000 (13:07 -0500)
Used to check on a per SoC basis whether the SoC needs
a full reset of a per IP soft reset.

Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Huang Rui <ray.huang@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
drivers/gpu/drm/amd/amdgpu/vi.c

index 126f1276d3470e4f9f7aec43dbb16fa2a52b9ec1..1b4ee249b95a5ef0c43d5de7ef641ca144984ca5 100644 (file)
@@ -876,6 +876,27 @@ static void vi_invalidate_hdp(struct amdgpu_device *adev,
        }
 }
 
+static bool vi_need_full_reset(struct amdgpu_device *adev)
+{
+       switch (adev->asic_type) {
+       case CHIP_CARRIZO:
+       case CHIP_STONEY:
+               /* CZ has hang issues with full reset at the moment */
+               return false;
+       case CHIP_FIJI:
+       case CHIP_TONGA:
+               /* XXX: soft reset should work on fiji and tonga */
+               return true;
+       case CHIP_POLARIS10:
+       case CHIP_POLARIS11:
+       case CHIP_POLARIS12:
+       case CHIP_TOPAZ:
+       default:
+               /* change this when we support soft reset */
+               return true;
+       }
+}
+
 static const struct amdgpu_asic_funcs vi_asic_funcs =
 {
        .read_disabled_bios = &vi_read_disabled_bios,
@@ -889,6 +910,7 @@ static const struct amdgpu_asic_funcs vi_asic_funcs =
        .get_config_memsize = &vi_get_config_memsize,
        .flush_hdp = &vi_flush_hdp,
        .invalidate_hdp = &vi_invalidate_hdp,
+       .need_full_reset = &vi_need_full_reset,
 };
 
 #define CZ_REV_BRISTOL(rev)     \