coresight-etm4x: Controls pertaining to tracer configuration
Tracers can be configured with various options at synthesis time and knowing what resources are available is important for SW configuration purposes. As such adding RO sysfs entries for characteristics related to the tracer implementation. Signed-off-by: Pratik Patel <pratikp@codeaurora.org> Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
2e1cdfe184
commit
c0ddbfea72
@@ -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,
|
||||
};
|
||||
|
Reference in New Issue
Block a user