Merge "disp: msm: sde: cache vbif QoS parameters"

This commit is contained in:
qctecmdr
2019-08-12 22:36:26 -07:00
committed by Gerrit - the friendly Code Review server
當前提交 778635ae10

查看文件

@@ -112,6 +112,7 @@ struct sde_plane {
struct sde_hw_pipe_cfg pipe_cfg;
struct sde_hw_sharp_cfg sharp_cfg;
struct sde_hw_pipe_qos_cfg pipe_qos_cfg;
struct sde_vbif_set_qos_params cached_qos_params;
uint32_t color_fill;
bool is_error;
bool is_rt_pipe;
@@ -627,8 +628,9 @@ static void _sde_plane_set_ot_limit(struct drm_plane *plane,
/**
* _sde_plane_set_vbif_qos - set vbif QoS for the given plane
* @plane: Pointer to drm plane
* @force: Force update of vbif QoS
*/
static void _sde_plane_set_qos_remap(struct drm_plane *plane)
static void _sde_plane_set_qos_remap(struct drm_plane *plane, bool force)
{
struct sde_plane *psde;
struct sde_vbif_set_qos_params qos_params;
@@ -661,6 +663,15 @@ static void _sde_plane_set_qos_remap(struct drm_plane *plane)
qos_params.client_type = psde->is_rt_pipe ?
VBIF_RT_CLIENT : VBIF_NRT_CLIENT;
if (!force && !memcmp(&qos_params, &psde->cached_qos_params,
sizeof(struct sde_vbif_set_qos_params))) {
return;
}
SDE_DEBUG("changes in vbif QoS parameters, remap it\n");
memcpy(&psde->cached_qos_params, &qos_params,
sizeof(struct sde_vbif_set_qos_params));
SDE_DEBUG("plane%d pipe:%d vbif:%d xin:%d rt:%d, clk_ctrl:%d\n",
plane->base.id, qos_params.num,
qos_params.vbif_idx,
@@ -1751,7 +1762,7 @@ void sde_plane_secure_ctrl_xin_client(struct drm_plane *plane,
return;
/* do all VBIF programming for the sec-ui allowed SSPP */
_sde_plane_set_qos_remap(plane);
_sde_plane_set_qos_remap(plane, true);
_sde_plane_set_ot_limit(plane, crtc);
}
@@ -3095,7 +3106,10 @@ static void _sde_plane_update_properties(struct drm_plane *plane,
_sde_plane_set_ts_prefill(plane, pstate);
}
_sde_plane_set_qos_remap(plane);
if ((pstate->dirty & SDE_PLANE_DIRTY_ALL) == SDE_PLANE_DIRTY_ALL)
_sde_plane_set_qos_remap(plane, true);
else
_sde_plane_set_qos_remap(plane, false);
/* clear dirty */
pstate->dirty = 0x0;