hwtracing: hisi_ptt: Disable interrupt after trace end
authorYicong Yang <yangyicong@hisilicon.com>
Tue, 10 Oct 2023 08:47:27 +0000 (16:47 +0800)
committerSuzuki K Poulose <suzuki.poulose@arm.com>
Thu, 16 Nov 2023 11:36:27 +0000 (11:36 +0000)
On trace end we disable the hardware but leave the interrupt
unmasked. Mask the interrupt to make the process reverse to
the start. No actual issue since hardware should send no
interrupt after disabled.

Signed-off-by: Yicong Yang <yangyicong@hisilicon.com>
Acked-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Signed-off-by: Suzuki K Poulose <suzuki.poulose@arm.com>
Link: https://lore.kernel.org/r/20231010084731.30450-2-yangyicong@huawei.com
drivers/hwtracing/ptt/hisi_ptt.c
drivers/hwtracing/ptt/hisi_ptt.h

index a991ecb7515a34d70d966d6d0fdbac86ebf34888..01a1eb0d498899e15e35dd77633f3e4cd0dda807 100644 (file)
@@ -183,6 +183,10 @@ static void hisi_ptt_wait_dma_reset_done(struct hisi_ptt *hisi_ptt)
 static void hisi_ptt_trace_end(struct hisi_ptt *hisi_ptt)
 {
        writel(0, hisi_ptt->iobase + HISI_PTT_TRACE_CTRL);
+
+       /* Mask the interrupt on the end */
+       writel(HISI_PTT_TRACE_INT_MASK_ALL, hisi_ptt->iobase + HISI_PTT_TRACE_INT_MASK);
+
        hisi_ptt->trace_ctrl.started = false;
 }
 
index e17f045d7e72597bc6bb0909722a0492e8db0e43..46030aa880811d1ccb29f5342b07cc9bef9bbef1 100644 (file)
@@ -47,6 +47,7 @@
 #define HISI_PTT_TRACE_INT_STAT                0x0890
 #define   HISI_PTT_TRACE_INT_STAT_MASK GENMASK(3, 0)
 #define HISI_PTT_TRACE_INT_MASK                0x0894
+#define   HISI_PTT_TRACE_INT_MASK_ALL  GENMASK(3, 0)
 #define HISI_PTT_TUNING_INT_STAT       0x0898
 #define   HISI_PTT_TUNING_INT_STAT_MASK        BIT(0)
 #define HISI_PTT_TRACE_WR_STS          0x08a0