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

Commit 50bbec3b authored by Ajay Singh Parmar's avatar Ajay Singh Parmar
Browse files

msm: mdss: hdmi: reset phy on panel power on



HDMI Tx core can be configured with multiple resolutions with
different pixel clocks. This needs PHY/PLL to be configured
with different settings. Reset PHY/PLL on every power on before
configuring new PHY settings to avoid any PLL lock issues.

Change-Id: I564305730105f3e54fbb504c20cce5b2eb9039b1
Signed-off-by: default avatarAjay Singh Parmar <aparmar@codeaurora.org>
parent 1a5da77f
Loading
Loading
Loading
Loading
+8 −7
Original line number Diff line number Diff line
@@ -3346,13 +3346,8 @@ static int hdmi_tx_start(struct hdmi_tx_ctrl *hdmi_ctrl)
		hdmi_tx_set_spd_infoframe(hdmi_ctrl);
	}

	rc = hdmi_tx_setup_scrambler(hdmi_ctrl);
	if (rc) {
		DEV_ERR("%s: Scrambler setup failed\n", __func__);
		hdmi_tx_set_mode(hdmi_ctrl, false);
		return rc;
	}
	/* todo: CEC */
	if (hdmi_tx_setup_scrambler(hdmi_ctrl))
		DEV_WARN("%s: Scrambler setup failed\n", __func__);

	DEV_INFO("%s: HDMI Core: Initialized\n", __func__);

@@ -4032,6 +4027,12 @@ static int hdmi_tx_panel_event_handler(struct mdss_panel_data *panel_data,
		break;

	case MDSS_EVENT_RESET:
		if (hdmi_ctrl->hpd_initialized) {
			hdmi_tx_set_mode(hdmi_ctrl, false);
			hdmi_tx_phy_reset(hdmi_ctrl);
			hdmi_tx_set_mode(hdmi_ctrl, true);
		}

		if (hdmi_ctrl->panel_suspend) {
			u32 timeout;
			hdmi_ctrl->panel_suspend = false;