diff options
Diffstat (limited to 'drivers/gpu/drm/amd')
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/atom.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/dce_v10_0.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/dce_v11_0.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/dce_v6_0.c | 3 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/dce_v8_0.c | 2 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c | 11 |
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 | } |