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

Commit f47beac1 authored by Tatenda Chipeperekwa's avatar Tatenda Chipeperekwa Committed by Kyle Yan
Browse files

msm: mdss: hdmi: fix deep color enable and audio clock



Enable deep color only for msmcobalt platform. Furthermore,
adjust the pixel clock reported to the audio driver when
deep color is enabled so that it matches the clock configured
when the interface is turned on.

CRs-Fixed: 1034047
Signed-off-by: default avatarTatenda Chipeperekwa <tatendac@codeaurora.org>
Change-Id: I48a767f7673defe60156c305e39f1ce4aa44306b
parent f600d8b9
Loading
Loading
Loading
Loading
+10 −3
Original line number Diff line number Diff line
@@ -287,7 +287,7 @@ static inline bool hdmi_tx_is_hdcp_enabled(struct hdmi_tx_ctrl *hdmi_ctrl)

static inline bool hdmi_tx_dc_support(struct hdmi_tx_ctrl *hdmi_ctrl)
{
	return hdmi_ctrl->dc_support &&
	return hdmi_ctrl->dc_feature_on && hdmi_ctrl->dc_support &&
		(hdmi_edid_get_deep_color(
			hdmi_tx_get_fd(HDMI_TX_FEAT_EDID)) & BIT(1));
}
@@ -2204,8 +2204,12 @@ static int hdmi_tx_check_capability(struct hdmi_tx_ctrl *hdmi_ctrl)
		}
	}

	DEV_DBG("%s: Features <HDMI:%s, HDCP:%s>\n", __func__,
		hdmi_disabled ? "OFF" : "ON", hdcp_disabled ? "OFF" : "ON");
	if (hdmi_ctrl->hdmi_tx_version >= HDMI_TX_VERSION_403)
		hdmi_ctrl->dc_feature_on = true;

	DEV_DBG("%s: Features <HDMI:%s, HDCP:%s, Deep Color:%s>\n", __func__,
		hdmi_disabled ? "OFF" : "ON", hdcp_disabled ? "OFF" : "ON",
		hdmi_ctrl->dc_feature_on ? "OFF" : "ON");

	if (hdmi_disabled) {
		DEV_ERR("%s: HDMI disabled\n", __func__);
@@ -2837,6 +2841,9 @@ static int hdmi_tx_setup_tmds_clk_rate(struct hdmi_tx_ctrl *hdmi_ctrl)

	rate = timing->pixel_freq / rate_ratio;

	if (hdmi_tx_dc_support(hdmi_ctrl))
		rate += rate >> 2;

end:
	return rate;
}
+1 −0
Original line number Diff line number Diff line
@@ -126,6 +126,7 @@ struct hdmi_tx_ctrl {
	bool hdcp22_present;
	bool power_data_enable[HDMI_TX_MAX_PM];
	bool dc_support;
	bool dc_feature_on;

	void (*hdmi_tx_hpd_done)(void *data);
	void *downstream_data;