summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLei Zhou <leizhou@codeaurora.org>2015-06-29 17:00:36 -0400
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-23 20:43:32 -0700
commita0c6e7178de816d8edd7aa817d0e87c0b7e9f2da (patch)
tree181204ffa05b7cb3d99135a7b4a34a8d3ccffd25
parentf29534f106923fdbfba3ec9a69ca90677b98a78a (diff)
msm: mdss: ignore buffer mapping if it's solid fill layer
Ignore mdp_buffer mapping when MDP_SOLID_FILL_LAYER is detected. The client marked this mdp_input_layer as SOLID_FILL layer without input buffer associated with this layer. MDP hardware SOLID_FILL feature will be utilized. Change-Id: Ica48dc5b0be69ac42e2f442d6114781790a3c56a Signed-off-by: Lei Zhou <leizhou@codeaurora.org>
-rw-r--r--drivers/video/fbdev/msm/mdss_mdp_layer.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/video/fbdev/msm/mdss_mdp_layer.c b/drivers/video/fbdev/msm/mdss_mdp_layer.c
index b1cc708f0c31..1a7681e4f904 100644
--- a/drivers/video/fbdev/msm/mdss_mdp_layer.c
+++ b/drivers/video/fbdev/msm/mdss_mdp_layer.c
@@ -1299,6 +1299,10 @@ int mdss_mdp_layer_pre_commit(struct msm_fb_data_type *mfd,
mutex_lock(&mdp5_data->list_lock);
list_for_each_entry_safe(pipe, tmp, &mdp5_data->pipes_used, list) {
+ if (pipe->flags & MDP_SOLID_FILL) {
+ src_data[i] = NULL;
+ continue;
+ }
src_data[i] = __map_layer_buffer(mfd, pipe, layer_list,
layer_count);
if (IS_ERR_OR_NULL(src_data[i++])) {
@@ -1322,7 +1326,8 @@ map_err:
if (ret) {
mutex_lock(&mdp5_data->list_lock);
for (i--; i >= 0; i--)
- mdss_mdp_overlay_buf_free(mfd, src_data[i]);
+ if (src_data[i])
+ mdss_mdp_overlay_buf_free(mfd, src_data[i]);
mutex_unlock(&mdp5_data->list_lock);
}
end: