aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/amd
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/gpu/drm/amd')
-rw-r--r--drivers/gpu/drm/amd/amdgpu/amdgpu_device.c2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/atom.c2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/dce_v10_0.c2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/dce_v11_0.c2
-rw-r--r--drivers/gpu/drm/amd/amdgpu/dce_v6_0.c3
-rw-r--r--drivers/gpu/drm/amd/amdgpu/dce_v8_0.c2
-rw-r--r--drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c11
7 files changed, 15 insertions, 9 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
index 8a078f4ae73d..28bccceaa363 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
@@ -2708,7 +2708,7 @@ void amdgpu_device_fini(struct amdgpu_device *adev)
2708 amdgpu_irq_disable_all(adev); 2708 amdgpu_irq_disable_all(adev);
2709 if (adev->mode_info.mode_config_initialized){ 2709 if (adev->mode_info.mode_config_initialized){
2710 if (!amdgpu_device_has_dc_support(adev)) 2710 if (!amdgpu_device_has_dc_support(adev))
2711 drm_crtc_force_disable_all(adev->ddev); 2711 drm_helper_force_disable_all(adev->ddev);
2712 else 2712 else
2713 drm_atomic_helper_shutdown(adev->ddev); 2713 drm_atomic_helper_shutdown(adev->ddev);
2714 } 2714 }
diff --git a/drivers/gpu/drm/amd/amdgpu/atom.c b/drivers/gpu/drm/amd/amdgpu/atom.c
index e9934de1b9cf..dd30f4e61a8c 100644
--- a/drivers/gpu/drm/amd/amdgpu/atom.c
+++ b/drivers/gpu/drm/amd/amdgpu/atom.c
@@ -27,6 +27,8 @@
27#include <linux/slab.h> 27#include <linux/slab.h>
28#include <asm/unaligned.h> 28#include <asm/unaligned.h>
29 29
30#include <drm/drm_util.h>
31
30#define ATOM_DEBUG 32#define ATOM_DEBUG
31 33
32#include "atom.h" 34#include "atom.h"
diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
index 4cfecdce29a3..1f0426d2fc2a 100644
--- a/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
@@ -1682,7 +1682,7 @@ static void dce_v10_0_afmt_setmode(struct drm_encoder *encoder,
1682 dce_v10_0_audio_write_sad_regs(encoder); 1682 dce_v10_0_audio_write_sad_regs(encoder);
1683 dce_v10_0_audio_write_latency_fields(encoder, mode); 1683 dce_v10_0_audio_write_latency_fields(encoder, mode);
1684 1684
1685 err = drm_hdmi_avi_infoframe_from_display_mode(&frame, mode, false); 1685 err = drm_hdmi_avi_infoframe_from_display_mode(&frame, connector, mode);
1686 if (err < 0) { 1686 if (err < 0) {
1687 DRM_ERROR("failed to setup AVI infoframe: %zd\n", err); 1687 DRM_ERROR("failed to setup AVI infoframe: %zd\n", err);
1688 return; 1688 return;
diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c
index 7c868916d90f..2280b971d758 100644
--- a/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/dce_v11_0.c
@@ -1724,7 +1724,7 @@ static void dce_v11_0_afmt_setmode(struct drm_encoder *encoder,
1724 dce_v11_0_audio_write_sad_regs(encoder); 1724 dce_v11_0_audio_write_sad_regs(encoder);
1725 dce_v11_0_audio_write_latency_fields(encoder, mode); 1725 dce_v11_0_audio_write_latency_fields(encoder, mode);
1726 1726
1727 err = drm_hdmi_avi_infoframe_from_display_mode(&frame, mode, false); 1727 err = drm_hdmi_avi_infoframe_from_display_mode(&frame, connector, mode);
1728 if (err < 0) { 1728 if (err < 0) {
1729 DRM_ERROR("failed to setup AVI infoframe: %zd\n", err); 1729 DRM_ERROR("failed to setup AVI infoframe: %zd\n", err);
1730 return; 1730 return;
diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c
index 17eaaba36017..db443ec53d3a 100644
--- a/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/dce_v6_0.c
@@ -1423,6 +1423,7 @@ static void dce_v6_0_audio_set_avi_infoframe(struct drm_encoder *encoder,
1423 struct amdgpu_device *adev = dev->dev_private; 1423 struct amdgpu_device *adev = dev->dev_private;
1424 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder); 1424 struct amdgpu_encoder *amdgpu_encoder = to_amdgpu_encoder(encoder);
1425 struct amdgpu_encoder_atom_dig *dig = amdgpu_encoder->enc_priv; 1425 struct amdgpu_encoder_atom_dig *dig = amdgpu_encoder->enc_priv;
1426 struct drm_connector *connector = amdgpu_get_connector_for_encoder(encoder);
1426 struct hdmi_avi_infoframe frame; 1427 struct hdmi_avi_infoframe frame;
1427 u8 buffer[HDMI_INFOFRAME_HEADER_SIZE + HDMI_AVI_INFOFRAME_SIZE]; 1428 u8 buffer[HDMI_INFOFRAME_HEADER_SIZE + HDMI_AVI_INFOFRAME_SIZE];
1428 uint8_t *payload = buffer + 3; 1429 uint8_t *payload = buffer + 3;
@@ -1430,7 +1431,7 @@ static void dce_v6_0_audio_set_avi_infoframe(struct drm_encoder *encoder,
1430 ssize_t err; 1431 ssize_t err;
1431 u32 tmp; 1432 u32 tmp;
1432 1433
1433 err = drm_hdmi_avi_infoframe_from_display_mode(&frame, mode, false); 1434 err = drm_hdmi_avi_infoframe_from_display_mode(&frame, connector, mode);
1434 if (err < 0) { 1435 if (err < 0) {
1435 DRM_ERROR("failed to setup AVI infoframe: %zd\n", err); 1436 DRM_ERROR("failed to setup AVI infoframe: %zd\n", err);
1436 return; 1437 return;
diff --git a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
index 8c0576978d36..13da915991dd 100644
--- a/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
+++ b/drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
@@ -1616,7 +1616,7 @@ static void dce_v8_0_afmt_setmode(struct drm_encoder *encoder,
1616 dce_v8_0_audio_write_sad_regs(encoder); 1616 dce_v8_0_audio_write_sad_regs(encoder);
1617 dce_v8_0_audio_write_latency_fields(encoder, mode); 1617 dce_v8_0_audio_write_latency_fields(encoder, mode);
1618 1618
1619 err = drm_hdmi_avi_infoframe_from_display_mode(&frame, mode, false); 1619 err = drm_hdmi_avi_infoframe_from_display_mode(&frame, connector, mode);
1620 if (err < 0) { 1620 if (err < 0) {
1621 DRM_ERROR("failed to setup AVI infoframe: %zd\n", err); 1621 DRM_ERROR("failed to setup AVI infoframe: %zd\n", err);
1622 return; 1622 return;
diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
index 5e7ca1f3a8d1..24632727e127 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c
@@ -191,6 +191,7 @@ dm_dp_mst_connector_destroy(struct drm_connector *connector)
191 drm_encoder_cleanup(&amdgpu_encoder->base); 191 drm_encoder_cleanup(&amdgpu_encoder->base);
192 kfree(amdgpu_encoder); 192 kfree(amdgpu_encoder);
193 drm_connector_cleanup(connector); 193 drm_connector_cleanup(connector);
194 drm_dp_mst_put_port_malloc(amdgpu_dm_connector->port);
194 kfree(amdgpu_dm_connector); 195 kfree(amdgpu_dm_connector);
195} 196}
196 197
@@ -363,7 +364,9 @@ dm_dp_add_mst_connector(struct drm_dp_mst_topology_mgr *mgr,
363 amdgpu_dm_connector_funcs_reset(connector); 364 amdgpu_dm_connector_funcs_reset(connector);
364 365
365 DRM_INFO("DM_MST: added connector: %p [id: %d] [master: %p]\n", 366 DRM_INFO("DM_MST: added connector: %p [id: %d] [master: %p]\n",
366 aconnector, connector->base.id, aconnector->mst_port); 367 aconnector, connector->base.id, aconnector->mst_port);
368
369 drm_dp_mst_get_port_malloc(port);
367 370
368 DRM_DEBUG_KMS(":%d\n", connector->base.id); 371 DRM_DEBUG_KMS(":%d\n", connector->base.id);
369 372
@@ -379,12 +382,12 @@ static void dm_dp_destroy_mst_connector(struct drm_dp_mst_topology_mgr *mgr,
379 struct amdgpu_dm_connector *aconnector = to_amdgpu_dm_connector(connector); 382 struct amdgpu_dm_connector *aconnector = to_amdgpu_dm_connector(connector);
380 383
381 DRM_INFO("DM_MST: Disabling connector: %p [id: %d] [master: %p]\n", 384 DRM_INFO("DM_MST: Disabling connector: %p [id: %d] [master: %p]\n",
382 aconnector, connector->base.id, aconnector->mst_port); 385 aconnector, connector->base.id, aconnector->mst_port);
383 386
384 aconnector->port = NULL;
385 if (aconnector->dc_sink) { 387 if (aconnector->dc_sink) {
386 amdgpu_dm_update_freesync_caps(connector, NULL); 388 amdgpu_dm_update_freesync_caps(connector, NULL);
387 dc_link_remove_remote_sink(aconnector->dc_link, aconnector->dc_sink); 389 dc_link_remove_remote_sink(aconnector->dc_link,
390 aconnector->dc_sink);
388 dc_sink_release(aconnector->dc_sink); 391 dc_sink_release(aconnector->dc_sink);
389 aconnector->dc_sink = NULL; 392 aconnector->dc_sink = NULL;
390 } 393 }