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

Commit 00d711dd authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: mdss: fix fps for different interfaces"

parents 699a3a16 1371df8c
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -4010,7 +4010,8 @@ int dsi_panel_device_register(struct platform_device *ctrl_pdev,
		return rc;
	}

	pinfo->panel_max_fps = mdss_panel_get_framerate(pinfo);
	pinfo->panel_max_fps = mdss_panel_get_framerate(pinfo,
				FPS_RESOLUTION_HZ);
	pinfo->panel_max_vtotal = mdss_panel_get_vtotal(pinfo);

	rc = mdss_dsi_parse_gpio_params(ctrl_pdev, ctrl_pdata);
+2 −1
Original line number Diff line number Diff line
@@ -3404,7 +3404,8 @@ void mdss_panelinfo_to_fb_var(struct mdss_panel_info *pinfo,
	var->left_margin = pinfo->lcdc.h_back_porch;
	var->hsync_len = pinfo->lcdc.h_pulse_width;

	frame_rate = mdss_panel_get_framerate(pinfo);
	frame_rate = mdss_panel_get_framerate(pinfo,
					FPS_RESOLUTION_HZ);
	if (frame_rate) {
		unsigned long clk_rate, h_total, v_total;

+7 −0
Original line number Diff line number Diff line
@@ -664,6 +664,9 @@ static int hdmi_tx_update_pixel_clk(struct hdmi_tx_ctrl *hdmi_ctrl)

	power_data->clk_config->rate = pinfo->clk_rate;

	if (pinfo->out_format == MDP_Y_CBCR_H2V2)
		power_data->clk_config->rate /= 2;

	DEV_DBG("%s: rate %ld\n", __func__, power_data->clk_config->rate);

	msm_dss_clk_set_rate(power_data->clk_config, power_data->num_clk);
@@ -3497,6 +3500,9 @@ static void hdmi_tx_update_fps(struct hdmi_tx_ctrl *hdmi_ctrl)
		return;
	}

	DEV_DBG("%s: current fps %d, new fps %d\n", __func__,
		pinfo->current_fps, hdmi_ctrl->dynamic_fps);

	if (hdmi_ctrl->dynamic_fps == pinfo->current_fps) {
		DEV_DBG("%s: Panel is already at this FPS: %d\n",
			__func__, hdmi_ctrl->dynamic_fps);
@@ -3762,6 +3768,7 @@ static int hdmi_tx_event_handler(struct mdss_panel_data *panel_data,
	/* UPDATE FPS is called from atomic context */
	if (event == MDSS_EVENT_PANEL_UPDATE_FPS) {
		hdmi_ctrl->dynamic_fps = (u32) (unsigned long)arg;
		DEV_DBG("%s: fps %d\n", __func__, hdmi_ctrl->dynamic_fps);
		queue_work(hdmi_ctrl->workq, &hdmi_ctrl->fps_work);
		return rc;
	}
+12 −9
Original line number Diff line number Diff line
@@ -688,7 +688,8 @@ int mdss_mdp_get_panel_params(struct mdss_mdp_pipe *pipe,
			*fps = pinfo->panel_max_fps;
			*v_total = pinfo->panel_max_vtotal;
		} else {
			*fps = mdss_panel_get_framerate(pinfo);
			*fps = mdss_panel_get_framerate(pinfo,
					FPS_RESOLUTION_HZ);
			*v_total = mdss_panel_get_vtotal(pinfo);
		}
		*xres = get_panel_width(mixer->ctl);
@@ -826,7 +827,8 @@ static u32 mdss_mdp_get_vbp_factor(struct mdss_mdp_ctl *ctl)
		return 0;

	pinfo = &ctl->panel_data->panel_info;
	fps = mdss_panel_get_framerate(pinfo);
	fps = mdss_panel_get_framerate(pinfo,
			FPS_RESOLUTION_HZ);
	v_total = mdss_panel_get_vtotal(pinfo);
	vbp = pinfo->lcdc.v_back_porch + pinfo->lcdc.v_pulse_width;
	vbp += pinfo->prg_fet;
@@ -874,7 +876,8 @@ static u32 __calc_prefill_line_time_us(struct mdss_mdp_ctl *ctl)
		return 0;

	pinfo = &ctl->panel_data->panel_info;
	fps = mdss_panel_get_framerate(pinfo);
	fps = mdss_panel_get_framerate(pinfo,
			FPS_RESOLUTION_HZ);
	v_total = mdss_panel_get_vtotal(pinfo);
	vbp = pinfo->lcdc.v_back_porch + pinfo->lcdc.v_pulse_width;
	vbp += pinfo->prg_fet;
@@ -931,7 +934,8 @@ static u32 mdss_mdp_calc_prefill_line_time(struct mdss_mdp_ctl *ctl,
		return -EINVAL;

	pinfo = &ctl->panel_data->panel_info;
	fps = mdss_panel_get_framerate(pinfo);
	fps = mdss_panel_get_framerate(pinfo,
		FPS_RESOLUTION_HZ);
	v_total = mdss_panel_get_vtotal(pinfo);

	/* calculate the minimum prefill */
@@ -1233,7 +1237,8 @@ static void mdss_mdp_perf_calc_mixer(struct mdss_mdp_mixer *mixer,
				fps = pinfo->panel_max_fps;
				v_total = pinfo->panel_max_vtotal;
			} else {
				fps = mdss_panel_get_framerate(pinfo);
				fps = mdss_panel_get_framerate(pinfo,
						FPS_RESOLUTION_HZ);
				v_total = mdss_panel_get_vtotal(pinfo);
			}
		} else {
@@ -5221,10 +5226,8 @@ int mdss_mdp_ctl_update_fps(struct mdss_mdp_ctl *ctl)
		(pinfo->dfps_update ==
			DFPS_IMMEDIATE_MULTI_MODE_HFP_CALC_CLK) ||
		pinfo->dfps_update == DFPS_IMMEDIATE_CLK_UPDATE_MODE) {
		if (pinfo->type == DTV_PANEL)
			new_fps = pinfo->lcdc.frame_rate;
		else
			new_fps = mdss_panel_get_framerate(pinfo);
		new_fps = mdss_panel_get_framerate(pinfo,
				FPS_RESOLUTION_DEFAULT);
	} else {
		new_fps = pinfo->new_fps;
	}
+1 −1
Original line number Diff line number Diff line
@@ -1160,7 +1160,7 @@ static void __dump_timings(struct seq_file *s, struct mdss_mdp_ctl *ctl)
	pinfo = &ctl->panel_data->panel_info;
	seq_printf(s, "Panel #%d %dx%dp%d\n",
			pinfo->pdest, pinfo->xres, pinfo->yres,
			mdss_panel_get_framerate(pinfo));
			mdss_panel_get_framerate(pinfo, FPS_RESOLUTION_HZ));
	seq_printf(s, "\tvbp=%d vfp=%d vpw=%d hbp=%d hfp=%d hpw=%d\n",
			pinfo->lcdc.v_back_porch,
			pinfo->lcdc.v_front_porch,
Loading