]> Git Repo - linux.git/blobdiff - drivers/gpu/drm/amd/amdgpu/cik.c
Merge branch 'drm-next-4.17' of git://people.freedesktop.org/~agd5f/linux into drm...
[linux.git] / drivers / gpu / drm / amd / amdgpu / cik.c
index 8e59e65efd448891fc9d84a7db6e1669c2b892eb..0df22030e71372b33a487cbff28f5d23df9d2a22 100644 (file)
@@ -67,7 +67,6 @@
 
 #include "amdgpu_dm.h"
 #include "amdgpu_amdkfd.h"
-#include "amdgpu_powerplay.h"
 #include "dce_virtual.h"
 
 /*
@@ -1715,6 +1714,27 @@ 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, struct amdgpu_ring *ring)
+{
+       if (!ring || !ring->funcs->emit_wreg) {
+               WREG32(mmHDP_MEM_COHERENCY_FLUSH_CNTL, 1);
+               RREG32(mmHDP_MEM_COHERENCY_FLUSH_CNTL);
+       } else {
+               amdgpu_ring_emit_wreg(ring, mmHDP_MEM_COHERENCY_FLUSH_CNTL, 1);
+       }
+}
+
+static void cik_invalidate_hdp(struct amdgpu_device *adev,
+                              struct amdgpu_ring *ring)
+{
+       if (!ring || !ring->funcs->emit_wreg) {
+               WREG32(mmHDP_DEBUG0, 1);
+               RREG32(mmHDP_DEBUG0);
+       } else {
+               amdgpu_ring_emit_wreg(ring, mmHDP_DEBUG0, 1);
+       }
+}
+
 static const struct amdgpu_asic_funcs cik_asic_funcs =
 {
        .read_disabled_bios = &cik_read_disabled_bios,
@@ -1726,6 +1746,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)
@@ -1864,10 +1886,6 @@ static int cik_common_early_init(void *handle)
                return -EINVAL;
        }
 
-       adev->firmware.load_type = amdgpu_ucode_get_load_type(adev, amdgpu_fw_load_type);
-
-       amdgpu_device_get_pcie_info(adev);
-
        return 0;
 }
 
@@ -1977,7 +1995,10 @@ int cik_set_ip_blocks(struct amdgpu_device *adev)
                amdgpu_device_ip_block_add(adev, &cik_common_ip_block);
                amdgpu_device_ip_block_add(adev, &gmc_v7_0_ip_block);
                amdgpu_device_ip_block_add(adev, &cik_ih_ip_block);
-               amdgpu_device_ip_block_add(adev, &amdgpu_pp_ip_block);
+               if (amdgpu_dpm == -1)
+                       amdgpu_device_ip_block_add(adev, &ci_smu_ip_block);
+               else
+                       amdgpu_device_ip_block_add(adev, &pp_smu_ip_block);
                if (adev->enable_virtual_display)
                        amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);
 #if defined(CONFIG_DRM_AMD_DC)
@@ -1995,7 +2016,10 @@ int cik_set_ip_blocks(struct amdgpu_device *adev)
                amdgpu_device_ip_block_add(adev, &cik_common_ip_block);
                amdgpu_device_ip_block_add(adev, &gmc_v7_0_ip_block);
                amdgpu_device_ip_block_add(adev, &cik_ih_ip_block);
-               amdgpu_device_ip_block_add(adev, &amdgpu_pp_ip_block);
+               if (amdgpu_dpm == -1)
+                       amdgpu_device_ip_block_add(adev, &ci_smu_ip_block);
+               else
+                       amdgpu_device_ip_block_add(adev, &pp_smu_ip_block);
                if (adev->enable_virtual_display)
                        amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);
 #if defined(CONFIG_DRM_AMD_DC)
@@ -2013,7 +2037,7 @@ int cik_set_ip_blocks(struct amdgpu_device *adev)
                amdgpu_device_ip_block_add(adev, &cik_common_ip_block);
                amdgpu_device_ip_block_add(adev, &gmc_v7_0_ip_block);
                amdgpu_device_ip_block_add(adev, &cik_ih_ip_block);
-               amdgpu_device_ip_block_add(adev, &amdgpu_pp_ip_block);
+               amdgpu_device_ip_block_add(adev, &kv_smu_ip_block);
                if (adev->enable_virtual_display)
                        amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);
 #if defined(CONFIG_DRM_AMD_DC)
@@ -2032,7 +2056,7 @@ int cik_set_ip_blocks(struct amdgpu_device *adev)
                amdgpu_device_ip_block_add(adev, &cik_common_ip_block);
                amdgpu_device_ip_block_add(adev, &gmc_v7_0_ip_block);
                amdgpu_device_ip_block_add(adev, &cik_ih_ip_block);
-               amdgpu_device_ip_block_add(adev, &amdgpu_pp_ip_block);
+               amdgpu_device_ip_block_add(adev, &kv_smu_ip_block);
                if (adev->enable_virtual_display)
                        amdgpu_device_ip_block_add(adev, &dce_virtual_ip_block);
 #if defined(CONFIG_DRM_AMD_DC)
This page took 0.037039 seconds and 4 git commands to generate.