| From eea0956a7a78ea09420552b71d46dca8b524f79b Mon Sep 17 00:00:00 2001 |
| From: Sasha Levin <sashal@kernel.org> |
| Date: Thu, 16 Jul 2020 11:57:39 -0600 |
| Subject: coresight: etmv4: Counter values not saved on disable |
| |
| From: Mike Leach <mike.leach@linaro.org> |
| |
| [ Upstream commit 8fa43700f69703f995ea715b76be6fabdd2f05de ] |
| |
| The counter value registers change during operation, however this change |
| is not reflected in the values seen by the user in sysfs. |
| |
| This fixes the issue by reading back the values on disable. |
| |
| Signed-off-by: Mike Leach <mike.leach@linaro.org> |
| Fixes: 2e1cdfe184b52 ("coresight-etm4x: Adding CoreSight ETM4x driver") |
| Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org> |
| Link: https://lore.kernel.org/r/20200716175746.3338735-11-mathieu.poirier@linaro.org |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| Signed-off-by: Sasha Levin <sashal@kernel.org> |
| --- |
| drivers/hwtracing/coresight/coresight-etm4x.c | 6 ++++++ |
| 1 file changed, 6 insertions(+) |
| |
| diff --git a/drivers/hwtracing/coresight/coresight-etm4x.c b/drivers/hwtracing/coresight/coresight-etm4x.c |
| index d59e4b1e5ce58..942b362a1f220 100644 |
| --- a/drivers/hwtracing/coresight/coresight-etm4x.c |
| +++ b/drivers/hwtracing/coresight/coresight-etm4x.c |
| @@ -507,6 +507,12 @@ static void etm4_disable_hw(void *info) |
| readl_relaxed(drvdata->base + TRCSSCSRn(i)); |
| } |
| |
| + /* read back the current counter values */ |
| + for (i = 0; i < drvdata->nr_cntr; i++) { |
| + config->cntr_val[i] = |
| + readl_relaxed(drvdata->base + TRCCNTVRn(i)); |
| + } |
| + |
| coresight_disclaim_device_unlocked(drvdata->base); |
| |
| CS_LOCK(drvdata->base); |
| -- |
| 2.25.1 |
| |