Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 294962f4 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "drm: msm: dp: add topology support for DisplayPort modes" into msm-4.9

parents 210e6392 9f2abe10
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -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;
+11 −0
Original line number Diff line number Diff line
@@ -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,
+1 −0
Original line number Diff line number Diff line
@@ -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;