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

Commit 3feec480 authored by Hareesh Gundu's avatar Hareesh Gundu
Browse files

msm: kgsl: Skip soft reset for A304



A304 gpu is not able to update the TTBR0 register via the
GPU self-programming path after soft reset. This will result
into NOC error in GPU fault recovery path. To avoid this
use hard reset path for A304.

CRs-Fixed: 775197
Change-Id: I9663780ea601b7b5e8780111f286dec1950e5c25
Signed-off-by: default avatarHareesh Gundu <hareeshg@codeaurora.org>
parent 7a930d84
Loading
Loading
Loading
Loading
+7 −3
Original line number Original line Diff line number Diff line
/* Copyright (c) 2002,2007-2014, The Linux Foundation. All rights reserved.
/* Copyright (c) 2002,2007-2015, The Linux Foundation. All rights reserved.
 *
 *
 * This program is free software; you can redistribute it and/or modify
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 and
 * it under the terms of the GNU General Public License version 2 and
@@ -1326,8 +1326,12 @@ int adreno_reset(struct kgsl_device *device)
	/* clear pending vbif transactions before reset */
	/* clear pending vbif transactions before reset */
	adreno_vbif_clear_pending_transactions(device);
	adreno_vbif_clear_pending_transactions(device);


	/* Try soft reset first, for non mmu fault case only */
	/*
	if (!atomic_read(&mmu->fault)) {
	 * Try soft reset first, for non mmu fault case only.
	 * Skip soft reset and use hard reset for A304 GPU, As
	 * A304 is not able to do SMMU programming after soft reset.
	 */
	if (!atomic_read(&mmu->fault) && !adreno_is_a304(adreno_dev)) {
		ret = adreno_soft_reset(device);
		ret = adreno_soft_reset(device);
		if (ret)
		if (ret)
			KGSL_DEV_ERR_ONCE(device, "Device soft reset failed\n");
			KGSL_DEV_ERR_ONCE(device, "Device soft reset failed\n");