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

Commit fdde54c4 authored by Rob Clark's avatar Rob Clark Committed by Jordan Crouse
Browse files

drm/msm/rd: split out snapshot_buf helper



(reduce the noise in next patch)

Change-Id: Ic0dedbadd4b1100ff7b203f120f4acd0c4bf8d09
Signed-off-by: default avatarRob Clark <robdclark@gmail.com>
Git-commit: 6507e799f432d9fa86ba398b095ef1139a70deac
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git


[jcrouse@codeaurora.org: fixed minor merge conflicts]
Signed-off-by: default avatarJordan Crouse <jcrouse@codeaurora.org>
parent c1a24720
Loading
Loading
Loading
Loading
+20 −9
Original line number Diff line number Diff line
@@ -277,6 +277,24 @@ void msm_rd_debugfs_cleanup(struct drm_minor *minor)
	kfree(rd);
}

static void snapshot_buf(struct msm_rd_state *rd,
		struct msm_gem_submit *submit, int idx,
		uint64_t iova, uint32_t size)
{
	struct msm_gem_object *obj = submit->bos[idx].obj;
	const char *buf;

	buf = msm_gem_vaddr(&obj->base);
	if (IS_ERR(buf))
		return;

	buf += iova - submit->bos[idx].iova;

	rd_write_section(rd, RD_GPUADDR,
			(uint64_t[2]) { iova, size }, 16);
	rd_write_section(rd, RD_BUFFER_CONTENTS, buf, size);
}

/* called under struct_mutex */
void msm_rd_dump_submit(struct msm_gem_submit *submit)
{
@@ -306,18 +324,11 @@ void msm_rd_dump_submit(struct msm_gem_submit *submit)
	 */

	for (i = 0; i < submit->nr_cmds; i++) {
		uint32_t idx  = submit->cmd[i].idx;
		uint64_t iova = submit->cmd[i].iova;
		uint32_t szd  = submit->cmd[i].size; /* in dwords */
		struct msm_gem_object *obj = submit->bos[idx].obj;
		const char *buf = msm_gem_vaddr(&obj->base);

		buf += iova - submit->bos[idx].iova;

		rd_write_section(rd, RD_GPUADDR,
				(uint64_t[2]) { iova, szd * 4 }, 16);
		rd_write_section(rd, RD_BUFFER_CONTENTS,
				buf, szd * 4);
		snapshot_buf(rd, submit, submit->cmd[i].idx,
				submit->cmd[i].iova, szd * 4);

		switch (submit->cmd[i].type) {
		case MSM_SUBMIT_CMD_IB_TARGET_BUF: