Loading drivers/gpu/drm/msm/sde/sde_connector.c +2 −4 Original line number Original line Diff line number Diff line Loading @@ -652,8 +652,8 @@ void sde_connector_destroy(struct drm_connector *connector) /* cancel if any pending esd work */ /* cancel if any pending esd work */ sde_connector_schedule_status_work(connector, false); sde_connector_schedule_status_work(connector, false); if (c_conn->ops.put_modes) if (c_conn->ops.pre_destroy) c_conn->ops.put_modes(connector, c_conn->display); c_conn->ops.pre_destroy(connector, c_conn->display); if (c_conn->blob_caps) if (c_conn->blob_caps) drm_property_blob_put(c_conn->blob_caps); drm_property_blob_put(c_conn->blob_caps); Loading Loading @@ -2128,8 +2128,6 @@ struct drm_connector *sde_connector_init(struct drm_device *dev, SDE_DEBUG("connector %d attach encoder %d\n", SDE_DEBUG("connector %d attach encoder %d\n", c_conn->base.base.id, encoder->base.id); c_conn->base.base.id, encoder->base.id); priv->connectors[priv->num_connectors++] = &c_conn->base; INIT_DELAYED_WORK(&c_conn->status_work, INIT_DELAYED_WORK(&c_conn->status_work, sde_connector_check_status_work); sde_connector_check_status_work); Loading drivers/gpu/drm/msm/sde/sde_connector.h +8 −8 Original line number Original line Diff line number Diff line Loading @@ -75,14 +75,6 @@ struct sde_connector_ops { int (*get_modes)(struct drm_connector *connector, int (*get_modes)(struct drm_connector *connector, void *display); void *display); /** * put_modes - free up drm modes of the connector * @connector: Pointer to drm connector structure * @display: Pointer to private display handle */ void (*put_modes)(struct drm_connector *connector, void *display); /** /** * update_pps - update pps command for the display panel * update_pps - update pps command for the display panel * @connector: Pointer to drm connector structure * @connector: Pointer to drm connector structure Loading Loading @@ -292,6 +284,14 @@ struct sde_connector_ops { int (*atomic_check)(struct drm_connector *connector, int (*atomic_check)(struct drm_connector *connector, void *display, void *display, struct drm_connector_state *c_state); struct drm_connector_state *c_state); /** * pre_destroy - handle pre destroy operations for the connector * @connector: Pointer to drm connector structure * @display: Pointer to private display handle * Returns: Zero on success, negative error code for failures */ void (*pre_destroy)(struct drm_connector *connector, void *display); }; }; /** /** Loading drivers/gpu/drm/msm/sde/sde_kms.c +4 −1 Original line number Original line Diff line number Diff line Loading @@ -915,7 +915,7 @@ static int _sde_kms_setup_displays(struct drm_device *dev, .set_info_blob = dsi_conn_set_info_blob, .set_info_blob = dsi_conn_set_info_blob, .detect = dsi_conn_detect, .detect = dsi_conn_detect, .get_modes = dsi_connector_get_modes, .get_modes = dsi_connector_get_modes, .put_modes = dsi_connector_put_modes, .pre_destroy = dsi_connector_put_modes, .mode_valid = dsi_conn_mode_valid, .mode_valid = dsi_conn_mode_valid, .get_info = dsi_display_get_info, .get_info = dsi_display_get_info, .set_backlight = dsi_display_set_backlight, .set_backlight = dsi_display_set_backlight, Loading Loading @@ -1009,6 +1009,7 @@ static int _sde_kms_setup_displays(struct drm_device *dev, DRM_MODE_CONNECTOR_DSI); 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; } else { } else { SDE_ERROR("dsi %d connector init failed\n", i); SDE_ERROR("dsi %d connector init failed\n", i); dsi_display_drm_bridge_deinit(display); dsi_display_drm_bridge_deinit(display); Loading Loading @@ -1051,6 +1052,7 @@ static int _sde_kms_setup_displays(struct drm_device *dev, DRM_MODE_CONNECTOR_VIRTUAL); 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; } else { } else { SDE_ERROR("wb %d connector init failed\n", i); SDE_ERROR("wb %d connector init failed\n", i); sde_wb_drm_deinit(display); sde_wb_drm_deinit(display); Loading Loading @@ -1094,6 +1096,7 @@ static int _sde_kms_setup_displays(struct drm_device *dev, DRM_MODE_CONNECTOR_DisplayPort); DRM_MODE_CONNECTOR_DisplayPort); if (connector) { if (connector) { priv->encoders[priv->num_encoders++] = encoder; priv->encoders[priv->num_encoders++] = encoder; priv->connectors[priv->num_connectors++] = connector; } else { } else { SDE_ERROR("dp %d connector init failed\n", i); SDE_ERROR("dp %d connector init failed\n", i); dp_drm_bridge_deinit(display); dp_drm_bridge_deinit(display); Loading Loading
drivers/gpu/drm/msm/sde/sde_connector.c +2 −4 Original line number Original line Diff line number Diff line Loading @@ -652,8 +652,8 @@ void sde_connector_destroy(struct drm_connector *connector) /* cancel if any pending esd work */ /* cancel if any pending esd work */ sde_connector_schedule_status_work(connector, false); sde_connector_schedule_status_work(connector, false); if (c_conn->ops.put_modes) if (c_conn->ops.pre_destroy) c_conn->ops.put_modes(connector, c_conn->display); c_conn->ops.pre_destroy(connector, c_conn->display); if (c_conn->blob_caps) if (c_conn->blob_caps) drm_property_blob_put(c_conn->blob_caps); drm_property_blob_put(c_conn->blob_caps); Loading Loading @@ -2128,8 +2128,6 @@ struct drm_connector *sde_connector_init(struct drm_device *dev, SDE_DEBUG("connector %d attach encoder %d\n", SDE_DEBUG("connector %d attach encoder %d\n", c_conn->base.base.id, encoder->base.id); c_conn->base.base.id, encoder->base.id); priv->connectors[priv->num_connectors++] = &c_conn->base; INIT_DELAYED_WORK(&c_conn->status_work, INIT_DELAYED_WORK(&c_conn->status_work, sde_connector_check_status_work); sde_connector_check_status_work); Loading
drivers/gpu/drm/msm/sde/sde_connector.h +8 −8 Original line number Original line Diff line number Diff line Loading @@ -75,14 +75,6 @@ struct sde_connector_ops { int (*get_modes)(struct drm_connector *connector, int (*get_modes)(struct drm_connector *connector, void *display); void *display); /** * put_modes - free up drm modes of the connector * @connector: Pointer to drm connector structure * @display: Pointer to private display handle */ void (*put_modes)(struct drm_connector *connector, void *display); /** /** * update_pps - update pps command for the display panel * update_pps - update pps command for the display panel * @connector: Pointer to drm connector structure * @connector: Pointer to drm connector structure Loading Loading @@ -292,6 +284,14 @@ struct sde_connector_ops { int (*atomic_check)(struct drm_connector *connector, int (*atomic_check)(struct drm_connector *connector, void *display, void *display, struct drm_connector_state *c_state); struct drm_connector_state *c_state); /** * pre_destroy - handle pre destroy operations for the connector * @connector: Pointer to drm connector structure * @display: Pointer to private display handle * Returns: Zero on success, negative error code for failures */ void (*pre_destroy)(struct drm_connector *connector, void *display); }; }; /** /** Loading
drivers/gpu/drm/msm/sde/sde_kms.c +4 −1 Original line number Original line Diff line number Diff line Loading @@ -915,7 +915,7 @@ static int _sde_kms_setup_displays(struct drm_device *dev, .set_info_blob = dsi_conn_set_info_blob, .set_info_blob = dsi_conn_set_info_blob, .detect = dsi_conn_detect, .detect = dsi_conn_detect, .get_modes = dsi_connector_get_modes, .get_modes = dsi_connector_get_modes, .put_modes = dsi_connector_put_modes, .pre_destroy = dsi_connector_put_modes, .mode_valid = dsi_conn_mode_valid, .mode_valid = dsi_conn_mode_valid, .get_info = dsi_display_get_info, .get_info = dsi_display_get_info, .set_backlight = dsi_display_set_backlight, .set_backlight = dsi_display_set_backlight, Loading Loading @@ -1009,6 +1009,7 @@ static int _sde_kms_setup_displays(struct drm_device *dev, DRM_MODE_CONNECTOR_DSI); 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; } else { } else { SDE_ERROR("dsi %d connector init failed\n", i); SDE_ERROR("dsi %d connector init failed\n", i); dsi_display_drm_bridge_deinit(display); dsi_display_drm_bridge_deinit(display); Loading Loading @@ -1051,6 +1052,7 @@ static int _sde_kms_setup_displays(struct drm_device *dev, DRM_MODE_CONNECTOR_VIRTUAL); 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; } else { } else { SDE_ERROR("wb %d connector init failed\n", i); SDE_ERROR("wb %d connector init failed\n", i); sde_wb_drm_deinit(display); sde_wb_drm_deinit(display); Loading Loading @@ -1094,6 +1096,7 @@ static int _sde_kms_setup_displays(struct drm_device *dev, DRM_MODE_CONNECTOR_DisplayPort); DRM_MODE_CONNECTOR_DisplayPort); if (connector) { if (connector) { priv->encoders[priv->num_encoders++] = encoder; priv->encoders[priv->num_encoders++] = encoder; priv->connectors[priv->num_connectors++] = connector; } else { } else { SDE_ERROR("dp %d connector init failed\n", i); SDE_ERROR("dp %d connector init failed\n", i); dp_drm_bridge_deinit(display); dp_drm_bridge_deinit(display); Loading