Loading msm/dp/dp_drm.c +31 −0 Original line number Diff line number Diff line Loading @@ -702,3 +702,34 @@ int dp_connector_update_pps(struct drm_connector *connector, dp_disp = display; return dp_disp->update_pps(dp_disp, connector, pps_cmd); } int dp_connector_install_properties(void *display, struct drm_connector *conn) { struct dp_display *dp_display = display; struct drm_connector *base_conn; int rc; if (!display || !conn) { DP_ERR("invalid params\n"); return -EINVAL; } base_conn = dp_display->base_connector; /* * Create the property on the base connector during probe time and then * attach the same property onto new connector objects created for MST */ if (!base_conn->colorspace_property) { /* This is the base connector. create the drm property */ rc = drm_mode_create_dp_colorspace_property(base_conn); if (rc) return rc; } else { conn->colorspace_property = base_conn->colorspace_property; } drm_object_attach_property(&conn->base, conn->colorspace_property, 0); return 0; } msm/dp/dp_drm.h +14 −0 Original line number Diff line number Diff line Loading @@ -158,6 +158,14 @@ void convert_to_drm_mode(const struct dp_display_mode *dp_mode, int dp_connector_update_pps(struct drm_connector *connector, char *pps_cmd, void *display); /** * dp_connector_install_properties - install drm properties * @display: Pointer to private display structure * @conn: Pointer to connector */ int dp_connector_install_properties(void *display, struct drm_connector *conn); #else static inline int dp_connector_config_hdr(struct drm_connector *connector, void *display, struct sde_connector_state *c_state) Loading Loading @@ -239,6 +247,12 @@ static inline void convert_to_drm_mode(const struct dp_display_mode *dp_mode, struct drm_display_mode *drm_mode) { } static int dp_connector_install_properties(void *display, struct drm_connector *conn) { return 0; } #endif /* CONFIG_DRM_MSM_DP */ #endif /* _DP_DRM_H_ */ msm/dp/dp_mst_drm.c +1 −0 Original line number Diff line number Diff line Loading @@ -1747,6 +1747,7 @@ dp_mst_add_connector(struct drm_dp_mst_topology_mgr *mgr, .config_hdr = dp_mst_connector_config_hdr, .pre_destroy = dp_mst_connector_pre_destroy, .update_pps = dp_connector_update_pps, .install_properties = dp_connector_install_properties, }; struct dp_mst_private *dp_mst; struct drm_device *dev; Loading msm/sde/sde_connector.c +2 −4 Original line number Diff line number Diff line Loading @@ -2725,10 +2725,8 @@ static int _sde_connector_install_properties(struct drm_device *dev, sizeof(hdr), CONNECTOR_PROP_EXT_HDR_INFO); /* create and attach colorspace property for DP */ if (!drm_mode_create_dp_colorspace_property(connector)) drm_object_attach_property(&connector->base, connector->colorspace_property, 0); if (c_conn->ops.install_properties) c_conn->ops.install_properties(display, connector); } msm_property_install_volatile_range(&c_conn->property_info, Loading msm/sde/sde_connector.h +8 −0 Original line number Diff line number Diff line Loading @@ -351,6 +351,14 @@ struct sde_connector_ops { */ int (*prepare_commit)(void *display, struct msm_display_conn_params *params); /** * install_properties - install connector properties * @display: Pointer to private display structure * @conn: Pointer to drm connector structure * Returns: Zero on success */ int (*install_properties)(void *display, struct drm_connector *conn); }; /** Loading Loading
msm/dp/dp_drm.c +31 −0 Original line number Diff line number Diff line Loading @@ -702,3 +702,34 @@ int dp_connector_update_pps(struct drm_connector *connector, dp_disp = display; return dp_disp->update_pps(dp_disp, connector, pps_cmd); } int dp_connector_install_properties(void *display, struct drm_connector *conn) { struct dp_display *dp_display = display; struct drm_connector *base_conn; int rc; if (!display || !conn) { DP_ERR("invalid params\n"); return -EINVAL; } base_conn = dp_display->base_connector; /* * Create the property on the base connector during probe time and then * attach the same property onto new connector objects created for MST */ if (!base_conn->colorspace_property) { /* This is the base connector. create the drm property */ rc = drm_mode_create_dp_colorspace_property(base_conn); if (rc) return rc; } else { conn->colorspace_property = base_conn->colorspace_property; } drm_object_attach_property(&conn->base, conn->colorspace_property, 0); return 0; }
msm/dp/dp_drm.h +14 −0 Original line number Diff line number Diff line Loading @@ -158,6 +158,14 @@ void convert_to_drm_mode(const struct dp_display_mode *dp_mode, int dp_connector_update_pps(struct drm_connector *connector, char *pps_cmd, void *display); /** * dp_connector_install_properties - install drm properties * @display: Pointer to private display structure * @conn: Pointer to connector */ int dp_connector_install_properties(void *display, struct drm_connector *conn); #else static inline int dp_connector_config_hdr(struct drm_connector *connector, void *display, struct sde_connector_state *c_state) Loading Loading @@ -239,6 +247,12 @@ static inline void convert_to_drm_mode(const struct dp_display_mode *dp_mode, struct drm_display_mode *drm_mode) { } static int dp_connector_install_properties(void *display, struct drm_connector *conn) { return 0; } #endif /* CONFIG_DRM_MSM_DP */ #endif /* _DP_DRM_H_ */
msm/dp/dp_mst_drm.c +1 −0 Original line number Diff line number Diff line Loading @@ -1747,6 +1747,7 @@ dp_mst_add_connector(struct drm_dp_mst_topology_mgr *mgr, .config_hdr = dp_mst_connector_config_hdr, .pre_destroy = dp_mst_connector_pre_destroy, .update_pps = dp_connector_update_pps, .install_properties = dp_connector_install_properties, }; struct dp_mst_private *dp_mst; struct drm_device *dev; Loading
msm/sde/sde_connector.c +2 −4 Original line number Diff line number Diff line Loading @@ -2725,10 +2725,8 @@ static int _sde_connector_install_properties(struct drm_device *dev, sizeof(hdr), CONNECTOR_PROP_EXT_HDR_INFO); /* create and attach colorspace property for DP */ if (!drm_mode_create_dp_colorspace_property(connector)) drm_object_attach_property(&connector->base, connector->colorspace_property, 0); if (c_conn->ops.install_properties) c_conn->ops.install_properties(display, connector); } msm_property_install_volatile_range(&c_conn->property_info, Loading
msm/sde/sde_connector.h +8 −0 Original line number Diff line number Diff line Loading @@ -351,6 +351,14 @@ struct sde_connector_ops { */ int (*prepare_commit)(void *display, struct msm_display_conn_params *params); /** * install_properties - install connector properties * @display: Pointer to private display structure * @conn: Pointer to drm connector structure * Returns: Zero on success */ int (*install_properties)(void *display, struct drm_connector *conn); }; /** Loading