Loading drivers/gpu/drm/msm/dp/dp_drm.c +21 −0 Original line number Diff line number Diff line Loading @@ -292,6 +292,27 @@ int dp_connector_post_init(struct drm_connector *connector, return 0; } int dp_connector_get_topology(const struct drm_display_mode *drm_mode, struct msm_display_topology *topology, u32 max_mixer_width) { const u32 dual_lm = 2; const u32 single_lm = 1; const u32 single_intf = 1; const u32 no_enc = 0; if (!drm_mode || !topology || !max_mixer_width) { pr_err("invalid params\n"); return -EINVAL; } topology->num_lm = (max_mixer_width <= drm_mode->hdisplay) ? dual_lm : single_lm; topology->num_enc = no_enc; topology->num_intf = single_intf; return 0; } int dp_connector_get_info(struct msm_display_info *info, void *data) { struct dsi_display *display = data; Loading drivers/gpu/drm/msm/dp/dp_drm.h +11 −0 Original line number Diff line number Diff line Loading @@ -73,6 +73,17 @@ enum drm_mode_status dp_connector_mode_valid(struct drm_connector *connector, struct drm_display_mode *mode, void *display); /** * dp_connector_get_topology - retrieve current topology for the mode selected * @drm_mode: Display mode set for the display * @topology: Out parameter. Topology for the mode. * @max_mixer_width: max width supported by HW layer mixer * Returns: zero on success */ int dp_connector_get_topology(const struct drm_display_mode *drm_mode, struct msm_display_topology *topology, u32 max_mixer_width); int dp_connector_get_info(struct msm_display_info *info, void *display); int dp_drm_bridge_init(void *display, Loading drivers/gpu/drm/msm/sde/sde_kms.c +1 −0 Original line number Diff line number Diff line Loading @@ -608,6 +608,7 @@ static int _sde_kms_setup_displays(struct drm_device *dev, .get_modes = dp_connector_get_modes, .mode_valid = dp_connector_mode_valid, .get_info = dp_connector_get_info, .get_topology = dp_connector_get_topology, }; struct msm_display_info info; struct drm_encoder *encoder; Loading Loading
drivers/gpu/drm/msm/dp/dp_drm.c +21 −0 Original line number Diff line number Diff line Loading @@ -292,6 +292,27 @@ int dp_connector_post_init(struct drm_connector *connector, return 0; } int dp_connector_get_topology(const struct drm_display_mode *drm_mode, struct msm_display_topology *topology, u32 max_mixer_width) { const u32 dual_lm = 2; const u32 single_lm = 1; const u32 single_intf = 1; const u32 no_enc = 0; if (!drm_mode || !topology || !max_mixer_width) { pr_err("invalid params\n"); return -EINVAL; } topology->num_lm = (max_mixer_width <= drm_mode->hdisplay) ? dual_lm : single_lm; topology->num_enc = no_enc; topology->num_intf = single_intf; return 0; } int dp_connector_get_info(struct msm_display_info *info, void *data) { struct dsi_display *display = data; Loading
drivers/gpu/drm/msm/dp/dp_drm.h +11 −0 Original line number Diff line number Diff line Loading @@ -73,6 +73,17 @@ enum drm_mode_status dp_connector_mode_valid(struct drm_connector *connector, struct drm_display_mode *mode, void *display); /** * dp_connector_get_topology - retrieve current topology for the mode selected * @drm_mode: Display mode set for the display * @topology: Out parameter. Topology for the mode. * @max_mixer_width: max width supported by HW layer mixer * Returns: zero on success */ int dp_connector_get_topology(const struct drm_display_mode *drm_mode, struct msm_display_topology *topology, u32 max_mixer_width); int dp_connector_get_info(struct msm_display_info *info, void *display); int dp_drm_bridge_init(void *display, Loading
drivers/gpu/drm/msm/sde/sde_kms.c +1 −0 Original line number Diff line number Diff line Loading @@ -608,6 +608,7 @@ static int _sde_kms_setup_displays(struct drm_device *dev, .get_modes = dp_connector_get_modes, .mode_valid = dp_connector_mode_valid, .get_info = dp_connector_get_info, .get_topology = dp_connector_get_topology, }; struct msm_display_info info; struct drm_encoder *encoder; Loading