Skip to content

Commit 7f55040

Browse files
Alex Hungalexdeucher
authored andcommitted
Revert "drm/amd/display: Skip writeback connector when we get amdgpu_dm_connector"
This reverts commit 30a2431. [WHY & HOW] The writeback series cause a regression in thunderbolt display. Signed-off-by: Alex Hung <alex.hung@amd.com> Reviewed-by: Harry Wentland <harry.wentland@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
1 parent e4c4139 commit 7f55040

3 files changed

Lines changed: 11 additions & 76 deletions

File tree

drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c

Lines changed: 5 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -725,10 +725,6 @@ static void dmub_hpd_callback(struct amdgpu_device *adev,
725725

726726
drm_connector_list_iter_begin(dev, &iter);
727727
drm_for_each_connector_iter(connector, &iter) {
728-
729-
if (connector->connector_type == DRM_MODE_CONNECTOR_WRITEBACK)
730-
continue;
731-
732728
aconnector = to_amdgpu_dm_connector(connector);
733729
if (link && aconnector->dc_link == link) {
734730
if (notify->type == DMUB_NOTIFICATION_HPD)
@@ -953,10 +949,6 @@ static int amdgpu_dm_audio_component_get_eld(struct device *kdev, int port,
953949

954950
drm_connector_list_iter_begin(dev, &conn_iter);
955951
drm_for_each_connector_iter(connector, &conn_iter) {
956-
957-
if (connector->connector_type == DRM_MODE_CONNECTOR_WRITEBACK)
958-
continue;
959-
960952
aconnector = to_amdgpu_dm_connector(connector);
961953
if (aconnector->audio_inst != port)
962954
continue;
@@ -2280,10 +2272,6 @@ static int detect_mst_link_for_all_connectors(struct drm_device *dev)
22802272

22812273
drm_connector_list_iter_begin(dev, &iter);
22822274
drm_for_each_connector_iter(connector, &iter) {
2283-
2284-
if (connector->connector_type == DRM_MODE_CONNECTOR_WRITEBACK)
2285-
continue;
2286-
22872275
aconnector = to_amdgpu_dm_connector(connector);
22882276
if (aconnector->dc_link->type == dc_connection_mst_branch &&
22892277
aconnector->mst_mgr.aux) {
@@ -2412,10 +2400,6 @@ static void s3_handle_mst(struct drm_device *dev, bool suspend)
24122400

24132401
drm_connector_list_iter_begin(dev, &iter);
24142402
drm_for_each_connector_iter(connector, &iter) {
2415-
2416-
if (connector->connector_type == DRM_MODE_CONNECTOR_WRITEBACK)
2417-
continue;
2418-
24192403
aconnector = to_amdgpu_dm_connector(connector);
24202404
if (aconnector->dc_link->type != dc_connection_mst_branch ||
24212405
aconnector->mst_root)
@@ -2937,10 +2921,6 @@ static int dm_resume(void *handle)
29372921
/* Do detection*/
29382922
drm_connector_list_iter_begin(ddev, &iter);
29392923
drm_for_each_connector_iter(connector, &iter) {
2940-
2941-
if (connector->connector_type == DRM_MODE_CONNECTOR_WRITEBACK)
2942-
continue;
2943-
29442924
aconnector = to_amdgpu_dm_connector(connector);
29452925

29462926
if (!aconnector->dc_link)
@@ -3514,9 +3494,6 @@ static void register_hpd_handlers(struct amdgpu_device *adev)
35143494
list_for_each_entry(connector,
35153495
&dev->mode_config.connector_list, head) {
35163496

3517-
if (connector->connector_type == DRM_MODE_CONNECTOR_WRITEBACK)
3518-
continue;
3519-
35203497
aconnector = to_amdgpu_dm_connector(connector);
35213498
dc_link = aconnector->dc_link;
35223499

@@ -5533,13 +5510,10 @@ static void fill_stream_properties_from_drm_display_mode(
55335510
{
55345511
struct dc_crtc_timing *timing_out = &stream->timing;
55355512
const struct drm_display_info *info = &connector->display_info;
5536-
struct amdgpu_dm_connector *aconnector = NULL;
5513+
struct amdgpu_dm_connector *aconnector = to_amdgpu_dm_connector(connector);
55375514
struct hdmi_vendor_infoframe hv_frame;
55385515
struct hdmi_avi_infoframe avi_frame;
55395516

5540-
if (connector->connector_type != DRM_MODE_CONNECTOR_WRITEBACK)
5541-
aconnector = to_amdgpu_dm_connector(connector);
5542-
55435517
memset(&hv_frame, 0, sizeof(hv_frame));
55445518
memset(&avi_frame, 0, sizeof(avi_frame));
55455519

@@ -6979,9 +6953,6 @@ static int dm_update_mst_vcpi_slots_for_dsc(struct drm_atomic_state *state,
69796953

69806954
for_each_new_connector_in_state(state, connector, new_con_state, i) {
69816955

6982-
if (connector->connector_type == DRM_MODE_CONNECTOR_WRITEBACK)
6983-
continue;
6984-
69856956
aconnector = to_amdgpu_dm_connector(connector);
69866957

69876958
if (!aconnector->mst_output_port)
@@ -8538,9 +8509,6 @@ static void amdgpu_dm_commit_audio(struct drm_device *dev,
85388509
if (!drm_atomic_crtc_needs_modeset(new_crtc_state))
85398510
continue;
85408511

8541-
if (connector->connector_type == DRM_MODE_CONNECTOR_WRITEBACK)
8542-
continue;
8543-
85448512
notify:
85458513
aconnector = to_amdgpu_dm_connector(connector);
85468514

@@ -8574,9 +8542,6 @@ static void amdgpu_dm_commit_audio(struct drm_device *dev,
85748542
if (!status)
85758543
continue;
85768544

8577-
if (connector->connector_type == DRM_MODE_CONNECTOR_WRITEBACK)
8578-
continue;
8579-
85808545
aconnector = to_amdgpu_dm_connector(connector);
85818546

85828547
mutex_lock(&adev->dm.audio_lock);
@@ -8800,12 +8765,7 @@ static void amdgpu_dm_atomic_commit_tail(struct drm_atomic_state *state)
88008765
for_each_oldnew_connector_in_state(state, connector, old_con_state, new_con_state, i) {
88018766
struct dm_connector_state *dm_new_con_state = to_dm_connector_state(new_con_state);
88028767
struct amdgpu_crtc *acrtc = to_amdgpu_crtc(dm_new_con_state->base.crtc);
8803-
struct amdgpu_dm_connector *aconnector;
8804-
8805-
if (connector->connector_type == DRM_MODE_CONNECTOR_WRITEBACK)
8806-
continue;
8807-
8808-
aconnector = to_amdgpu_dm_connector(connector);
8768+
struct amdgpu_dm_connector *aconnector = to_amdgpu_dm_connector(connector);
88098769

88108770
if (!adev->dm.hdcp_workqueue)
88118771
continue;
@@ -9199,15 +9159,10 @@ static int dm_force_atomic_commit(struct drm_connector *connector)
91999159
void dm_restore_drm_connector_state(struct drm_device *dev,
92009160
struct drm_connector *connector)
92019161
{
9202-
struct amdgpu_dm_connector *aconnector;
9162+
struct amdgpu_dm_connector *aconnector = to_amdgpu_dm_connector(connector);
92039163
struct amdgpu_crtc *disconnected_acrtc;
92049164
struct dm_crtc_state *acrtc_state;
92059165

9206-
if (connector->connector_type == DRM_MODE_CONNECTOR_WRITEBACK)
9207-
return;
9208-
9209-
aconnector = to_amdgpu_dm_connector(connector);
9210-
92119166
if (!aconnector->dc_sink || !connector->state || !connector->encoder)
92129167
return;
92139168

@@ -9284,16 +9239,12 @@ static void get_freesync_config_for_crtc(
92849239
struct dm_connector_state *new_con_state)
92859240
{
92869241
struct mod_freesync_config config = {0};
9287-
struct amdgpu_dm_connector *aconnector;
9242+
struct amdgpu_dm_connector *aconnector =
9243+
to_amdgpu_dm_connector(new_con_state->base.connector);
92889244
struct drm_display_mode *mode = &new_crtc_state->base.mode;
92899245
int vrefresh = drm_mode_vrefresh(mode);
92909246
bool fs_vid_mode = false;
92919247

9292-
if (new_con_state->base.connector->connector_type == DRM_MODE_CONNECTOR_WRITEBACK)
9293-
return;
9294-
9295-
aconnector = to_amdgpu_dm_connector(new_con_state->base.connector);
9296-
92979248
new_crtc_state->vrr_supported = new_con_state->freesync_capable &&
92989249
vrefresh >= aconnector->min_vfreq &&
92999250
vrefresh <= aconnector->max_vfreq;
@@ -10123,9 +10074,6 @@ static int add_affected_mst_dsc_crtcs(struct drm_atomic_state *state, struct drm
1012310074
if (conn_state->crtc != crtc)
1012410075
continue;
1012510076

10126-
if (connector->connector_type == DRM_MODE_CONNECTOR_WRITEBACK)
10127-
continue;
10128-
1012910077
aconnector = to_amdgpu_dm_connector(connector);
1013010078
if (!aconnector->mst_output_port || !aconnector->mst_root)
1013110079
aconnector = NULL;

drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_crc.c

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -326,9 +326,6 @@ int amdgpu_dm_crtc_set_crc_source(struct drm_crtc *crtc, const char *src_name)
326326
if (!connector->state || connector->state->crtc != crtc)
327327
continue;
328328

329-
if (connector->connector_type == DRM_MODE_CONNECTOR_WRITEBACK)
330-
continue;
331-
332329
aconn = to_amdgpu_dm_connector(connector);
333330
break;
334331
}

drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_irq.c

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -894,15 +894,10 @@ void amdgpu_dm_hpd_init(struct amdgpu_device *adev)
894894

895895
drm_connector_list_iter_begin(dev, &iter);
896896
drm_for_each_connector_iter(connector, &iter) {
897-
struct amdgpu_dm_connector *amdgpu_dm_connector;
898-
const struct dc_link *dc_link;
897+
struct amdgpu_dm_connector *amdgpu_dm_connector =
898+
to_amdgpu_dm_connector(connector);
899899

900-
if (connector->connector_type == DRM_MODE_CONNECTOR_WRITEBACK)
901-
continue;
902-
903-
amdgpu_dm_connector = to_amdgpu_dm_connector(connector);
904-
905-
dc_link = amdgpu_dm_connector->dc_link;
900+
const struct dc_link *dc_link = amdgpu_dm_connector->dc_link;
906901

907902
if (dc_link->irq_source_hpd != DC_IRQ_SOURCE_INVALID) {
908903
dc_interrupt_set(adev->dm.dc,
@@ -935,14 +930,9 @@ void amdgpu_dm_hpd_fini(struct amdgpu_device *adev)
935930

936931
drm_connector_list_iter_begin(dev, &iter);
937932
drm_for_each_connector_iter(connector, &iter) {
938-
struct amdgpu_dm_connector *amdgpu_dm_connector;
939-
const struct dc_link *dc_link;
940-
941-
if (connector->connector_type == DRM_MODE_CONNECTOR_WRITEBACK)
942-
continue;
943-
944-
amdgpu_dm_connector = to_amdgpu_dm_connector(connector);
945-
dc_link = amdgpu_dm_connector->dc_link;
933+
struct amdgpu_dm_connector *amdgpu_dm_connector =
934+
to_amdgpu_dm_connector(connector);
935+
const struct dc_link *dc_link = amdgpu_dm_connector->dc_link;
946936

947937
if (dc_link->irq_source_hpd != DC_IRQ_SOURCE_INVALID) {
948938
dc_interrupt_set(adev->dm.dc,

0 commit comments

Comments
 (0)