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

Commit 76ecd06c authored by Lynus Vaz's avatar Lynus Vaz
Browse files

msm: kgsl: Abstract out the GPMU perfcounter registers



The GPMU power perfcounters used the A5XX offsets in common code.
Use the appropriate register offsets instead of A5XX offsets.

Change-Id: I417c6014aa768146dd4131f261b13398642bd407
Signed-off-by: default avatarLynus Vaz <lvaz@codeaurora.org>
parent 3ff1b082
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -641,6 +641,7 @@ enum adreno_regs {
	ADRENO_REG_GMU_HOST2GMU_INTR_SET,
	ADRENO_REG_GMU_HOST2GMU_INTR_CLR,
	ADRENO_REG_GMU_HOST2GMU_INTR_RAW_INFO,
	ADRENO_REG_GPMU_POWER_COUNTER_ENABLE,
	ADRENO_REG_REGISTER_MAX,
};

+2 −0
Original line number Diff line number Diff line
@@ -3017,6 +3017,8 @@ static unsigned int a5xx_register_offsets[ADRENO_REG_REGISTER_MAX] = {
				A5XX_VBIF_XIN_HALT_CTRL1),
	ADRENO_REG_DEFINE(ADRENO_REG_VBIF_VERSION,
				A5XX_VBIF_VERSION),
	ADRENO_REG_DEFINE(ADRENO_REG_GPMU_POWER_COUNTER_ENABLE,
				A5XX_GPMU_POWER_COUNTER_ENABLE),
};

static const struct adreno_reg_offsets a5xx_reg_offsets = {
+3 −3
Original line number Diff line number Diff line
@@ -654,7 +654,7 @@ static void _power_counter_enable_gpmu(struct adreno_device *adreno_dev,
{
	struct kgsl_device *device = KGSL_DEVICE(adreno_dev);
	struct adreno_perfcount_register *reg;
	unsigned int shift = counter << 3;
	unsigned int shift = (counter << 3) % (sizeof(unsigned int) * 8);

	if (adreno_is_a530(adreno_dev)) {
		if (countable > 43)
@@ -668,7 +668,7 @@ static void _power_counter_enable_gpmu(struct adreno_device *adreno_dev,

	reg = &counters->groups[group].regs[counter];
	kgsl_regrmw(device, reg->select, 0xff << shift, countable << shift);
	kgsl_regwrite(device, A5XX_GPMU_POWER_COUNTER_ENABLE, 1);
	adreno_writereg(adreno_dev, ADRENO_REG_GPMU_POWER_COUNTER_ENABLE, 1);
	reg->value = 0;
}

@@ -684,7 +684,7 @@ static void _power_counter_enable_default(struct adreno_device *adreno_dev,

	reg = &counters->groups[group].regs[counter];
	kgsl_regwrite(device, reg->select, countable);
	kgsl_regwrite(device, A5XX_GPMU_POWER_COUNTER_ENABLE, 1);
	adreno_writereg(adreno_dev, ADRENO_REG_GPMU_POWER_COUNTER_ENABLE, 1);
	reg->value = 0;
}