Skip to content

Commit 9b6a59e

Browse files
linuswsuperna9999
authored andcommitted
Revert "drm/bridge: panel: Add a device link between drm device and panel device"
This reverts commit 199cf07. This patch creates bugs on devices where the DRM device is the ancestor of the panel devices. Attempts to fix this have failed because it leads to using device core functionality which is questionable. Reported-by: Linus Walleij <[email protected]> Link: https://lore.kernel.org/lkml/CACRpkdaGzXD6HbiX7mVUNJAJtMEPG00Pp6+nJ1P0JrfJ-ArMvQ@mail.gmail.com/T/ Signed-off-by: Linus Walleij <[email protected]> Acked-by: Neil Armstrong <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Neil Armstrong <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
1 parent 8dd9266 commit 9b6a59e

File tree

1 file changed

+0
-17
lines changed

1 file changed

+0
-17
lines changed

drivers/gpu/drm/bridge/panel.c

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,6 @@
44
* Copyright (C) 2017 Broadcom
55
*/
66

7-
#include <linux/device.h>
8-
97
#include <drm/drm_atomic_helper.h>
108
#include <drm/drm_bridge.h>
119
#include <drm/drm_connector.h>
@@ -21,7 +19,6 @@ struct panel_bridge {
2119
struct drm_bridge bridge;
2220
struct drm_connector connector;
2321
struct drm_panel *panel;
24-
struct device_link *link;
2522
u32 connector_type;
2623
};
2724

@@ -63,24 +60,13 @@ static int panel_bridge_attach(struct drm_bridge *bridge,
6360
{
6461
struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge);
6562
struct drm_connector *connector = &panel_bridge->connector;
66-
struct drm_panel *panel = panel_bridge->panel;
67-
struct drm_device *drm_dev = bridge->dev;
6863
int ret;
6964

70-
panel_bridge->link = device_link_add(drm_dev->dev, panel->dev,
71-
DL_FLAG_STATELESS);
72-
if (!panel_bridge->link) {
73-
DRM_ERROR("Failed to add device link between %s and %s\n",
74-
dev_name(drm_dev->dev), dev_name(panel->dev));
75-
return -EINVAL;
76-
}
77-
7865
if (flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR)
7966
return 0;
8067

8168
if (!bridge->encoder) {
8269
DRM_ERROR("Missing encoder\n");
83-
device_link_del(panel_bridge->link);
8470
return -ENODEV;
8571
}
8672

@@ -92,7 +78,6 @@ static int panel_bridge_attach(struct drm_bridge *bridge,
9278
panel_bridge->connector_type);
9379
if (ret) {
9480
DRM_ERROR("Failed to initialize connector\n");
95-
device_link_del(panel_bridge->link);
9681
return ret;
9782
}
9883

@@ -115,8 +100,6 @@ static void panel_bridge_detach(struct drm_bridge *bridge)
115100
struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge);
116101
struct drm_connector *connector = &panel_bridge->connector;
117102

118-
device_link_del(panel_bridge->link);
119-
120103
/*
121104
* Cleanup the connector if we know it was initialized.
122105
*

0 commit comments

Comments
 (0)