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

Commit 8c9447d8 authored by Hareesh Gundu's avatar Hareesh Gundu
Browse files

msm: kgsl: Make VBIF register dump more generic



Make VBIF register dump more generic to avoid adding new entry
for every VBIF revision. There will not be any change in register
mapping and address for new VBIF revision. AHB reads are permitted
throughout entire VBIF range. For all unoccupied registers read
values driven to 0 by HW but should not be relied upon.

CRs-Fixed: 1021711
Change-Id: I5aada474389e9189abcd38f1bc4854ada91dea87
Signed-off-by: default avatarHareesh Gundu <hareeshg@codeaurora.org>
parent 450bd44d
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -611,11 +611,13 @@ struct adreno_vbif_platform {
 * struct adreno_vbif_snapshot_registers - Holds an array of vbif registers
 * listed for snapshot dump for a particular core
 * @version: vbif version
 * @mask: vbif revision mask
 * @registers: vbif registers listed for snapshot dump
 * @count: count of vbif registers listed for snapshot
 */
struct adreno_vbif_snapshot_registers {
	const unsigned int version;
	const unsigned int mask;
	const unsigned int *registers;
	const int count;
};
+5 −5
Original line number Diff line number Diff line
@@ -168,15 +168,15 @@ static const unsigned int a4xx_vbif_ver_20050000_registers[] = {

static const struct adreno_vbif_snapshot_registers
					a4xx_vbif_snapshot_registers[] = {
	{ 0x20000000, a4xx_vbif_ver_20000000_registers,
	{ 0x20000000, 0xFFFF0000, a4xx_vbif_ver_20000000_registers,
				ARRAY_SIZE(a4xx_vbif_ver_20000000_registers)/2},
	{ 0x20020000, a4xx_vbif_ver_20020000_registers,
	{ 0x20020000, 0xFFFF0000, a4xx_vbif_ver_20020000_registers,
				ARRAY_SIZE(a4xx_vbif_ver_20020000_registers)/2},
	{ 0x20050000, a4xx_vbif_ver_20050000_registers,
	{ 0x20050000, 0xFFFF0000, a4xx_vbif_ver_20050000_registers,
				ARRAY_SIZE(a4xx_vbif_ver_20050000_registers)/2},
	{ 0x20070000, a4xx_vbif_ver_20020000_registers,
	{ 0x20070000, 0xFFFF0000, a4xx_vbif_ver_20020000_registers,
				ARRAY_SIZE(a4xx_vbif_ver_20020000_registers)/2},
	{ 0x20090000, a4xx_vbif_ver_20050000_registers,
	{ 0x20090000, 0xFFFF0000, a4xx_vbif_ver_20050000_registers,
				ARRAY_SIZE(a4xx_vbif_ver_20050000_registers)/2},
};

+3 −8
Original line number Diff line number Diff line
@@ -329,8 +329,7 @@ static void a5xx_snapshot_debugbus(struct kgsl_device *device,
	}
}

static const unsigned int a5xx_vbif_ver_20040000_registers[] = {
	/* VBIF version 0x20040000*/
static const unsigned int a5xx_vbif_ver_20xxxxxx_registers[] = {
	0x3000, 0x3007, 0x300C, 0x3014, 0x3018, 0x302C, 0x3030, 0x3030,
	0x3034, 0x3036, 0x3038, 0x3038, 0x303C, 0x303D, 0x3040, 0x3040,
	0x3042, 0x3042, 0x3049, 0x3049, 0x3058, 0x3058, 0x305A, 0x3061,
@@ -344,12 +343,8 @@ static const unsigned int a5xx_vbif_ver_20040000_registers[] = {

static const struct adreno_vbif_snapshot_registers
a5xx_vbif_snapshot_registers[] = {
	{ 0x20040000, a5xx_vbif_ver_20040000_registers,
				ARRAY_SIZE(a5xx_vbif_ver_20040000_registers)/2},
	{ 0x20040001, a5xx_vbif_ver_20040000_registers,
				ARRAY_SIZE(a5xx_vbif_ver_20040000_registers)/2},
	{ 0x200A0000, a5xx_vbif_ver_20040000_registers,
				ARRAY_SIZE(a5xx_vbif_ver_20040000_registers)/2},
	{ 0x20000000, 0xFF000000, a5xx_vbif_ver_20xxxxxx_registers,
				ARRAY_SIZE(a5xx_vbif_ver_20xxxxxx_registers)/2},
};

/*
+2 −1
Original line number Diff line number Diff line
@@ -1118,7 +1118,8 @@ static const struct adreno_vbif_snapshot_registers *vbif_registers(
	adreno_readreg(adreno_dev, ADRENO_REG_VBIF_VERSION, &version);

	for (i = 0; i < count; i++) {
		if (list[i].version == version)
		if ((list[i].version & list[i].mask) ==
				(version & list[i].mask))
			return &list[i];
	}