drivers/perf: hisi: Fix data source control
authorShaokun Zhang <zhangshaokun@hisilicon.com>
Thu, 3 Jun 2021 08:34:51 +0000 (16:34 +0800)
committerWill Deacon <will@kernel.org>
Fri, 4 Jun 2021 18:21:09 +0000 (19:21 +0100)
'Data source' is a new function for HHA PMU and config / clear
interface was wrong by mistake. 'HHA_DATSRC_CTRL' register is
mainly used for data source configuration, if we enable bit0
as driver, it will go on count the event and we didn't check
it carefully. So fix the issue and do as the initial purpose.

Fixes: 932f6a99f9b0 ("drivers/perf: hisi: Add new functions for HHA PMU")
Reported-by: kernel test robot <lkp@intel.com>
Cc: Will Deacon <will@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Signed-off-by: Shaokun Zhang <zhangshaokun@hisilicon.com>
Link: https://lore.kernel.org/r/1622709291-37996-1-git-send-email-zhangshaokun@hisilicon.com
Signed-off-by: Will Deacon <will@kernel.org>
drivers/perf/hisilicon/hisi_uncore_hha_pmu.c

index 12b2c5e6d488d7f14e4876ccc88a7deacfde6036..393513150106a38402b1ef09c2e70f9bb960eb20 100644 (file)
@@ -90,7 +90,7 @@ static void hisi_hha_pmu_config_ds(struct perf_event *event)
 
                val = readl(hha_pmu->base + HHA_DATSRC_CTRL);
                val |= HHA_DATSRC_SKT_EN;
-               writel(ds_skt, hha_pmu->base + HHA_DATSRC_CTRL);
+               writel(val, hha_pmu->base + HHA_DATSRC_CTRL);
        }
 }
 
@@ -104,7 +104,7 @@ static void hisi_hha_pmu_clear_ds(struct perf_event *event)
 
                val = readl(hha_pmu->base + HHA_DATSRC_CTRL);
                val &= ~HHA_DATSRC_SKT_EN;
-               writel(ds_skt, hha_pmu->base + HHA_DATSRC_CTRL);
+               writel(val, hha_pmu->base + HHA_DATSRC_CTRL);
        }
 }