Re: [PATCH v3 04/11] coresight-tpdm: Add reset node to TPDM node

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxx>
---
  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




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [Linux for Sparc]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux