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

Commit a731719d 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: add skip_ddc support for hdmi display"

parents eaa068f8 225c6e1f
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@ Optional properties:
- qcom,display-type: display type of this manager. It could be "primary",
  "secondary", "tertiary", etc.
- qcom,non-pluggable: Boolean to indicate if display is non pluggable.
- qcom,skip_ddc: Boolean to indicate if display skips ddc function.
- qcom,customize-modes: Customized modes when it's non pluggable display.
- qcom,customize-mode-id: Customized mode node.
- qcom,mode-name: String which indicates the mode name which shall be used
+7 −0
Original line number Diff line number Diff line
@@ -3069,6 +3069,8 @@ static int _sde_hdmi_parse_dt(struct device_node *node,
{
	int rc = 0;

	struct hdmi *hdmi = display->ctrl.ctrl;

	display->name = of_get_property(node, "label", NULL);

	display->display_type = of_get_property(node,
@@ -3079,6 +3081,11 @@ static int _sde_hdmi_parse_dt(struct device_node *node,
	display->non_pluggable = of_property_read_bool(node,
						"qcom,non-pluggable");

	display->skip_ddc = of_property_read_bool(node,
						"qcom,skip_ddc");
	if (!display->non_pluggable)
		hdmi_i2c_destroy(hdmi->i2c);

	rc = _sde_hdmi_parse_dt_modes(node, &display->mode_list,
					&display->num_of_modes);
	if (rc)
+1 −0
Original line number Diff line number Diff line
@@ -154,6 +154,7 @@ struct sde_hdmi {
	struct sde_edid_ctrl *edid_ctrl;

	bool non_pluggable;
	bool skip_ddc;
	u32 num_of_modes;
	struct list_head mode_list;
	struct drm_display_mode mode;
+6 −3
Original line number Diff line number Diff line
@@ -512,7 +512,7 @@ static void _sde_hdmi_bridge_pre_enable(struct drm_bridge *bridge)
		}
		hdmi->power_on = true;
	}

	if (!display->skip_ddc)
		_sde_hdmi_bridge_setup_scrambler(hdmi, &display->mode);

	if (phy)
@@ -822,6 +822,8 @@ static u32 _sde_hdmi_choose_best_format(struct hdmi *hdmi,
	 */
	int dc_format;
	struct drm_connector *connector = hdmi->connector;
	struct sde_connector *c_conn = to_sde_connector(connector);
	struct sde_hdmi *display = (struct sde_hdmi *)c_conn->display;

	dc_format = sde_hdmi_sink_dc_support(connector, mode);
	if (dc_format & MSM_MODE_FLAG_RGB444_DC_ENABLE)
@@ -835,6 +837,7 @@ static u32 _sde_hdmi_choose_best_format(struct hdmi *hdmi,
	else if (mode->flags & DRM_MODE_FLAG_SUPPORTS_YUV)
		return MSM_MODE_FLAG_COLOR_FORMAT_YCBCR420;

	if (display && !display->non_pluggable)
		SDE_ERROR("Can't get available best display format\n");

	return MSM_MODE_FLAG_COLOR_FORMAT_RGB444;