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

Commit 28654efb authored by Pankaj Gupta's avatar Pankaj Gupta
Browse files

msm: kgsl: Properly set fault bit in adreno_set_gpu_fault



Replacing atomic_add by atomic_or to set the fault bit
properly without overwriting other bits.

Change-Id: Ie25d8e5f32d5b1f0d6e50931cc23bd32b2f01b6d
Signed-off-by: default avatarPankaj Gupta <gpankaj@codeaurora.org>
parent a0568d6e
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -1381,7 +1381,7 @@ static inline void adreno_set_gpu_fault(struct adreno_device *adreno_dev,
	int state)
{
	/* only set the fault bit w/o overwriting other bits */
	atomic_add(state, &adreno_dev->dispatcher.fault);
	atomic_or(state, &adreno_dev->dispatcher.fault);

	/* make sure other CPUs see the update */
	smp_wmb();
+3 −2
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved.
 * Copyright (c) 2017-2020, The Linux Foundation. All rights reserved.
 */

#include <dt-bindings/regulator/qcom,rpmh-regulator-levels.h>
@@ -549,7 +549,8 @@ static int gmu_dcvs_set(struct kgsl_device *device,
		 */
		if (test_bit(ADRENO_DEVICE_STARTED, &adreno_dev->priv)) {
			gmu_core_snapshot(device);
			adreno_set_gpu_fault(adreno_dev, ADRENO_GMU_FAULT |
			adreno_set_gpu_fault(adreno_dev, ADRENO_GMU_FAULT);
			adreno_set_gpu_fault(adreno_dev,
				ADRENO_GMU_FAULT_SKIP_SNAPSHOT);
			adreno_dispatcher_schedule(device);
		}