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

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

Merge "Merge remote-tracking branch 'quic/dev/msm-4.14.c12-display' into msm-4.14.c12"

parents d519a334 bce20e13
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -116,10 +116,10 @@ struct dsi_link_lp_clk_info {

/**
 * struct link_clk_freq - Clock frequency information for Link clocks
 * @byte_clk_rate:   Frequency of DSI byte_clk in KHz.
 * @byte_intf_clk_rate:   Frequency of DSI byte_intf_clk in KHz.
 * @pixel_clk_rate:  Frequency of DSI pixel_clk in KHz.
 * @esc_clk_rate:    Frequency of DSI escape clock in KHz.
 * @byte_clk_rate:   Frequency of DSI byte_clk in Hz.
 * @byte_intf_clk_rate:   Frequency of DSI byte_intf_clk in Hz.
 * @pixel_clk_rate:  Frequency of DSI pixel_clk in Hz.
 * @esc_clk_rate:    Frequency of DSI escape clock in Hz.
 */
struct link_clk_freq {
	u32 byte_clk_rate;
+1 −1
Original line number Diff line number Diff line
@@ -562,7 +562,7 @@ struct dsi_cmd_engine_cfg {
 * @common_config:         Host configuration common to both Video and Cmd mode.
 * @video_engine:          Video engine configuration if panel is in video mode.
 * @cmd_engine:            Cmd engine configuration if panel is in cmd mode.
 * @esc_clk_rate_khz:      Esc clock frequency in Hz.
 * @esc_clk_rate_hz:      Esc clock frequency in Hz.
 * @bit_clk_rate_hz:       Bit clock frequency in Hz.
 * @bit_clk_rate_hz_override: DSI bit clk rate override from dt/sysfs.
 * @video_timing:          Video timing information of a frame.
+13 −6
Original line number Diff line number Diff line
/*
 * Copyright (c) 2016-2020, The Linux Foundation. All rights reserved.
 * Copyright (c) 2016-2021, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -4031,12 +4031,12 @@ static void _dsi_display_calc_pipe_delay(struct dsi_display *display,

	cfg = &(m_ctrl->phy->cfg);

	esc_clk_rate_hz = dsi_ctrl->clk_freq.esc_clk_rate * 1000;
	pclk_to_esc_ratio = ((dsi_ctrl->clk_freq.pix_clk_rate * 1000) /
	esc_clk_rate_hz = dsi_ctrl->clk_freq.esc_clk_rate;
	pclk_to_esc_ratio = (dsi_ctrl->clk_freq.pix_clk_rate /
			     esc_clk_rate_hz);
	byte_to_esc_ratio = ((dsi_ctrl->clk_freq.byte_clk_rate * 1000) /
	byte_to_esc_ratio = (dsi_ctrl->clk_freq.byte_clk_rate /
			     esc_clk_rate_hz);
	hr_bit_to_esc_ratio = ((dsi_ctrl->clk_freq.byte_clk_rate * 4 * 1000) /
	hr_bit_to_esc_ratio = ((dsi_ctrl->clk_freq.byte_clk_rate * 4) /
					esc_clk_rate_hz);

	hsync_period = DSI_H_TOTAL_DSC(&mode->timing);
@@ -4072,7 +4072,7 @@ static void _dsi_display_calc_pipe_delay(struct dsi_display *display,
	else
		delay->pll_delay = 25;

	delay->pll_delay = ((delay->pll_delay * esc_clk_rate_hz) / 1000000) * 2;
	delay->pll_delay = (delay->pll_delay * esc_clk_rate_hz) / 1000000;
}

static int _dsi_display_dyn_update_clks(struct dsi_display *display,
@@ -6590,6 +6590,13 @@ int dsi_display_validate_mode_change(struct dsi_display *display,
					goto error;
				}

				if (cur_mode->timing.refresh_rate !=
						adj_mode->timing.refresh_rate) {
					pr_err("fps change along with dyn clk not supported\n");
					rc = -ENOTSUPP;
					goto error;
				}

				adj_mode->dsi_mode_flags |=
						DSI_MODE_FLAG_DYN_CLK;
				SDE_EVT32(cur_mode->pixel_clk_khz,
+5 −1
Original line number Diff line number Diff line
/* Copyright (c) 2015-2019, The Linux Foundation. All rights reserved.
/* Copyright (c) 2015-2021, The Linux Foundation. All rights reserved.
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
@@ -3282,6 +3282,7 @@ static int sde_hw_rotator_wait4done(struct sde_rot_hw_resource *hw,
	struct sde_hw_rotator *rot;
	struct sde_hw_rotator_resource_info *resinfo;
	struct sde_hw_rotator_context *ctx;
	struct sde_rot_mgr *mgr;
	int ret;

	if (!hw || !entry) {
@@ -3291,6 +3292,7 @@ static int sde_hw_rotator_wait4done(struct sde_rot_hw_resource *hw,

	resinfo = container_of(hw, struct sde_hw_rotator_resource_info, hw);
	rot = resinfo->rot;
	mgr = entry->private->mgr;

	/* Lookup rotator context from session-id */
	ctx = sde_hw_rotator_get_ctx(rot, entry->item.session_id,
@@ -3309,7 +3311,9 @@ static int sde_hw_rotator_wait4done(struct sde_rot_hw_resource *hw,
	}

	/* Current rotator context job is finished, time to free up*/
	sde_rot_mgr_lock(mgr);
	sde_hw_rotator_free_rotctx(rot, ctx);
	sde_rot_mgr_unlock(mgr);

	return ret;
}