Revert "drm/amd/display: Create amdgpu_dm_wb_connector"
authorAlex Hung <alex.hung@amd.com>
Wed, 11 Oct 2023 19:18:48 +0000 (13:18 -0600)
committerAlex Deucher <alexander.deucher@amd.com>
Fri, 13 Oct 2023 15:26:13 +0000 (11:26 -0400)
This reverts commit a5f9523c9ca352d6454e81ff9e9a4419f457210a.

[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>
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.h
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_wb.c
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_wb.h

index 653760cdbe7cbb3ef60c74ef668afd3be67c755c..3de997992d058c7f23c595436546addacdc433ff 100644 (file)
@@ -4496,14 +4496,14 @@ static int amdgpu_dm_initialize_drm_device(struct amdgpu_device *adev)
                link = dc_get_link_at_index(dm->dc, i);
 
                if (link->connector_signal == SIGNAL_TYPE_VIRTUAL) {
-                       struct amdgpu_dm_wb_connector *wbcon = kzalloc(sizeof(*wbcon), GFP_KERNEL);
+                       struct drm_writeback_connector *wbcon = kzalloc(sizeof(*wbcon), GFP_KERNEL);
 
                        if (!wbcon) {
                                DRM_ERROR("KMS: Failed to allocate writeback connector\n");
                                continue;
                        }
 
-                       if (amdgpu_dm_wb_connector_init(dm, wbcon, i)) {
+                       if (amdgpu_dm_wb_connector_init(dm, wbcon)) {
                                DRM_ERROR("KMS: Failed to initialize writeback connector\n");
                                kfree(wbcon);
                                continue;
@@ -7592,7 +7592,6 @@ static int amdgpu_dm_connector_init(struct amdgpu_display_manager *dm,
        struct dc_link *link = dc_get_link_at_index(dc, link_index);
        struct amdgpu_i2c_adapter *i2c;
 
-       /* Not needed for writeback connector */
        link->priv = aconnector;
 
 
index 0a9974017ebaa68a8c777067706b370b76d05314..3710f4d0f2cb224976d18da27627ff40c0e50853 100644 (file)
@@ -32,7 +32,6 @@
 #include <drm/drm_crtc.h>
 #include <drm/drm_plane.h>
 #include "link_service_types.h"
-#include <drm/drm_writeback.h>
 
 /*
  * This file contains the definition for amdgpu_display_manager
@@ -715,13 +714,6 @@ static inline void amdgpu_dm_set_mst_status(uint8_t *status,
 
 #define to_amdgpu_dm_connector(x) container_of(x, struct amdgpu_dm_connector, base)
 
-struct amdgpu_dm_wb_connector {
-       struct drm_writeback_connector base;
-       struct dc_link *link;
-};
-
-#define to_amdgpu_dm_wb_connector(x) container_of(x, struct amdgpu_dm_wb_connector, base)
-
 extern const struct amdgpu_ip_block_version dm_ip_block;
 
 struct dm_plane_state {
index b3e634b0f712e7360d091813a8ce545bbe99b4db..74e656696d8ecdb4052f8ecb43ea920f53c0ae46 100644 (file)
@@ -30,7 +30,6 @@
 #include "amdgpu_dm.h"
 #include "amdgpu_dm_wb.h"
 #include "amdgpu_display.h"
-#include "dc.h"
 
 #include <drm/drm_atomic_state_helper.h>
 #include <drm/drm_modeset_helper_vtables.h>
@@ -184,18 +183,13 @@ static const struct drm_connector_helper_funcs amdgpu_dm_wb_conn_helper_funcs =
 };
 
 int amdgpu_dm_wb_connector_init(struct amdgpu_display_manager *dm,
-                               struct amdgpu_dm_wb_connector *wbcon,
-                               uint32_t link_index)
+                               struct drm_writeback_connector *wbcon)
 {
-       struct dc *dc = dm->dc;
-       struct dc_link *link = dc_get_link_at_index(dc, link_index);
        int res = 0;
 
-       wbcon->link = link;
+       drm_connector_helper_add(&wbcon->base, &amdgpu_dm_wb_conn_helper_funcs);
 
-       drm_connector_helper_add(&wbcon->base.base, &amdgpu_dm_wb_conn_helper_funcs);
-
-       res = drm_writeback_connector_init(&dm->adev->ddev, &wbcon->base,
+       res = drm_writeback_connector_init(&dm->adev->ddev, wbcon,
                                            &amdgpu_dm_wb_connector_funcs,
                                            &amdgpu_dm_wb_encoder_helper_funcs,
                                            amdgpu_dm_wb_formats,
@@ -208,8 +202,8 @@ int amdgpu_dm_wb_connector_init(struct amdgpu_display_manager *dm,
         * Some of the properties below require access to state, like bpc.
         * Allocate some default initial connector state with our reset helper.
         */
-       if (wbcon->base.base.funcs->reset)
-               wbcon->base.base.funcs->reset(&wbcon->base.base);
+       if (wbcon->base.funcs->reset)
+               wbcon->base.funcs->reset(&wbcon->base);
 
        return 0;
 }
index 13d31c857dee49d276601c3b9c8ef0be9b94f277..0bc9df7e7ee1923fa1625dc91a000106f76c5ef9 100644 (file)
@@ -30,7 +30,6 @@
 #include <drm/drm_writeback.h>
 
 int amdgpu_dm_wb_connector_init(struct amdgpu_display_manager *dm,
-                               struct amdgpu_dm_wb_connector *dm_wbcon,
-                               uint32_t link_index);
+                               struct drm_writeback_connector *wbcon);
 
 #endif