qcom: llcc_perfmon: Add support to update DUMP_CFG register

Update PERFMON_NUM_CNTRS_DUMP_CFG register with total number of
configured counters to support packet based dump.

Change-Id: I0a85745f24d89816a6527e7a00ec1a75c60e0b84
Signed-off-by: Aman Kanwar <quic_akanwar@quicinc.com>
This commit is contained in:
Aman Kanwar 2023-05-13 01:28:44 +05:30
parent 8ba1cde4c4
commit f497e73853
2 changed files with 11 additions and 1 deletions

View File

@ -940,7 +940,7 @@ static ssize_t perfmon_start_store(struct device *dev, struct device_attribute *
const char *buf, size_t count)
{
struct llcc_perfmon_private *llcc_priv = dev_get_drvdata(dev);
uint32_t val = 0, mask_val, offset;
uint32_t val = 0, mask_val, offset, cntr_num = DUMP_NUM_COUNTERS_MASK;
unsigned long start;
int ret = 0;
@ -973,6 +973,8 @@ static ssize_t perfmon_start_store(struct device *dev, struct device_attribute *
HRTIMER_MODE_REL_PINNED);
}
cntr_num = (((llcc_priv->configured_cntrs - 1) & DUMP_NUM_COUNTERS_MASK) <<
DUMP_NUM_COUNTERS_SHIFT);
} else {
if (llcc_priv->expires)
hrtimer_cancel(&llcc_priv->hrtimer);
@ -998,6 +1000,10 @@ static ssize_t perfmon_start_store(struct device *dev, struct device_attribute *
llcc_bcast_modify(llcc_priv, offset, val, mask_val);
}
/* Updating total counters to dump info, based on configured counters */
offset = PERFMON_NUM_CNTRS_DUMP_CFG(llcc_priv->drv_ver);
llcc_bcast_write(llcc_priv, offset, cntr_num);
mutex_unlock(&llcc_priv->mutex);
return count;
}

View File

@ -82,6 +82,7 @@
#define PMGR_PROF_EVENT_n_CFG(v, n) ((VER_CHK(v) ? 0x4D000 : 0x03F000) + 4 * (n))
#define PERFMON_COUNTER_n_CONFIG(v, n) ((VER_CHK(v) ? 0x36020 : 0x031020) + 4 * (n))
#define PERFMON_NUM_CNTRS_DUMP_CFG(v) (VER_CHK(v) ? 0x360EC : 0x0310EC)
#define PERFMON_MODE(v) (VER_CHK(v) ? 0x3600C : 0x03100C)
#define PERFMON_DUMP(v) (VER_CHK4(v) ? 0x37000 : VER_CHK(v) ? 0x36010 : 0x031010)
@ -116,6 +117,9 @@
#define PERFMON_MODE_MONITOR_MODE_MASK GENMASK(MONITOR_MODE_SHIFT + 0, MONITOR_MODE_SHIFT)
#define MONITOR_DUMP BIT(0)
#define DUMP_NUM_COUNTERS_SHIFT (0)
#define DUMP_NUM_COUNTERS_MASK GENMASK(DUMP_NUM_COUNTERS_SHIFT + 3,\
DUMP_NUM_COUNTERS_SHIFT)
/* COMMON */
#define BYTE_SCALING (1024)