Messages in this thread | | | Date | Thu, 23 Mar 2023 14:41:29 +0000 | Subject | Re: [PATCH v3 04/11] coresight-tpdm: Add reset node to TPDM node | From | Suzuki K Poulose <> |
| |
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.
> + > + 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.
> + > + return size; > +} > +static DEVICE_ATTR_WO(reset);
Documentation for the sysfs node please ?
Suzuki
| |