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

Commit be6b5d89 authored by qctecmdr's avatar qctecmdr Committed by Gerrit - the friendly Code Review server
Browse files

Merge "disp: msm: dp: clear notification states for dp mst"

parents f2b1cba0 7424c235
Loading
Loading
Loading
Loading
+5 −2
Original line number Diff line number Diff line
@@ -723,8 +723,10 @@ static int dp_ctrl_link_setup(struct dp_ctrl_private *ctrl, bool shallow)
			break;
		}

		if (!link_train_max_retries || atomic_read(&ctrl->aborted))
		if (!link_train_max_retries || atomic_read(&ctrl->aborted)) {
			dp_ctrl_disable_link_clock(ctrl);
			break;
		}

		if (rc != -EAGAIN)
			dp_ctrl_link_rate_down_shift(ctrl);
@@ -1319,6 +1321,7 @@ static int dp_ctrl_on(struct dp_ctrl *dp_ctrl, bool mst_mode,
	ctrl->initial_bw_code = ctrl->link->link_params.bw_code;

	rc = dp_ctrl_link_setup(ctrl, shallow);
	if (!rc)
		ctrl->power_on = true;
end:
	return rc;
+19 −0
Original line number Diff line number Diff line
@@ -723,6 +723,7 @@ static void dp_display_send_hpd_event(struct dp_display_private *dp)

	if (dp->mst.mst_active) {
		DP_DEBUG("skip notification for mst mode\n");
		dp_display_state_remove(DP_STATE_DISCONNECT_NOTIFIED);
		return;
	}

@@ -2646,6 +2647,11 @@ static int dp_display_config_hdr(struct dp_display *dp_display, void *panel,
		return -EINVAL;
	}

	if (!dp_display_state_is(DP_STATE_ENABLED)) {
		dp_display_state_show("[not enabled]");
		return 0;
	}

	/*
	 * In rare cases where HDR metadata is updated independently
	 * flush the HDR metadata immediately instead of relying on
@@ -2667,12 +2673,20 @@ static int dp_display_setup_colospace(struct dp_display *dp_display,
		u32 colorspace)
{
	struct dp_panel *dp_panel;
	struct dp_display_private *dp;

	if (!dp_display || !panel) {
		pr_err("invalid input\n");
		return -EINVAL;
	}

	dp = container_of(dp_display, struct dp_display_private, dp_display);

	if (!dp_display_state_is(DP_STATE_ENABLED)) {
		dp_display_state_show("[not enabled]");
		return 0;
	}

	dp_panel = panel;

	return dp_panel->set_colorspace(dp_panel, colorspace);
@@ -3005,6 +3019,11 @@ static int dp_display_update_pps(struct dp_display *dp_display,
		return -EINVAL;
	}

	if (!dp_display_state_is(DP_STATE_ENABLED)) {
		dp_display_state_show("[not enabled]");
		return 0;
	}

	dp_panel = sde_conn->drv_panel;
	dp_panel->update_pps(dp_panel, pps_cmd);
	return 0;