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

Commit 33496c74 authored by Linux Build Service Account's avatar Linux Build Service Account
Browse files

Merge f4e8bb8e on remote branch

Change-Id: I014b827ee8e4dc3bed0185ee1214bfe79b8c3cf5
parents 08806f45 f4e8bb8e
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -25,7 +25,7 @@ def run_headers_install(verbose, gen_dir, headers_install, prefix, h):

    out_h = os.path.join(gen_dir, h[len(prefix):])
    (out_h_dirname, out_h_basename) = os.path.split(out_h)
    cmd = [headers_install, h, out_h]
    cmd = ["sh", headers_install, h, out_h]

    if verbose:
        print('run_headers_install: cmd is %s' % cmd)
+22 −7
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (c) 2017-2020, The Linux Foundation. All rights reserved.
 * Copyright (c) 2017-2021, The Linux Foundation. All rights reserved.
 */

#include <linux/module.h>
@@ -1053,16 +1053,21 @@ static int dp_display_host_init(struct dp_display_private *dp)
	return rc;
}

static void dp_display_host_ready(struct dp_display_private *dp)
static int dp_display_host_ready(struct dp_display_private *dp)
{
	int rc = 0;

	if (!dp_display_state_is(DP_STATE_INITIALIZED)) {
		rc = dp_display_host_init(dp);
		if (rc) {
			dp_display_state_show("[not initialized]");
		return;
			return rc;
		}
	}

	if (dp_display_state_is(DP_STATE_READY)) {
		dp_display_state_log("[already ready]");
		return;
		return rc;
	}

	/*
@@ -1090,6 +1095,7 @@ static void dp_display_host_ready(struct dp_display_private *dp)
	dp_display_state_add(DP_STATE_READY);
	/* log this as it results from user action of cable connection */
	DP_INFO("[OK]\n");
	return rc;
}

static void dp_display_host_unready(struct dp_display_private *dp)
@@ -1192,7 +1198,11 @@ static int dp_display_process_hpd_high(struct dp_display_private *dp)
		dp_display_state_remove(DP_STATE_SRC_PWRDN);
	}

	dp_display_host_ready(dp);
	rc = dp_display_host_ready(dp);
	if (rc) {
		dp_display_state_show("[ready failed]");
		goto end;
	}

	dp->link->psm_config(dp->link, &dp->panel->link_info, false);
	dp->debug->psm_enabled = false;
@@ -2209,7 +2219,12 @@ static int dp_display_prepare(struct dp_display *dp_display, void *panel)
	}

	/* For supporting DP_PANEL_SRC_INITIATED_POWER_DOWN case */
	dp_display_host_ready(dp);
	rc = dp_display_host_ready(dp);

	if (rc) {
		dp_display_state_show("[ready failed]");
		goto end;
	}

	if (dp->debug->psm_enabled) {
		dp->link->psm_config(dp->link, &dp->panel->link_info, false);
+5 −2
Original line number Diff line number Diff line
@@ -2574,7 +2574,7 @@ static int dsi_display_parse_boot_display_selection(void)
		strlcpy(disp_buf, boot_displays[i].boot_param,
			MAX_CMDLINE_PARAM_LEN);

		pos = strnstr(disp_buf, ":", MAX_CMDLINE_PARAM_LEN);
		pos = strnstr(disp_buf, ":", strlen(disp_buf));

		/* Use ':' as a delimiter to retrieve the display name */
		if (!pos) {
@@ -5701,6 +5701,8 @@ static int dsi_display_bind(struct device *dev,
		display_ctrl = &display->ctrl[i];
		(void)dsi_phy_drv_deinit(display_ctrl->phy);
		(void)dsi_ctrl_drv_deinit(display_ctrl->ctrl);
		dsi_ctrl_put(display_ctrl->ctrl);
		dsi_phy_put(display_ctrl->phy);
	}
	(void)dsi_display_debugfs_deinit(display);
error:
@@ -5923,7 +5925,8 @@ int dsi_display_dev_probe(struct platform_device *pdev)
	platform_set_drvdata(pdev, display);

	/* initialize display in firmware callback */
	if (!boot_disp->boot_disp_en &&
	if (!(boot_displays[DSI_PRIMARY].boot_disp_en ||
			boot_displays[DSI_SECONDARY].boot_disp_en) &&
			IS_ENABLED(CONFIG_DSI_PARSER) &&
			!display->trusted_vm_env) {
		if (!strcmp(display->display_type, "primary"))
+9 −1
Original line number Diff line number Diff line
@@ -1057,8 +1057,16 @@ int dsi_conn_post_kickoff(struct drm_connector *connector,
			return -EINVAL;
		}

		/*
		 * When both DFPS and dynamic clock switch with constant
		 * fps features are enabled, wait for dynamic refresh done
		 * only in case of clock switch.
		 * In case where only fps changes, clock remains same.
		 * So, wait for dynamic refresh done is not required.
		 */
		if ((ctrl_version >= DSI_CTRL_VERSION_2_5) &&
				(dyn_clk_caps->maintain_const_fps)) {
			(dyn_clk_caps->maintain_const_fps) &&
			(adj_mode.dsi_mode_flags & DSI_MODE_FLAG_DYN_CLK)) {
			display_for_each_ctrl(i, display) {
				ctrl = &display->ctrl[i];
				rc = dsi_ctrl_wait4dynamic_refresh_done(
+3 −0
Original line number Diff line number Diff line
@@ -3740,6 +3740,7 @@ void sde_crtc_commit_kickoff(struct drm_crtc *crtc,

	idle_pc_state = sde_crtc_get_property(cstate, CRTC_PROP_IDLE_PC_STATE);

	sde_crtc->kickoff_in_progress = true;
	list_for_each_entry(encoder, &dev->mode_config.encoder_list, head) {
		if (encoder->crtc != crtc)
			continue;
@@ -3801,6 +3802,7 @@ void sde_crtc_commit_kickoff(struct drm_crtc *crtc,

		sde_encoder_kickoff(encoder, false, true);
	}
	sde_crtc->kickoff_in_progress = false;

	/* store the event after frame trigger */
	if (sde_crtc->event) {
@@ -6595,6 +6597,7 @@ struct drm_crtc *sde_crtc_init(struct drm_device *dev, struct drm_plane *plane)
	atomic_set(&sde_crtc->frame_pending, 0);

	sde_crtc->enabled = false;
	sde_crtc->kickoff_in_progress = false;

	/* Below parameters are for fps calculation for sysfs node */
	sde_crtc->fps_info.fps_periodic_duration = DEFAULT_FPS_PERIOD_1_SEC;
Loading