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

Commit 47d9cae0 authored by Rama Aparna Mallavarapu's avatar Rama Aparna Mallavarapu
Browse files

coresight: tmc: Read the TMC mode register only if clk is enabled



Ensure to check if the TMC clk is enabled before reading the TMC mode
register.

Change-Id: I461c08c1b6e442ae711620a83181dc9865af75cb
Signed-off-by: default avatarRama Aparna Mallavarapu <aparnam@codeaurora.org>
parent d24ab7a8
Loading
Loading
Loading
Loading
+14 −10
Original line number Diff line number Diff line
@@ -521,12 +521,14 @@ int tmc_read_prepare_etb(struct tmc_drvdata *drvdata)
		goto out;
	}

	if (drvdata->enable) {
		/* There is no point in reading a TMC in HW FIFO mode */
		mode = readl_relaxed(drvdata->base + TMC_MODE);
		if (mode != TMC_MODE_CIRCULAR_BUFFER) {
			ret = -EINVAL;
			goto out;
		}
	}

	val = local_read(&drvdata->mode);
	/* Don't interfere if operated from Perf */
@@ -565,12 +567,14 @@ int tmc_read_unprepare_etb(struct tmc_drvdata *drvdata)

	spin_lock_irqsave(&drvdata->spinlock, flags);

	if (drvdata->enable) {
		/* There is no point in reading a TMC in HW FIFO mode */
		mode = readl_relaxed(drvdata->base + TMC_MODE);
		if (mode != TMC_MODE_CIRCULAR_BUFFER) {
			spin_unlock_irqrestore(&drvdata->spinlock, flags);
			return -EINVAL;
		}
	}

	/* Re-enable the TMC if need be */
	if (local_read(&drvdata->mode) == CS_MODE_SYSFS) {