From 72dd2a16b1f030ea948d1b197fa42f18a97c6149 Mon Sep 17 00:00:00 2001 From: Tao Zhang Date: Tue, 11 Aug 2020 17:04:53 +0800 Subject: [PATCH] coresight: tmc: Set flush cti for both etr and etb Set flush cti for both etr and etb. Set FlushandStop bit to default value of FFCR in enablement function. Config the correct trigger number of flush and reset cti for both etr and etb. Change-Id: Idee3802e5a69aca521a6259f9936ddb8361a87d4 Signed-off-by: Tao Zhang Signed-off-by: Mao Jinlong --- drivers/hwtracing/coresight/coresight-tmc-etf.c | 2 +- drivers/hwtracing/coresight/coresight-tmc-etr.c | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/hwtracing/coresight/coresight-tmc-etf.c b/drivers/hwtracing/coresight/coresight-tmc-etf.c index 09d802f3474f..4b3aa0d9b816 100644 --- a/drivers/hwtracing/coresight/coresight-tmc-etf.c +++ b/drivers/hwtracing/coresight/coresight-tmc-etf.c @@ -26,7 +26,7 @@ static void __tmc_etb_enable_hw(struct tmc_drvdata *drvdata) writel_relaxed(TMC_MODE_CIRCULAR_BUFFER, drvdata->base + TMC_MODE); writel_relaxed(TMC_FFCR_EN_FMT | TMC_FFCR_EN_TI | TMC_FFCR_FON_FLIN | TMC_FFCR_FON_TRIG_EVT | - TMC_FFCR_TRIGON_TRIGIN, + TMC_FFCR_TRIGON_TRIGIN | TMC_FFCR_STOP_ON_FLUSH, drvdata->base + TMC_FFCR); writel_relaxed(drvdata->trigger_cntr, drvdata->base + TMC_TRG); diff --git a/drivers/hwtracing/coresight/coresight-tmc-etr.c b/drivers/hwtracing/coresight/coresight-tmc-etr.c index 9c9338e31331..defb7d669b05 100644 --- a/drivers/hwtracing/coresight/coresight-tmc-etr.c +++ b/drivers/hwtracing/coresight/coresight-tmc-etr.c @@ -1013,7 +1013,7 @@ static void __tmc_etr_enable_hw(struct tmc_drvdata *drvdata) writel_relaxed(TMC_FFCR_EN_FMT | TMC_FFCR_EN_TI | TMC_FFCR_FON_FLIN | TMC_FFCR_FON_TRIG_EVT | - TMC_FFCR_TRIGON_TRIGIN, + TMC_FFCR_TRIGON_TRIGIN | TMC_FFCR_STOP_ON_FLUSH, drvdata->base + TMC_FFCR); writel_relaxed(drvdata->trigger_cntr, drvdata->base + TMC_TRG); tmc_enable_hw(drvdata); @@ -1471,7 +1471,7 @@ static int tmc_enable_etr_sink_sysfs(struct coresight_device *csdev) if (IS_ERR(new_buf)) return -ENOMEM; coresight_cti_map_trigout(drvdata->cti_flush, 3, 0); - coresight_cti_map_trigin(drvdata->cti_reset, 2, 0); + coresight_cti_map_trigin(drvdata->cti_reset, 0, 0); } spin_lock_irqsave(&drvdata->spinlock, flags); } @@ -2053,7 +2053,7 @@ static int _tmc_disable_etr_sink(struct coresight_device *csdev, flush_workqueue(drvdata->byte_cntr->usb_wq); drvdata->usbch = NULL; } - coresight_cti_unmap_trigin(drvdata->cti_reset, 2, 0); + coresight_cti_unmap_trigin(drvdata->cti_reset, 0, 0); coresight_cti_unmap_trigout(drvdata->cti_flush, 3, 0); } out: