drm/bridge: analogix_dp: Support split mode for bridge chain

Fixes: c1754005a3 ("drm/bridge: analogix_dp: Support split mode for bridge chain")
Signed-off-by: Wyon Bi <bivvy.bi@rock-chips.com>
Change-Id: Iceb575560b1e6a9257f31e8370c8139afaae20b0
This commit is contained in:
Wyon Bi
2022-05-28 04:20:13 +00:00
committed by Tao Huang
parent d79cdc989f
commit 437e0a901b
2 changed files with 13 additions and 14 deletions

View File

@@ -1311,14 +1311,24 @@ static int analogix_dp_bridge_attach(struct drm_bridge *bridge,
struct drm_connector *connector = NULL;
int ret = 0;
if (flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR)
return 0;
if (!bridge->encoder) {
DRM_ERROR("Parent encoder object not found");
return -ENODEV;
}
if (dp->plat_data->bridge) {
ret = drm_bridge_attach(bridge->encoder, dp->plat_data->bridge, bridge,
dp->plat_data->skip_connector ?
0 : DRM_BRIDGE_ATTACH_NO_CONNECTOR);
if (ret) {
DRM_ERROR("Failed to attach external bridge: %d\n", ret);
return ret;
}
}
if (flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR)
return 0;
if (!dp->plat_data->skip_connector) {
int connector_type = DRM_MODE_CONNECTOR_eDP;

View File

@@ -263,17 +263,6 @@ static int rockchip_dp_bridge_attach(struct analogix_dp_plat_data *plat_data,
{
struct rockchip_dp_device *dp = to_dp(plat_data);
struct rockchip_drm_sub_dev *sdev = &dp->sub_dev;
int ret;
if (plat_data->bridge) {
ret = drm_bridge_attach(&dp->encoder, plat_data->bridge, bridge,
rockchip_dp_skip_connector(bridge) ?
DRM_BRIDGE_ATTACH_NO_CONNECTOR : 0);
if (ret) {
DRM_ERROR("Failed to attach bridge to drm: %d\n", ret);
return ret;
}
}
if (!connector) {
struct list_head *connector_list =