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

Commit 4fd9d5d8 authored by Camus Wong's avatar Camus Wong
Browse files

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: default avatarCamus Wong <camusw@codeaurora.org>
parent 25f64653
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -1396,6 +1396,9 @@ static int mdss_mdp_map_buffer(struct mdss_mdp_img_data *data, bool rotator,
	int ret = -EINVAL;
	int domain;
	struct mdss_data_type *mdata = mdss_mdp_get_mdata();
	struct scatterlist *sg;
	unsigned int i;
	struct sg_table *table;

	if (data->addr && data->len)
		return 0;
@@ -1417,7 +1420,11 @@ static int mdss_mdp_map_buffer(struct mdss_mdp_img_data *data, bool rotator,
			data->mapped = true;
		} else {
			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;
		}
	}