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

Commit f1100e71 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 GPU_UCHE_GBIF_GX_CONFIG to powerup register list"

parents 570df41a ab6b8950
Loading
Loading
Loading
Loading
+24 −4
Original line number Diff line number Diff line
@@ -363,6 +363,10 @@ static struct reg_list_pair a6xx_ifpc_pwrup_reglist[] = {
	{ A6XX_CP_AHB_CNTL, 0x0 },
};

static struct reg_list_pair a615_ifpc_pwrup_reglist[] = {
	{ A6XX_UCHE_GBIF_GX_CONFIG, 0x0 },
};

static void _update_always_on_regs(struct adreno_device *adreno_dev)
{
	struct adreno_gpudev *gpudev = ADRENO_GPU_DEVICE(adreno_dev);
@@ -584,6 +588,7 @@ static void a6xx_patch_pwrup_reglist(struct adreno_device *adreno_dev)
	uint32_t i;
	struct cpu_gpu_lock *lock;
	struct reg_list_pair *r;
	uint16_t a615_list_size = 0;

	/* Set up the register values */
	for (i = 0; i < ARRAY_SIZE(a6xx_ifpc_pwrup_reglist); i++) {
@@ -596,6 +601,19 @@ static void a6xx_patch_pwrup_reglist(struct adreno_device *adreno_dev)
		kgsl_regread(KGSL_DEVICE(adreno_dev), r->offset, &r->val);
	}

	if (adreno_is_a615(adreno_dev)) {
		for (i = 0; i < ARRAY_SIZE(a615_ifpc_pwrup_reglist); i++) {
			r = &a615_ifpc_pwrup_reglist[i];
			kgsl_regread(KGSL_DEVICE(adreno_dev),
				r->offset, &r->val);
		}

		a615_list_size = sizeof(a615_ifpc_pwrup_reglist);

		memcpy(adreno_dev->pwrup_reglist.hostptr + sizeof(*lock),
			a615_ifpc_pwrup_reglist, a615_list_size);
	}

	lock = (struct cpu_gpu_lock *) adreno_dev->pwrup_reglist.hostptr;
	lock->flag_ucode = 0;
	lock->flag_kmd = 0;
@@ -614,13 +632,15 @@ static void a6xx_patch_pwrup_reglist(struct adreno_device *adreno_dev)
	 * of the static IFPC-only register list.
	 */
	lock->list_length = (sizeof(a6xx_ifpc_pwrup_reglist) +
			sizeof(a6xx_pwrup_reglist)) >> 2;
	lock->list_offset = sizeof(a6xx_ifpc_pwrup_reglist) >> 2;
			sizeof(a6xx_pwrup_reglist) + a615_list_size) >> 2;
	lock->list_offset = (sizeof(a6xx_ifpc_pwrup_reglist) +
			a615_list_size) >> 2;

	memcpy(adreno_dev->pwrup_reglist.hostptr + sizeof(*lock),
	memcpy(adreno_dev->pwrup_reglist.hostptr + sizeof(*lock)
		+ a615_list_size,
		a6xx_ifpc_pwrup_reglist, sizeof(a6xx_ifpc_pwrup_reglist));
	memcpy(adreno_dev->pwrup_reglist.hostptr + sizeof(*lock)
		+ sizeof(a6xx_ifpc_pwrup_reglist),
		+ sizeof(a6xx_ifpc_pwrup_reglist) + a615_list_size,
		a6xx_pwrup_reglist, sizeof(a6xx_pwrup_reglist));
}