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

Commit dffeb172 authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "msm: kgsl: Add run time hardware clockgating control"

parents 5503f450 53e3479a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -98,7 +98,7 @@ static struct adreno_device device_3d0 = {
	.input_work = __WORK_INITIALIZER(device_3d0.input_work,
		adreno_input_work),
	.pwrctrl_flag = BIT(ADRENO_SPTP_PC_CTRL) | BIT(ADRENO_PPD_CTRL) |
		BIT(ADRENO_LM_CTRL),
		BIT(ADRENO_LM_CTRL) | BIT(ADRENO_HWCG_CTRL),
	.profile.enabled = false,
};

+1 −0
Original line number Diff line number Diff line
@@ -186,6 +186,7 @@ enum adreno_gpurev {
#define ADRENO_SPTP_PC_CTRL 0
#define ADRENO_PPD_CTRL     1
#define ADRENO_LM_CTRL      2
#define ADRENO_HWCG_CTRL    3

/* number of throttle counters for DCVS adjustment */
#define ADRENO_GPMU_THROTTLE_COUNTERS 4
+3 −0
Original line number Diff line number Diff line
@@ -1197,6 +1197,9 @@ static void a5xx_hwcg_init(struct adreno_device *adreno_dev)
	const struct kgsl_hwcg_reg *regs;
	int i, j;

	if (!test_bit(ADRENO_HWCG_CTRL, &adreno_dev->pwrctrl_flag))
		return;

	for (i = 0; i < ARRAY_SIZE(a5xx_hwcg_registers); i++) {
		if (a5xx_hwcg_registers[i].devfunc(adreno_dev))
			break;
+14 −0
Original line number Diff line number Diff line
@@ -190,6 +190,17 @@ static unsigned int _preemption_show(struct adreno_device *adreno_dev)
	return adreno_is_preemption_enabled(adreno_dev);
}

static int _hwcg_store(struct adreno_device *adreno_dev,
		unsigned int val)
{
	return _pwrctrl_store(adreno_dev, val, ADRENO_HWCG_CTRL);
}

static unsigned int _hwcg_show(struct adreno_device *adreno_dev)
{
	return test_bit(ADRENO_HWCG_CTRL, &adreno_dev->pwrctrl_flag);
}

static int _sptp_pc_store(struct adreno_device *adreno_dev,
		unsigned int val)
{
@@ -303,6 +314,8 @@ static DEVICE_INT_ATTR(wake_timeout, 0644, adreno_wake_timeout);
static ADRENO_SYSFS_BOOL(sptp_pc);
static ADRENO_SYSFS_BOOL(lm);
static ADRENO_SYSFS_BOOL(preemption);
static ADRENO_SYSFS_BOOL(hwcg);


static const struct device_attribute *_attr_list[] = {
	&adreno_attr_ft_policy.attr,
@@ -315,6 +328,7 @@ static const struct device_attribute *_attr_list[] = {
	&adreno_attr_sptp_pc.attr,
	&adreno_attr_lm.attr,
	&adreno_attr_preemption.attr,
	&adreno_attr_hwcg.attr,
	NULL,
};