|
@@ -268,6 +268,114 @@ static const struct coresight_ops etm4_cs_ops = {
|
|
|
.source_ops = &etm4_source_ops,
|
|
|
};
|
|
|
|
|
|
+static ssize_t nr_pe_cmp_show(struct device *dev,
|
|
|
+ struct device_attribute *attr,
|
|
|
+ char *buf)
|
|
|
+{
|
|
|
+ unsigned long val;
|
|
|
+ struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
|
|
|
+
|
|
|
+ val = drvdata->nr_pe_cmp;
|
|
|
+ return scnprintf(buf, PAGE_SIZE, "%#lx\n", val);
|
|
|
+}
|
|
|
+static DEVICE_ATTR_RO(nr_pe_cmp);
|
|
|
+
|
|
|
+static ssize_t nr_addr_cmp_show(struct device *dev,
|
|
|
+ struct device_attribute *attr,
|
|
|
+ char *buf)
|
|
|
+{
|
|
|
+ unsigned long val;
|
|
|
+ struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
|
|
|
+
|
|
|
+ val = drvdata->nr_addr_cmp;
|
|
|
+ return scnprintf(buf, PAGE_SIZE, "%#lx\n", val);
|
|
|
+}
|
|
|
+static DEVICE_ATTR_RO(nr_addr_cmp);
|
|
|
+
|
|
|
+static ssize_t nr_cntr_show(struct device *dev,
|
|
|
+ struct device_attribute *attr,
|
|
|
+ char *buf)
|
|
|
+{
|
|
|
+ unsigned long val;
|
|
|
+ struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
|
|
|
+
|
|
|
+ val = drvdata->nr_cntr;
|
|
|
+ return scnprintf(buf, PAGE_SIZE, "%#lx\n", val);
|
|
|
+}
|
|
|
+static DEVICE_ATTR_RO(nr_cntr);
|
|
|
+
|
|
|
+static ssize_t nr_ext_inp_show(struct device *dev,
|
|
|
+ struct device_attribute *attr,
|
|
|
+ char *buf)
|
|
|
+{
|
|
|
+ unsigned long val;
|
|
|
+ struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
|
|
|
+
|
|
|
+ val = drvdata->nr_ext_inp;
|
|
|
+ return scnprintf(buf, PAGE_SIZE, "%#lx\n", val);
|
|
|
+}
|
|
|
+static DEVICE_ATTR_RO(nr_ext_inp);
|
|
|
+
|
|
|
+static ssize_t numcidc_show(struct device *dev,
|
|
|
+ struct device_attribute *attr,
|
|
|
+ char *buf)
|
|
|
+{
|
|
|
+ unsigned long val;
|
|
|
+ struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
|
|
|
+
|
|
|
+ val = drvdata->numcidc;
|
|
|
+ return scnprintf(buf, PAGE_SIZE, "%#lx\n", val);
|
|
|
+}
|
|
|
+static DEVICE_ATTR_RO(numcidc);
|
|
|
+
|
|
|
+static ssize_t numvmidc_show(struct device *dev,
|
|
|
+ struct device_attribute *attr,
|
|
|
+ char *buf)
|
|
|
+{
|
|
|
+ unsigned long val;
|
|
|
+ struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
|
|
|
+
|
|
|
+ val = drvdata->numvmidc;
|
|
|
+ return scnprintf(buf, PAGE_SIZE, "%#lx\n", val);
|
|
|
+}
|
|
|
+static DEVICE_ATTR_RO(numvmidc);
|
|
|
+
|
|
|
+static ssize_t nrseqstate_show(struct device *dev,
|
|
|
+ struct device_attribute *attr,
|
|
|
+ char *buf)
|
|
|
+{
|
|
|
+ unsigned long val;
|
|
|
+ struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
|
|
|
+
|
|
|
+ val = drvdata->nrseqstate;
|
|
|
+ return scnprintf(buf, PAGE_SIZE, "%#lx\n", val);
|
|
|
+}
|
|
|
+static DEVICE_ATTR_RO(nrseqstate);
|
|
|
+
|
|
|
+static ssize_t nr_resource_show(struct device *dev,
|
|
|
+ struct device_attribute *attr,
|
|
|
+ char *buf)
|
|
|
+{
|
|
|
+ unsigned long val;
|
|
|
+ struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
|
|
|
+
|
|
|
+ val = drvdata->nr_resource;
|
|
|
+ return scnprintf(buf, PAGE_SIZE, "%#lx\n", val);
|
|
|
+}
|
|
|
+static DEVICE_ATTR_RO(nr_resource);
|
|
|
+
|
|
|
+static ssize_t nr_ss_cmp_show(struct device *dev,
|
|
|
+ struct device_attribute *attr,
|
|
|
+ char *buf)
|
|
|
+{
|
|
|
+ unsigned long val;
|
|
|
+ struct etmv4_drvdata *drvdata = dev_get_drvdata(dev->parent);
|
|
|
+
|
|
|
+ val = drvdata->nr_ss_cmp;
|
|
|
+ return scnprintf(buf, PAGE_SIZE, "%#lx\n", val);
|
|
|
+}
|
|
|
+static DEVICE_ATTR_RO(nr_ss_cmp);
|
|
|
+
|
|
|
static ssize_t cpu_show(struct device *dev,
|
|
|
struct device_attribute *attr, char *buf)
|
|
|
{
|
|
@@ -281,6 +389,15 @@ static ssize_t cpu_show(struct device *dev,
|
|
|
static DEVICE_ATTR_RO(cpu);
|
|
|
|
|
|
static struct attribute *coresight_etmv4_attrs[] = {
|
|
|
+ &dev_attr_nr_pe_cmp.attr,
|
|
|
+ &dev_attr_nr_addr_cmp.attr,
|
|
|
+ &dev_attr_nr_cntr.attr,
|
|
|
+ &dev_attr_nr_ext_inp.attr,
|
|
|
+ &dev_attr_numcidc.attr,
|
|
|
+ &dev_attr_numvmidc.attr,
|
|
|
+ &dev_attr_nrseqstate.attr,
|
|
|
+ &dev_attr_nr_resource.attr,
|
|
|
+ &dev_attr_nr_ss_cmp.attr,
|
|
|
&dev_attr_cpu.attr,
|
|
|
NULL,
|
|
|
};
|