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

Commit f5476e6e authored by qctecmdr Service's avatar qctecmdr Service Committed by Gerrit - the friendly Code Review server
Browse files

Merge "Coresight: tmc: need alloc memory before enable tmc etr"

parents 9d91bf18 dbe83b72
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -542,7 +542,7 @@ void tmc_etr_disable_hw(struct tmc_drvdata *drvdata)
	CS_LOCK(drvdata->base);
}

static int tmc_etr_alloc_mem(struct tmc_drvdata *drvdata)
int tmc_etr_alloc_mem(struct tmc_drvdata *drvdata)
{
	int ret;

+14 −3
Original line number Diff line number Diff line
@@ -446,6 +446,16 @@ static ssize_t out_mode_store(struct device *dev,
			spin_unlock_irqrestore(&drvdata->spinlock, flags);
			goto out;
		}

		if (!drvdata->vaddr) {
			spin_unlock_irqrestore(&drvdata->spinlock, flags);
			ret = tmc_etr_alloc_mem(drvdata);
			if (ret) {
				mutex_unlock(&drvdata->mem_lock);
				return ret;
			}
			spin_lock_irqsave(&drvdata->spinlock, flags);
		}
		__tmc_etr_disable_to_bam(drvdata);
		tmc_etr_enable_hw(drvdata);
		drvdata->out_mode = TMC_ETR_OUT_MODE_MEM;
@@ -474,9 +484,10 @@ static ssize_t out_mode_store(struct device *dev,
		drvdata->out_mode = TMC_ETR_OUT_MODE_USB;
		spin_unlock_irqrestore(&drvdata->spinlock, flags);

		if (drvdata->mode != CS_MODE_DISABLED) {
			coresight_cti_unmap_trigin(drvdata->cti_reset, 2, 0);
		coresight_cti_unmap_trigout(drvdata->cti_flush, 3, 0);
		coresight_cti_unmap_trigin(drvdata->cti_reset, 2, 0);

		if (drvdata->vaddr) {
			tmc_etr_byte_cntr_stop(drvdata->byte_cntr);
			tmc_etr_free_mem(drvdata);
		}
+1 −0
Original line number Diff line number Diff line
@@ -275,6 +275,7 @@ extern struct byte_cntr *byte_cntr_init(struct amba_device *adev,
extern const struct coresight_ops tmc_etr_cs_ops;
extern void tmc_etr_sg_rwp_pos(struct tmc_drvdata *drvdata, phys_addr_t rwp);
extern void tmc_etr_free_mem(struct tmc_drvdata *drvdata);
extern int tmc_etr_alloc_mem(struct tmc_drvdata *drvdata);

extern const struct coresight_ops tmc_etr_cs_ops;