mdss: mdp: Constant fetch start across dfps change
Timing engine HW restricts changing programmable fetch start when off. Fix fetch start in SW drivers. Change-Id: I8ec80408a4ae36a7dfd963bc570fca9672d12341 Signed-off-by: Animesh Kishore <animeshk@codeaurora.org>
This commit is contained in:
parent
c9dc859c2c
commit
6ab8fbb872
3 changed files with 15 additions and 4 deletions
|
@ -1,4 +1,4 @@
|
||||||
/* Copyright (c) 2012-2017, The Linux Foundation. All rights reserved.
|
/* Copyright (c) 2012-2018, The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License version 2 and
|
||||||
|
@ -1901,7 +1901,6 @@ static void mdss_mdp_fetch_start_config(struct mdss_mdp_video_ctx *ctx,
|
||||||
|
|
||||||
mdata = ctl->mdata;
|
mdata = ctl->mdata;
|
||||||
|
|
||||||
pinfo->prg_fet = mdss_mdp_get_prefetch_lines(pinfo);
|
|
||||||
if (!pinfo->prg_fet) {
|
if (!pinfo->prg_fet) {
|
||||||
pr_debug("programmable fetch is not needed/supported\n");
|
pr_debug("programmable fetch is not needed/supported\n");
|
||||||
|
|
||||||
|
@ -2207,6 +2206,8 @@ static int mdss_mdp_video_ctx_setup(struct mdss_mdp_ctl *ctl,
|
||||||
ctx->intf_num);
|
ctx->intf_num);
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pinfo->prg_fet = mdss_mdp_get_prefetch_lines(pinfo);
|
||||||
mdss_mdp_fetch_start_config(ctx, ctl);
|
mdss_mdp_fetch_start_config(ctx, ctl);
|
||||||
|
|
||||||
if (test_bit(MDSS_QOS_VBLANK_PANIC_CTRL, mdata->mdss_qos_map))
|
if (test_bit(MDSS_QOS_VBLANK_PANIC_CTRL, mdata->mdss_qos_map))
|
||||||
|
|
|
@ -3367,6 +3367,9 @@ static void cache_initial_timings(struct mdss_panel_data *pdata)
|
||||||
{
|
{
|
||||||
if (!pdata->panel_info.default_fps) {
|
if (!pdata->panel_info.default_fps) {
|
||||||
|
|
||||||
|
pdata->panel_info.default_prg_fet =
|
||||||
|
mdss_mdp_get_prefetch_lines(&pdata->panel_info);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This value will change dynamically once the
|
* This value will change dynamically once the
|
||||||
* actual dfps update happen in hw.
|
* actual dfps update happen in hw.
|
||||||
|
@ -3439,8 +3442,13 @@ static void dfps_update_panel_params(struct mdss_panel_data *pdata,
|
||||||
|
|
||||||
dfps_update_fps(&pdata->panel_info, new_fps);
|
dfps_update_fps(&pdata->panel_info, new_fps);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Fetch start is pinned to default fps.
|
||||||
|
* Adjust programmable fetch accordingly.
|
||||||
|
*/
|
||||||
pdata->panel_info.prg_fet =
|
pdata->panel_info.prg_fet =
|
||||||
mdss_mdp_get_prefetch_lines(&pdata->panel_info);
|
(pdata->panel_info.default_prg_fet) ?
|
||||||
|
(pdata->panel_info.default_prg_fet + add_v_lines) : 0;
|
||||||
|
|
||||||
} else if (pdata->panel_info.dfps_update ==
|
} else if (pdata->panel_info.dfps_update ==
|
||||||
DFPS_IMMEDIATE_PORCH_UPDATE_MODE_HFP) {
|
DFPS_IMMEDIATE_PORCH_UPDATE_MODE_HFP) {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* Copyright (c) 2008-2017, The Linux Foundation. All rights reserved.
|
/* Copyright (c) 2008-2018, The Linux Foundation. All rights reserved.
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* 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
|
* it under the terms of the GNU General Public License version 2 and
|
||||||
|
@ -814,6 +814,8 @@ struct mdss_panel_info {
|
||||||
int new_fps;
|
int new_fps;
|
||||||
/* stores initial fps after boot */
|
/* stores initial fps after boot */
|
||||||
u32 default_fps;
|
u32 default_fps;
|
||||||
|
/* store programmable fetch corresponding to default fps */
|
||||||
|
u32 default_prg_fet;
|
||||||
/* stores initial vtotal (vfp-method) or htotal (hfp-method) */
|
/* stores initial vtotal (vfp-method) or htotal (hfp-method) */
|
||||||
u32 saved_total;
|
u32 saved_total;
|
||||||
/* stores initial vfp (vfp-method) or hfp (hfp-method) */
|
/* stores initial vfp (vfp-method) or hfp (hfp-method) */
|
||||||
|
|
Loading…
Add table
Reference in a new issue