|
@@ -1319,102 +1319,102 @@ static int _sde_kms_setup_displays(struct drm_device *dev,
|
|
SDE_ERROR("capping number of displays to %d", max_encoders);
|
|
SDE_ERROR("capping number of displays to %d", max_encoders);
|
|
}
|
|
}
|
|
|
|
|
|
- /* dsi */
|
|
|
|
- for (i = 0; i < sde_kms->dsi_display_count &&
|
|
|
|
|
|
+ /* wb */
|
|
|
|
+ for (i = 0; i < sde_kms->wb_display_count &&
|
|
priv->num_encoders < max_encoders; ++i) {
|
|
priv->num_encoders < max_encoders; ++i) {
|
|
- display = sde_kms->dsi_displays[i];
|
|
|
|
|
|
+ display = sde_kms->wb_displays[i];
|
|
encoder = NULL;
|
|
encoder = NULL;
|
|
|
|
|
|
memset(&info, 0x0, sizeof(info));
|
|
memset(&info, 0x0, sizeof(info));
|
|
- rc = dsi_display_get_info(NULL, &info, display);
|
|
|
|
|
|
+ rc = sde_wb_get_info(NULL, &info, display);
|
|
if (rc) {
|
|
if (rc) {
|
|
- SDE_ERROR("dsi get_info %d failed\n", i);
|
|
|
|
|
|
+ SDE_ERROR("wb get_info %d failed\n", i);
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
|
|
|
|
encoder = sde_encoder_init(dev, &info);
|
|
encoder = sde_encoder_init(dev, &info);
|
|
if (IS_ERR_OR_NULL(encoder)) {
|
|
if (IS_ERR_OR_NULL(encoder)) {
|
|
- SDE_ERROR("encoder init failed for dsi %d\n", i);
|
|
|
|
|
|
+ SDE_ERROR("encoder init failed for wb %d\n", i);
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
|
|
|
|
- rc = dsi_display_drm_bridge_init(display, encoder);
|
|
|
|
|
|
+ rc = sde_wb_drm_init(display, encoder);
|
|
if (rc) {
|
|
if (rc) {
|
|
- SDE_ERROR("dsi bridge %d init failed, %d\n", i, rc);
|
|
|
|
|
|
+ SDE_ERROR("wb bridge %d init failed, %d\n", i, rc);
|
|
sde_encoder_destroy(encoder);
|
|
sde_encoder_destroy(encoder);
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
|
|
|
|
connector = sde_connector_init(dev,
|
|
connector = sde_connector_init(dev,
|
|
- encoder,
|
|
|
|
- dsi_display_get_drm_panel(display),
|
|
|
|
- display,
|
|
|
|
- &dsi_ops,
|
|
|
|
- DRM_CONNECTOR_POLL_HPD,
|
|
|
|
- DRM_MODE_CONNECTOR_DSI);
|
|
|
|
|
|
+ encoder,
|
|
|
|
+ 0,
|
|
|
|
+ display,
|
|
|
|
+ &wb_ops,
|
|
|
|
+ DRM_CONNECTOR_POLL_HPD,
|
|
|
|
+ DRM_MODE_CONNECTOR_VIRTUAL);
|
|
if (connector) {
|
|
if (connector) {
|
|
priv->encoders[priv->num_encoders++] = encoder;
|
|
priv->encoders[priv->num_encoders++] = encoder;
|
|
priv->connectors[priv->num_connectors++] = connector;
|
|
priv->connectors[priv->num_connectors++] = connector;
|
|
} else {
|
|
} else {
|
|
- SDE_ERROR("dsi %d connector init failed\n", i);
|
|
|
|
- dsi_display_drm_bridge_deinit(display);
|
|
|
|
- sde_encoder_destroy(encoder);
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- rc = dsi_display_drm_ext_bridge_init(display,
|
|
|
|
- encoder, connector);
|
|
|
|
- if (rc) {
|
|
|
|
- SDE_ERROR("dsi %d ext bridge init failed\n", rc);
|
|
|
|
- dsi_display_drm_bridge_deinit(display);
|
|
|
|
- sde_connector_destroy(connector);
|
|
|
|
|
|
+ SDE_ERROR("wb %d connector init failed\n", i);
|
|
|
|
+ sde_wb_drm_deinit(display);
|
|
sde_encoder_destroy(encoder);
|
|
sde_encoder_destroy(encoder);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-
|
|
|
|
- /* wb */
|
|
|
|
- for (i = 0; i < sde_kms->wb_display_count &&
|
|
|
|
|
|
+ /* dsi */
|
|
|
|
+ for (i = 0; i < sde_kms->dsi_display_count &&
|
|
priv->num_encoders < max_encoders; ++i) {
|
|
priv->num_encoders < max_encoders; ++i) {
|
|
- display = sde_kms->wb_displays[i];
|
|
|
|
|
|
+ display = sde_kms->dsi_displays[i];
|
|
encoder = NULL;
|
|
encoder = NULL;
|
|
|
|
|
|
memset(&info, 0x0, sizeof(info));
|
|
memset(&info, 0x0, sizeof(info));
|
|
- rc = sde_wb_get_info(NULL, &info, display);
|
|
|
|
|
|
+ rc = dsi_display_get_info(NULL, &info, display);
|
|
if (rc) {
|
|
if (rc) {
|
|
- SDE_ERROR("wb get_info %d failed\n", i);
|
|
|
|
|
|
+ SDE_ERROR("dsi get_info %d failed\n", i);
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
|
|
|
|
encoder = sde_encoder_init(dev, &info);
|
|
encoder = sde_encoder_init(dev, &info);
|
|
if (IS_ERR_OR_NULL(encoder)) {
|
|
if (IS_ERR_OR_NULL(encoder)) {
|
|
- SDE_ERROR("encoder init failed for wb %d\n", i);
|
|
|
|
|
|
+ SDE_ERROR("encoder init failed for dsi %d\n", i);
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
|
|
|
|
- rc = sde_wb_drm_init(display, encoder);
|
|
|
|
|
|
+ rc = dsi_display_drm_bridge_init(display, encoder);
|
|
if (rc) {
|
|
if (rc) {
|
|
- SDE_ERROR("wb bridge %d init failed, %d\n", i, rc);
|
|
|
|
|
|
+ SDE_ERROR("dsi bridge %d init failed, %d\n", i, rc);
|
|
sde_encoder_destroy(encoder);
|
|
sde_encoder_destroy(encoder);
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
|
|
|
|
connector = sde_connector_init(dev,
|
|
connector = sde_connector_init(dev,
|
|
- encoder,
|
|
|
|
- 0,
|
|
|
|
- display,
|
|
|
|
- &wb_ops,
|
|
|
|
- DRM_CONNECTOR_POLL_HPD,
|
|
|
|
- DRM_MODE_CONNECTOR_VIRTUAL);
|
|
|
|
|
|
+ encoder,
|
|
|
|
+ dsi_display_get_drm_panel(display),
|
|
|
|
+ display,
|
|
|
|
+ &dsi_ops,
|
|
|
|
+ DRM_CONNECTOR_POLL_HPD,
|
|
|
|
+ DRM_MODE_CONNECTOR_DSI);
|
|
if (connector) {
|
|
if (connector) {
|
|
priv->encoders[priv->num_encoders++] = encoder;
|
|
priv->encoders[priv->num_encoders++] = encoder;
|
|
priv->connectors[priv->num_connectors++] = connector;
|
|
priv->connectors[priv->num_connectors++] = connector;
|
|
} else {
|
|
} else {
|
|
- SDE_ERROR("wb %d connector init failed\n", i);
|
|
|
|
- sde_wb_drm_deinit(display);
|
|
|
|
|
|
+ SDE_ERROR("dsi %d connector init failed\n", i);
|
|
|
|
+ dsi_display_drm_bridge_deinit(display);
|
|
|
|
+ sde_encoder_destroy(encoder);
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ rc = dsi_display_drm_ext_bridge_init(display,
|
|
|
|
+ encoder, connector);
|
|
|
|
+ if (rc) {
|
|
|
|
+ SDE_ERROR("dsi %d ext bridge init failed\n", rc);
|
|
|
|
+ dsi_display_drm_bridge_deinit(display);
|
|
|
|
+ sde_connector_destroy(connector);
|
|
sde_encoder_destroy(encoder);
|
|
sde_encoder_destroy(encoder);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
/* dp */
|
|
/* dp */
|
|
for (i = 0; i < sde_kms->dp_display_count &&
|
|
for (i = 0; i < sde_kms->dp_display_count &&
|
|
priv->num_encoders < max_encoders; ++i) {
|
|
priv->num_encoders < max_encoders; ++i) {
|