Hi Suzuki,
On 3/23/2023 10:41 PM, Suzuki K Poulose wrote:
On 23/03/2023 06:04, Tao Zhang wrote:
TPDM device need a node to reset the configurations and status of it. This change provides a node to reset the configurations and disable the TPDM if it has been enabled.
Signed-off-by: Tao Zhang quic_taozha@quicinc.com
drivers/hwtracing/coresight/coresight-tpdm.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+)
diff --git a/drivers/hwtracing/coresight/coresight-tpdm.c b/drivers/hwtracing/coresight/coresight-tpdm.c index 5e1e2ba..104638d 100644 --- a/drivers/hwtracing/coresight/coresight-tpdm.c +++ b/drivers/hwtracing/coresight/coresight-tpdm.c @@ -161,6 +161,33 @@ static void tpdm_datasets_setup(struct tpdm_drvdata *drvdata) drvdata->datasets |= pidr & GENMASK(TPDM_DATASETS - 1, 0); } +static ssize_t reset_store(struct device *dev, + struct device_attribute *attr, + const char *buf, + size_t size) +{ + int ret = 0; + unsigned long val; + struct tpdm_drvdata *drvdata = dev_get_drvdata(dev->parent);
+ ret = kstrtoul(buf, 10, &val); + if (ret || val != 1) + return -EINVAL;
+ spin_lock(&drvdata->spinlock); + /* Reset all datasets to ZERO, and init the default data*/ + tpdm_init_datasets(drvdata);
With the suggested rename in the previous patch, you wouldn't need a comment here.
I will update this in the next patch series.
+ spin_unlock(&drvdata->spinlock);
+ /* Disable tpdm if enabled */ + if (drvdata->enable) + coresight_disable(drvdata->csdev);
Couldn't this be done via disable_source ? Please don't overload the sysfs handle.
I will update this in the next patch series.
+ return size; +} +static DEVICE_ATTR_WO(reset);
Documentation for the sysfs node please ?
I will update this in the next patch series.
Suzuki