aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd/amdgpu/dce_virtual.c
diff options
context:
space:
mode:
authorEmily Deng <Emily.Deng@amd.com>2016-08-07 23:33:11 -0400
committerAlex Deucher <alexander.deucher@amd.com>2016-08-08 14:04:37 -0400
commit83c9b0253b1136b1312fd2a0bfd173f625c65091 (patch)
treef876ef61fd5c8728c5328763f13fe4d31c7342b4 /drivers/gpu/drm/amd/amdgpu/dce_virtual.c
parent0bad1619ff5cce53964785a9faedcfb1d4810223 (diff)
drm/amdgpu: Disable VGA render and crtc when init GMC.
For virtual display feature, when the GPU has DCE engine, need to disable the VGA render and CRTC, or it will hang when initialize GMC. Signed-off-by: Emily Deng <Emily.Deng@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/amdgpu/dce_virtual.c')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/dce_virtual.c32
1 files changed, 29 insertions, 3 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/dce_virtual.c b/drivers/gpu/drm/amd/amdgpu/dce_virtual.c
index d6802be0ea39..c7da45c2c8fe 100644
--- a/drivers/gpu/drm/amd/amdgpu/dce_virtual.c
+++ b/drivers/gpu/drm/amd/amdgpu/dce_virtual.c
@@ -25,11 +25,13 @@
25#include "amdgpu_pm.h" 25#include "amdgpu_pm.h"
26#include "amdgpu_i2c.h" 26#include "amdgpu_i2c.h"
27#include "atom.h" 27#include "atom.h"
28#include "amdgpu_atombios.h"
29#include "atombios_crtc.h"
30#include "atombios_encoders.h"
31#include "amdgpu_pll.h" 28#include "amdgpu_pll.h"
32#include "amdgpu_connectors.h" 29#include "amdgpu_connectors.h"
30#ifdef CONFIG_DRM_AMDGPU_CIK
31#include "dce_v8_0.h"
32#endif
33#include "dce_v10_0.h"
34#include "dce_v11_0.h"
33 35
34static void dce_virtual_set_display_funcs(struct amdgpu_device *adev); 36static void dce_virtual_set_display_funcs(struct amdgpu_device *adev);
35static void dce_virtual_set_irq_funcs(struct amdgpu_device *adev); 37static void dce_virtual_set_irq_funcs(struct amdgpu_device *adev);
@@ -98,6 +100,30 @@ static bool dce_virtual_is_display_hung(struct amdgpu_device *adev)
98void dce_virtual_stop_mc_access(struct amdgpu_device *adev, 100void dce_virtual_stop_mc_access(struct amdgpu_device *adev,
99 struct amdgpu_mode_mc_save *save) 101 struct amdgpu_mode_mc_save *save)
100{ 102{
103 switch (adev->asic_type) {
104 case CHIP_BONAIRE:
105 case CHIP_HAWAII:
106 case CHIP_KAVERI:
107 case CHIP_KABINI:
108 case CHIP_MULLINS:
109#ifdef CONFIG_DRM_AMDGPU_CIK
110 dce_v8_0_disable_dce(adev);
111#endif
112 break;
113 case CHIP_FIJI:
114 case CHIP_TONGA:
115 dce_v10_0_disable_dce(adev);
116 break;
117 case CHIP_CARRIZO:
118 case CHIP_STONEY:
119 case CHIP_POLARIS11:
120 case CHIP_POLARIS10:
121 dce_v11_0_disable_dce(adev);
122 break;
123 default:
124 DRM_ERROR("Usupported ASIC type: 0x%X\n", adev->asic_type);
125 }
126
101 return; 127 return;
102} 128}
103void dce_virtual_resume_mc_access(struct amdgpu_device *adev, 129void dce_virtual_resume_mc_access(struct amdgpu_device *adev,