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

Commit 1988f6e3 authored by Shaoqing Liu's avatar Shaoqing Liu Committed by Gerrit - the friendly Code Review server
Browse files

Coresight: tmc: Free memory when switching to USB mode



When user switches from memory mode to USB mode,
buffer for ETR needs to be freed first.

Change-Id: I018725f86e395f20c33d2ad04b814d8e8cb9972d
Signed-off-by: default avatarShaoqing Liu <shaoqingliu@codeaurora.org>
parent 8f98759d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -573,7 +573,7 @@ static int tmc_etr_alloc_mem(struct tmc_drvdata *drvdata)
	return ret;
}

static void tmc_etr_free_mem(struct tmc_drvdata *drvdata)
void tmc_etr_free_mem(struct tmc_drvdata *drvdata)
{
	if (drvdata->vaddr) {
		if (drvdata->memtype == TMC_ETR_MEM_TYPE_CONTIG)
+6 −2
Original line number Diff line number Diff line
@@ -474,8 +474,12 @@ static ssize_t out_mode_store(struct device *dev,
		drvdata->out_mode = TMC_ETR_OUT_MODE_USB;
		spin_unlock_irqrestore(&drvdata->spinlock, flags);

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

		drvdata->usbch = usb_qdss_open("qdss", drvdata,
					       usb_notifier);
+1 −0
Original line number Diff line number Diff line
@@ -274,6 +274,7 @@ extern struct byte_cntr *byte_cntr_init(struct amba_device *adev,
					struct tmc_drvdata *drvdata);
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 const struct coresight_ops tmc_etr_cs_ops;