msm: fb: aggregate buffer length for each sg node

when mapping the MDP framebuffer, driver needs to aggregate all
buffer length from each sg node.

CRs-Fixed: 996243
Change-Id: Ia4825e96b2e12f2328c9cc3197051f5e47c4daff
Signed-off-by: Camus Wong <camusw@codeaurora.org>
This commit is contained in:
Camus Wong 2016-03-29 11:03:19 -04:00 committed by Kyle Yan
parent 50d6b2a04e
commit 3407e78a70

View file

@ -1396,6 +1396,9 @@ static int mdss_mdp_map_buffer(struct mdss_mdp_img_data *data, bool rotator,
int ret = -EINVAL; int ret = -EINVAL;
int domain; int domain;
struct mdss_data_type *mdata = mdss_mdp_get_mdata(); struct mdss_data_type *mdata = mdss_mdp_get_mdata();
struct scatterlist *sg;
unsigned int i;
struct sg_table *table;
if (data->addr && data->len) if (data->addr && data->len)
return 0; return 0;
@ -1417,7 +1420,11 @@ static int mdss_mdp_map_buffer(struct mdss_mdp_img_data *data, bool rotator,
data->mapped = true; data->mapped = true;
} else { } else {
data->addr = sg_phys(data->srcp_table->sgl); data->addr = sg_phys(data->srcp_table->sgl);
data->len = data->srcp_table->sgl->length; data->len = 0;
table = data->srcp_table;
for_each_sg(table->sgl, sg, table->nents, i) {
data->len += sg->length;
}
ret = 0; ret = 0;
} }
} }