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
This commit is contained in:
parent
95ba893c9f
commit
c13f87efa7
@ -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.
|
||||
|
Loading…
x
Reference in New Issue
Block a user