|
@@ -1715,6 +1715,18 @@ static void cik_detect_hw_virtualization(struct amdgpu_device *adev)
|
|
|
adev->virt.caps |= AMDGPU_PASSTHROUGH_MODE;
|
|
|
}
|
|
|
|
|
|
+static void cik_flush_hdp(struct amdgpu_device *adev)
|
|
|
+{
|
|
|
+ WREG32(mmHDP_MEM_COHERENCY_FLUSH_CNTL, 1);
|
|
|
+ RREG32(mmHDP_MEM_COHERENCY_FLUSH_CNTL);
|
|
|
+}
|
|
|
+
|
|
|
+static void cik_invalidate_hdp(struct amdgpu_device *adev)
|
|
|
+{
|
|
|
+ WREG32(mmHDP_DEBUG0, 1);
|
|
|
+ RREG32(mmHDP_DEBUG0);
|
|
|
+}
|
|
|
+
|
|
|
static const struct amdgpu_asic_funcs cik_asic_funcs =
|
|
|
{
|
|
|
.read_disabled_bios = &cik_read_disabled_bios,
|
|
@@ -1726,6 +1738,8 @@ static const struct amdgpu_asic_funcs cik_asic_funcs =
|
|
|
.set_uvd_clocks = &cik_set_uvd_clocks,
|
|
|
.set_vce_clocks = &cik_set_vce_clocks,
|
|
|
.get_config_memsize = &cik_get_config_memsize,
|
|
|
+ .flush_hdp = &cik_flush_hdp,
|
|
|
+ .invalidate_hdp = &cik_invalidate_hdp,
|
|
|
};
|
|
|
|
|
|
static int cik_common_early_init(void *handle)
|