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

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

Merge "coresight-tmc: Re-use ETR buffer across use cases"

parents f9ab1104 7e797494
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -940,11 +940,12 @@ int tmc_read_prepare_etr(struct tmc_drvdata *drvdata)
int tmc_read_unprepare_etr(struct tmc_drvdata *drvdata)
{
	unsigned long flags;
	void *vaddr = NULL;

	/* config types are set a boot time and never change */
	if (WARN_ON_ONCE(drvdata->config_type != TMC_CONFIG_TYPE_ETR))
		return -EINVAL;

	mutex_lock(&drvdata->mem_lock);
	spin_lock_irqsave(&drvdata->spinlock, flags);

	/* RE-enable the TMC if need be */
@@ -957,12 +958,16 @@ int tmc_read_unprepare_etr(struct tmc_drvdata *drvdata)
		 */
		tmc_etr_enable_hw(drvdata);
	} else {
		tmc_etr_free_mem(drvdata);
		vaddr = drvdata->vaddr;
		drvdata->buf = NULL;
	}

	drvdata->reading = false;
	spin_unlock_irqrestore(&drvdata->spinlock, flags);

	if (vaddr)
		tmc_etr_free_mem(drvdata);

	mutex_unlock(&drvdata->mem_lock);
	return 0;
}