aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@linaro.org>2023-11-28 00:10:20 +0100
committerNeil Armstrong <neil.armstrong@linaro.org>2023-11-28 11:07:25 +0100
commitc13f87efa7488fcd5f4d6e89c8f9d5bb072f9e6e (patch)
tree684e0fa5e07938b7dba321b782dece692030c4fd
parent95ba893c9f4feb836ddce627efd0bb6af6667031 (diff)
downloadlinux-c13f87efa7488fcd5f4d6e89c8f9d5bb072f9e6e.tar.gz
Revert "drm/bridge: panel: Check device dependency before managing device link"
This reverts commit 39d5b6a64ace77d0c11c398d272218df5f939abb. This patch was causing build errors by using an unexported function from the device core, which Greg questions the saneness in exporting. Link: https://lore.kernel.org/lkml/CACRpkdaGzXD6HbiX7mVUNJAJtMEPG00Pp6+nJ1P0JrfJ-ArMvQ@mail.gmail.com/T/ Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Acked-by: Neil Armstrong <neil.armstrong@linaro.org> Link: https://lore.kernel.org/r/20231128-revert-panel-fix-v1-2-69bb05048dae@linaro.org Signed-off-by: Neil Armstrong <neil.armstrong@linaro.org> Link: https://patchwork.freedesktop.org/patch/msgid/20231128-revert-panel-fix-v1-2-69bb05048dae@linaro.org
-rw-r--r--drivers/gpu/drm/bridge/panel.c27
1 files changed, 9 insertions, 18 deletions
diff --git a/drivers/gpu/drm/bridge/panel.c b/drivers/gpu/drm/bridge/panel.c
index 5e8980023407be..e48823a4f1edef 100644
--- a/drivers/gpu/drm/bridge/panel.c
+++ b/drivers/gpu/drm/bridge/panel.c
@@ -23,7 +23,6 @@ struct panel_bridge {
struct drm_panel *panel;
struct device_link *link;
u32 connector_type;
- bool is_independent;
};
static inline struct panel_bridge *
@@ -68,17 +67,12 @@ static int panel_bridge_attach(struct drm_bridge *bridge,
struct drm_device *drm_dev = bridge->dev;
int ret;
- panel_bridge->is_independent = !device_is_dependent(drm_dev->dev,
- panel->dev);
-
- if (panel_bridge->is_independent) {
- panel_bridge->link = device_link_add(drm_dev->dev, panel->dev,
- DL_FLAG_STATELESS);
- if (!panel_bridge->link) {
- DRM_ERROR("Failed to add device link between %s and %s\n",
- dev_name(drm_dev->dev), dev_name(panel->dev));
- return -EINVAL;
- }
+ panel_bridge->link = device_link_add(drm_dev->dev, panel->dev,
+ DL_FLAG_STATELESS);
+ if (!panel_bridge->link) {
+ DRM_ERROR("Failed to add device link between %s and %s\n",
+ dev_name(drm_dev->dev), dev_name(panel->dev));
+ return -EINVAL;
}
if (flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR)
@@ -86,8 +80,7 @@ static int panel_bridge_attach(struct drm_bridge *bridge,
if (!bridge->encoder) {
DRM_ERROR("Missing encoder\n");
- if (panel_bridge->is_independent)
- device_link_del(panel_bridge->link);
+ device_link_del(panel_bridge->link);
return -ENODEV;
}
@@ -99,8 +92,7 @@ static int panel_bridge_attach(struct drm_bridge *bridge,
panel_bridge->connector_type);
if (ret) {
DRM_ERROR("Failed to initialize connector\n");
- if (panel_bridge->is_independent)
- device_link_del(panel_bridge->link);
+ device_link_del(panel_bridge->link);
return ret;
}
@@ -123,8 +115,7 @@ static void panel_bridge_detach(struct drm_bridge *bridge)
struct panel_bridge *panel_bridge = drm_bridge_to_panel_bridge(bridge);
struct drm_connector *connector = &panel_bridge->connector;
- if (panel_bridge->is_independent)
- device_link_del(panel_bridge->link);
+ device_link_del(panel_bridge->link);
/*
* Cleanup the connector if we know it was initialized.