* [PATCH 0/6] coresight: next v4.3-rc4
@ 2015-10-07 15:26 Mathieu Poirier
2015-10-07 15:26 ` [PATCH 1/6] Coresight: ETMv4: Prevent TRCRSCTLR0&1 from being accessed Mathieu Poirier
` (5 more replies)
0 siblings, 6 replies; 9+ messages in thread
From: Mathieu Poirier @ 2015-10-07 15:26 UTC (permalink / raw)
To: linux-arm-kernel
Good morning,
Please consider the following patches for merging in the 4.4 cycle.
Thanks,
Mathieu
Chunyan Zhang (1):
Coresight: ETMv4: Prevent TRCRSCTLR0&1 from being accessed
Mathieu Poirier (5):
coresight: fixing typographical error
coresight: adding comments to remove ambiguity
coresight: etm3x: adding cpu affinity to sysFS interface
coresight: etm3x: breaking down sysFS status interface
coresight: etm3x: making error message unambiguous
.../ABI/testing/sysfs-bus-coresight-devices-etm3x | 77 +++++++++++++--
drivers/hwtracing/coresight/coresight-etm3x.c | 107 ++++++++++++---------
drivers/hwtracing/coresight/coresight-etm4x.c | 22 +++--
drivers/hwtracing/coresight/coresight.c | 5 +
include/linux/coresight.h | 2 +-
5 files changed, 154 insertions(+), 59 deletions(-)
--
1.9.1
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 1/6] Coresight: ETMv4: Prevent TRCRSCTLR0&1 from being accessed
2015-10-07 15:26 [PATCH 0/6] coresight: next v4.3-rc4 Mathieu Poirier
@ 2015-10-07 15:26 ` Mathieu Poirier
2015-10-07 15:26 ` [PATCH 2/6] coresight: fixing typographical error Mathieu Poirier
` (4 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Mathieu Poirier @ 2015-10-07 15:26 UTC (permalink / raw)
To: linux-arm-kernel
From: Chunyan Zhang <zhang.chunyan@linaro.org>
1. TRCRSCTLRn - Resource Selection Control Registers n=0~1 are reserved,
we shouldn't access them.
2. The max number of 'n' here is defined in TRCIDR4.NUMRSPAIR whoes value
indicates the number of resource selection *pairs*, and 0 indicates
one resource selection pair, 1 indicates two pairs, and so on ...
So, the total number of resource selection control registers which we can
access is (TRCIDR4.NUMRSPAIR * 2)
Signed-off-by: Chunyan Zhang <zhang.chunyan@linaro.org>
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
---
drivers/hwtracing/coresight/coresight-etm4x.c | 22 ++++++++++++++++------
1 file changed, 16 insertions(+), 6 deletions(-)
diff --git a/drivers/hwtracing/coresight/coresight-etm4x.c b/drivers/hwtracing/coresight/coresight-etm4x.c
index 254a81a4e6f4..a6707642bb23 100644
--- a/drivers/hwtracing/coresight/coresight-etm4x.c
+++ b/drivers/hwtracing/coresight/coresight-etm4x.c
@@ -136,7 +136,9 @@ static void etm4_enable_hw(void *info)
writel_relaxed(drvdata->cntr_val[i],
drvdata->base + TRCCNTVRn(i));
}
- for (i = 0; i < drvdata->nr_resource; i++)
+
+ /* Resource selector pair 0 is always implemented and reserved */
+ for (i = 2; i < drvdata->nr_resource * 2; i++)
writel_relaxed(drvdata->res_ctrl[i],
drvdata->base + TRCRSCTLRn(i));
@@ -489,8 +491,9 @@ static ssize_t reset_store(struct device *dev,
drvdata->cntr_val[i] = 0x0;
}
- drvdata->res_idx = 0x0;
- for (i = 0; i < drvdata->nr_resource; i++)
+ /* Resource selector pair 0 is always implemented and reserved */
+ drvdata->res_idx = 0x2;
+ for (i = 2; i < drvdata->nr_resource * 2; i++)
drvdata->res_ctrl[i] = 0x0;
for (i = 0; i < drvdata->nr_ss_cmp; i++) {
@@ -1732,7 +1735,7 @@ static ssize_t res_idx_store(struct device *dev,
if (kstrtoul(buf, 16, &val))
return -EINVAL;
/* Resource selector pair 0 is always implemented and reserved */
- if ((val == 0) || (val >= drvdata->nr_resource))
+ if (val < 2 || val >= drvdata->nr_resource * 2)
return -EINVAL;
/*
@@ -2416,8 +2419,13 @@ static void etm4_init_arch_data(void *info)
drvdata->nr_addr_cmp = BMVAL(etmidr4, 0, 3);
/* NUMPC, bits[15:12] number of PE comparator inputs for tracing */
drvdata->nr_pe_cmp = BMVAL(etmidr4, 12, 15);
- /* NUMRSPAIR, bits[19:16] the number of resource pairs for tracing */
- drvdata->nr_resource = BMVAL(etmidr4, 16, 19);
+ /*
+ * NUMRSPAIR, bits[19:16]
+ * The number of resource pairs conveyed by the HW starts at 0, i.e a
+ * value of 0x0 indicate 1 resource pair, 0x1 indicate two and so on.
+ * As such add 1 to the value of NUMRSPAIR for a better representation.
+ */
+ drvdata->nr_resource = BMVAL(etmidr4, 16, 19) + 1;
/*
* NUMSSCC, bits[23:20] the number of single-shot
* comparator control for tracing
@@ -2504,6 +2512,8 @@ static void etm4_init_default_data(struct etmv4_drvdata *drvdata)
drvdata->cntr_val[i] = 0x0;
}
+ /* Resource selector pair 0 is always implemented and reserved */
+ drvdata->res_idx = 0x2;
for (i = 2; i < drvdata->nr_resource * 2; i++)
drvdata->res_ctrl[i] = 0x0;
--
1.9.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 2/6] coresight: fixing typographical error
2015-10-07 15:26 [PATCH 0/6] coresight: next v4.3-rc4 Mathieu Poirier
2015-10-07 15:26 ` [PATCH 1/6] Coresight: ETMv4: Prevent TRCRSCTLR0&1 from being accessed Mathieu Poirier
@ 2015-10-07 15:26 ` Mathieu Poirier
2015-10-07 15:26 ` [PATCH 3/6] coresight: adding comments to remove ambiguity Mathieu Poirier
` (3 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Mathieu Poirier @ 2015-10-07 15:26 UTC (permalink / raw)
To: linux-arm-kernel
Tracing gets enabled _for_ a source rather than _from_ a source.
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
---
include/linux/coresight.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/linux/coresight.h b/include/linux/coresight.h
index c69e1b932809..a7cabfa23b55 100644
--- a/include/linux/coresight.h
+++ b/include/linux/coresight.h
@@ -207,7 +207,7 @@ struct coresight_ops_link {
* Operations available for sources.
* @trace_id: returns the value of the component's trace ID as known
to the HW.
- * @enable: enables tracing from a source.
+ * @enable: enables tracing for a source.
* @disable: disables tracing for a source.
*/
struct coresight_ops_source {
--
1.9.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 3/6] coresight: adding comments to remove ambiguity
2015-10-07 15:26 [PATCH 0/6] coresight: next v4.3-rc4 Mathieu Poirier
2015-10-07 15:26 ` [PATCH 1/6] Coresight: ETMv4: Prevent TRCRSCTLR0&1 from being accessed Mathieu Poirier
2015-10-07 15:26 ` [PATCH 2/6] coresight: fixing typographical error Mathieu Poirier
@ 2015-10-07 15:26 ` Mathieu Poirier
2015-10-07 15:26 ` [PATCH 4/6] coresight: etm3x: adding cpu affinity to sysFS interface Mathieu Poirier
` (2 subsequent siblings)
5 siblings, 0 replies; 9+ messages in thread
From: Mathieu Poirier @ 2015-10-07 15:26 UTC (permalink / raw)
To: linux-arm-kernel
Add comment to function coresight_enable_path() to make
sure there is no misunderstanding about what the code does.
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
---
drivers/hwtracing/coresight/coresight.c | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/drivers/hwtracing/coresight/coresight.c b/drivers/hwtracing/coresight/coresight.c
index 894531d315b8..e25492137d8b 100644
--- a/drivers/hwtracing/coresight/coresight.c
+++ b/drivers/hwtracing/coresight/coresight.c
@@ -240,6 +240,11 @@ static int coresight_enable_path(struct list_head *path)
int ret = 0;
struct coresight_device *cd;
+ /*
+ * At this point we have a full @path, from source to sink. The
+ * sink is the first entry and the source the last one. Go through
+ * all the components and enable them one by one.
+ */
list_for_each_entry(cd, path, path_link) {
if (cd == list_first_entry(path, struct coresight_device,
path_link)) {
--
1.9.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 4/6] coresight: etm3x: adding cpu affinity to sysFS interface
2015-10-07 15:26 [PATCH 0/6] coresight: next v4.3-rc4 Mathieu Poirier
` (2 preceding siblings ...)
2015-10-07 15:26 ` [PATCH 3/6] coresight: adding comments to remove ambiguity Mathieu Poirier
@ 2015-10-07 15:26 ` Mathieu Poirier
2015-10-07 16:53 ` Greg KH
2015-10-07 15:26 ` [PATCH 5/6] coresight: etm3x: breaking down sysFS status interface Mathieu Poirier
2015-10-07 15:26 ` [PATCH 6/6] coresight: etm3x: making error message unambiguous Mathieu Poirier
5 siblings, 1 reply; 9+ messages in thread
From: Mathieu Poirier @ 2015-10-07 15:26 UTC (permalink / raw)
To: linux-arm-kernel
Without access to the device tree, it is impossible to know
what CPU a tracer is affined to. As such adding a new sysFS
interface to convey the information.
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
---
drivers/hwtracing/coresight/coresight-etm3x.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/drivers/hwtracing/coresight/coresight-etm3x.c b/drivers/hwtracing/coresight/coresight-etm3x.c
index bf2476ed9356..4797f56e7f13 100644
--- a/drivers/hwtracing/coresight/coresight-etm3x.c
+++ b/drivers/hwtracing/coresight/coresight-etm3x.c
@@ -1545,6 +1545,18 @@ static ssize_t status_show(struct device *dev,
}
static DEVICE_ATTR_RO(status);
+static ssize_t cpu_show(struct device *dev,
+ struct device_attribute *attr, char *buf)
+{
+ int val;
+ struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
+
+ val = drvdata->cpu;
+ return scnprintf(buf, PAGE_SIZE, "%d\n", val);
+
+}
+static DEVICE_ATTR_RO(cpu);
+
static ssize_t traceid_show(struct device *dev,
struct device_attribute *attr, char *buf)
{
@@ -1621,6 +1633,7 @@ static struct attribute *coresight_etm_attrs[] = {
&dev_attr_timestamp_event.attr,
&dev_attr_status.attr,
&dev_attr_traceid.attr,
+ &dev_attr_cpu.attr,
NULL,
};
ATTRIBUTE_GROUPS(coresight_etm);
--
1.9.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 5/6] coresight: etm3x: breaking down sysFS status interface
2015-10-07 15:26 [PATCH 0/6] coresight: next v4.3-rc4 Mathieu Poirier
` (3 preceding siblings ...)
2015-10-07 15:26 ` [PATCH 4/6] coresight: etm3x: adding cpu affinity to sysFS interface Mathieu Poirier
@ 2015-10-07 15:26 ` Mathieu Poirier
2015-10-07 16:53 ` Greg KH
2015-10-07 15:26 ` [PATCH 6/6] coresight: etm3x: making error message unambiguous Mathieu Poirier
5 siblings, 1 reply; 9+ messages in thread
From: Mathieu Poirier @ 2015-10-07 15:26 UTC (permalink / raw)
To: linux-arm-kernel
SysFS rules stipulate that only one value can be conveyed per
file. As such splitting the "status" interface in individual files.
This is also useful for user space applications - that way they can
probe each file individually rather than having to parse a list of entries.
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
---
.../ABI/testing/sysfs-bus-coresight-devices-etm3x | 77 ++++++++++++++--
drivers/hwtracing/coresight/coresight-etm3x.c | 100 +++++++++++----------
2 files changed, 121 insertions(+), 56 deletions(-)
diff --git a/Documentation/ABI/testing/sysfs-bus-coresight-devices-etm3x b/Documentation/ABI/testing/sysfs-bus-coresight-devices-etm3x
index d72ca1736ba4..67e3557bc4bf 100644
--- a/Documentation/ABI/testing/sysfs-bus-coresight-devices-etm3x
+++ b/Documentation/ABI/testing/sysfs-bus-coresight-devices-etm3x
@@ -8,13 +8,6 @@ Description: (RW) Enable/disable tracing on this specific trace entiry.
of coresight components linking the source to the sink is
configured and managed automatically by the coresight framework.
-What: /sys/bus/coresight/devices/<memory_map>.[etm|ptm]/status
-Date: November 2014
-KernelVersion: 3.19
-Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
-Description: (R) List various control and status registers. The specific
- layout and content is driver specific.
-
What: /sys/bus/coresight/devices/<memory_map>.[etm|ptm]/addr_idx
Date: November 2014
KernelVersion: 3.19
@@ -251,3 +244,73 @@ Date: November 2014
KernelVersion: 3.19
Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
Description: (RW) Define the event that controls the trigger.
+
+What: /sys/bus/coresight/devices/<memory_map>.[etm|ptm]/mgmt/etmccr
+Date: September 2015
+KernelVersion: 4.4
+Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
+Description: (RO) Print the content of the ETM Configuration Code register
+ (0x004). The value is read directly from the HW.
+
+What: /sys/bus/coresight/devices/<memory_map>.[etm|ptm]/mgmt/etmccer
+Date: September 2015
+KernelVersion: 4.4
+Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
+Description: (RO) Print the content of the ETM Configuration Code Extension
+ register (0x1e8). The value is read directly from the HW.
+
+What: /sys/bus/coresight/devices/<memory_map>.[etm|ptm]/mgmt/etmscr
+Date: September 2015
+KernelVersion: 4.4
+Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
+Description: (RO) Print the content of the ETM System Configuration
+ register (0x014). The value is read directly from the HW.
+
+What: /sys/bus/coresight/devices/<memory_map>.[etm|ptm]/mgmt/etmidr
+Date: September 2015
+KernelVersion: 4.4
+Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
+Description: (RO) Print the content of the ETM ID register (0x1e4). The
+ value is read directly from the HW.
+
+What: /sys/bus/coresight/devices/<memory_map>.[etm|ptm]/mgmt/etmcr
+Date: September 2015
+KernelVersion: 4.4
+Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
+Description: (RO) Print the content of the ETM Main Control register (0x000).
+ The value is read directly from the HW.
+
+What: /sys/bus/coresight/devices/<memory_map>.[etm|ptm]/mgmt/etmtraceidr
+Date: September 2015
+KernelVersion: 4.4
+Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
+Description: (RO) Print the content of the ETM Trace ID register (0x200).
+ The value is read directly from the HW.
+
+What: /sys/bus/coresight/devices/<memory_map>.[etm|ptm]/mgmt/etmteevr
+Date: September 2015
+KernelVersion: 4.4
+Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
+Description: (RO) Print the content of the ETM Trace Enable Event register
+ (0x020). The value is read directly from the HW.
+
+What: /sys/bus/coresight/devices/<memory_map>.[etm|ptm]/mgmt/etmtsscr
+Date: September 2015
+KernelVersion: 4.4
+Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
+Description: (RO) Print the content of the ETM Trace Start/Stop Conrol
+ register (0x018). The value is read directly from the HW.
+
+What: /sys/bus/coresight/devices/<memory_map>.[etm|ptm]/mgmt/etmtecr1
+Date: September 2015
+KernelVersion: 4.4
+Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
+Description: (RO) Print the content of the ETM Enable Conrol #1
+ register (0x024). The value is read directly from the HW.
+
+What: /sys/bus/coresight/devices/<memory_map>.[etm|ptm]/mgmt/etmtecr2
+Date: September 2015
+KernelVersion: 4.4
+Contact: Mathieu Poirier <mathieu.poirier@linaro.org>
+Description: (RO) Print the content of the ETM Enable Conrol #2
+ register (0x01c). The value is read directly from the HW.
diff --git a/drivers/hwtracing/coresight/coresight-etm3x.c b/drivers/hwtracing/coresight/coresight-etm3x.c
index 4797f56e7f13..87374b3388ad 100644
--- a/drivers/hwtracing/coresight/coresight-etm3x.c
+++ b/drivers/hwtracing/coresight/coresight-etm3x.c
@@ -313,14 +313,6 @@ static void etm_enable_hw(void *info)
dev_dbg(drvdata->dev, "cpu: %d enable smp call done\n", drvdata->cpu);
}
-static int etm_trace_id_simple(struct etm_drvdata *drvdata)
-{
- if (!drvdata->enable)
- return drvdata->traceid;
-
- return (etm_readl(drvdata, ETMTRACEIDR) & ETM_TRACEID_MASK);
-}
-
static int etm_trace_id(struct coresight_device *csdev)
{
struct etm_drvdata *drvdata = dev_get_drvdata(csdev->dev.parent);
@@ -1506,45 +1498,6 @@ static ssize_t timestamp_event_store(struct device *dev,
}
static DEVICE_ATTR_RW(timestamp_event);
-static ssize_t status_show(struct device *dev,
- struct device_attribute *attr, char *buf)
-{
- int ret;
- unsigned long flags;
- struct etm_drvdata *drvdata = dev_get_drvdata(dev->parent);
-
- pm_runtime_get_sync(drvdata->dev);
- spin_lock_irqsave(&drvdata->spinlock, flags);
-
- CS_UNLOCK(drvdata->base);
- ret = sprintf(buf,
- "ETMCCR: 0x%08x\n"
- "ETMCCER: 0x%08x\n"
- "ETMSCR: 0x%08x\n"
- "ETMIDR: 0x%08x\n"
- "ETMCR: 0x%08x\n"
- "ETMTRACEIDR: 0x%08x\n"
- "Enable event: 0x%08x\n"
- "Enable start/stop: 0x%08x\n"
- "Enable control: CR1 0x%08x CR2 0x%08x\n"
- "CPU affinity: %d\n",
- drvdata->etmccr, drvdata->etmccer,
- etm_readl(drvdata, ETMSCR), etm_readl(drvdata, ETMIDR),
- etm_readl(drvdata, ETMCR), etm_trace_id_simple(drvdata),
- etm_readl(drvdata, ETMTEEVR),
- etm_readl(drvdata, ETMTSSCR),
- etm_readl(drvdata, ETMTECR1),
- etm_readl(drvdata, ETMTECR2),
- drvdata->cpu);
- CS_LOCK(drvdata->base);
-
- spin_unlock_irqrestore(&drvdata->spinlock, flags);
- pm_runtime_put(drvdata->dev);
-
- return ret;
-}
-static DEVICE_ATTR_RO(status);
-
static ssize_t cpu_show(struct device *dev,
struct device_attribute *attr, char *buf)
{
@@ -1631,12 +1584,61 @@ static struct attribute *coresight_etm_attrs[] = {
&dev_attr_ctxid_mask.attr,
&dev_attr_sync_freq.attr,
&dev_attr_timestamp_event.attr,
- &dev_attr_status.attr,
&dev_attr_traceid.attr,
&dev_attr_cpu.attr,
NULL,
};
-ATTRIBUTE_GROUPS(coresight_etm);
+
+#define coresight_simple_func(name, offset) \
+static ssize_t name##_show(struct device *_dev, \
+ struct device_attribute *attr, char *buf) \
+{ \
+ struct etm_drvdata *drvdata = dev_get_drvdata(_dev->parent); \
+ return scnprintf(buf, PAGE_SIZE, "0x%x\n", \
+ readl_relaxed(drvdata->base + offset)); \
+} \
+DEVICE_ATTR_RO(name)
+
+coresight_simple_func(etmccr, ETMCCR);
+coresight_simple_func(etmccer, ETMCCER);
+coresight_simple_func(etmscr, ETMSCR);
+coresight_simple_func(etmidr, ETMIDR);
+coresight_simple_func(etmcr, ETMCR);
+coresight_simple_func(etmtraceidr, ETMTRACEIDR);
+coresight_simple_func(etmteevr, ETMTEEVR);
+coresight_simple_func(etmtssvr, ETMTSSCR);
+coresight_simple_func(etmtecr1, ETMTECR1);
+coresight_simple_func(etmtecr2, ETMTECR2);
+
+static struct attribute *coresight_etm_mgmt_attrs[] = {
+ &dev_attr_etmccr.attr,
+ &dev_attr_etmccer.attr,
+ &dev_attr_etmscr.attr,
+ &dev_attr_etmidr.attr,
+ &dev_attr_etmcr.attr,
+ &dev_attr_etmtraceidr.attr,
+ &dev_attr_etmteevr.attr,
+ &dev_attr_etmtssvr.attr,
+ &dev_attr_etmtecr1.attr,
+ &dev_attr_etmtecr2.attr,
+ NULL,
+};
+
+static const struct attribute_group coresight_etm_group = {
+ .attrs = coresight_etm_attrs,
+};
+
+
+static const struct attribute_group coresight_etm_mgmt_group = {
+ .attrs = coresight_etm_mgmt_attrs,
+ .name = "mgmt",
+};
+
+static const struct attribute_group *coresight_etm_groups[] = {
+ &coresight_etm_group,
+ &coresight_etm_mgmt_group,
+ NULL,
+};
static int etm_cpu_callback(struct notifier_block *nfb, unsigned long action,
void *hcpu)
--
1.9.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 6/6] coresight: etm3x: making error message unambiguous
2015-10-07 15:26 [PATCH 0/6] coresight: next v4.3-rc4 Mathieu Poirier
` (4 preceding siblings ...)
2015-10-07 15:26 ` [PATCH 5/6] coresight: etm3x: breaking down sysFS status interface Mathieu Poirier
@ 2015-10-07 15:26 ` Mathieu Poirier
5 siblings, 0 replies; 9+ messages in thread
From: Mathieu Poirier @ 2015-10-07 15:26 UTC (permalink / raw)
To: linux-arm-kernel
By adding the function name at the beginning of the error
message there is no doubt as to where the failing condition
occurred.
Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
---
drivers/hwtracing/coresight/coresight-etm3x.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/hwtracing/coresight/coresight-etm3x.c b/drivers/hwtracing/coresight/coresight-etm3x.c
index 87374b3388ad..d630b7ece735 100644
--- a/drivers/hwtracing/coresight/coresight-etm3x.c
+++ b/drivers/hwtracing/coresight/coresight-etm3x.c
@@ -191,7 +191,8 @@ static void etm_set_prog(struct etm_drvdata *drvdata)
isb();
if (coresight_timeout_etm(drvdata, ETMSR, ETMSR_PROG_BIT, 1)) {
dev_err(drvdata->dev,
- "timeout observed when probing at offset %#x\n", ETMSR);
+ "%s: timeout observed when probing at offset %#x\n",
+ __func__, ETMSR);
}
}
@@ -209,7 +210,8 @@ static void etm_clr_prog(struct etm_drvdata *drvdata)
isb();
if (coresight_timeout_etm(drvdata, ETMSR, ETMSR_PROG_BIT, 0)) {
dev_err(drvdata->dev,
- "timeout observed when probing at offset %#x\n", ETMSR);
+ "%s: timeout observed when probing at offset %#x\n",
+ __func__, ETMSR);
}
}
--
1.9.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [PATCH 4/6] coresight: etm3x: adding cpu affinity to sysFS interface
2015-10-07 15:26 ` [PATCH 4/6] coresight: etm3x: adding cpu affinity to sysFS interface Mathieu Poirier
@ 2015-10-07 16:53 ` Greg KH
0 siblings, 0 replies; 9+ messages in thread
From: Greg KH @ 2015-10-07 16:53 UTC (permalink / raw)
To: linux-arm-kernel
On Wed, Oct 07, 2015 at 09:26:41AM -0600, Mathieu Poirier wrote:
> Without access to the device tree, it is impossible to know
> what CPU a tracer is affined to. As such adding a new sysFS
> interface to convey the information.
>
> Signed-off-by: Mathieu Poirier <mathieu.poirier@linaro.org>
No documentation for this new attribute?
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH 5/6] coresight: etm3x: breaking down sysFS status interface
2015-10-07 15:26 ` [PATCH 5/6] coresight: etm3x: breaking down sysFS status interface Mathieu Poirier
@ 2015-10-07 16:53 ` Greg KH
0 siblings, 0 replies; 9+ messages in thread
From: Greg KH @ 2015-10-07 16:53 UTC (permalink / raw)
To: linux-arm-kernel
On Wed, Oct 07, 2015 at 09:26:42AM -0600, Mathieu Poirier wrote:
> SysFS rules stipulate that only one value can be conveyed per
> file. As such splitting the "status" interface in individual files.
>
> This is also useful for user space applications - that way they can
> probe each file individually rather than having to parse a list of entries.
Ah, much nicer, thanks for doing this.
greg k-h
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2015-10-07 16:53 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-10-07 15:26 [PATCH 0/6] coresight: next v4.3-rc4 Mathieu Poirier
2015-10-07 15:26 ` [PATCH 1/6] Coresight: ETMv4: Prevent TRCRSCTLR0&1 from being accessed Mathieu Poirier
2015-10-07 15:26 ` [PATCH 2/6] coresight: fixing typographical error Mathieu Poirier
2015-10-07 15:26 ` [PATCH 3/6] coresight: adding comments to remove ambiguity Mathieu Poirier
2015-10-07 15:26 ` [PATCH 4/6] coresight: etm3x: adding cpu affinity to sysFS interface Mathieu Poirier
2015-10-07 16:53 ` Greg KH
2015-10-07 15:26 ` [PATCH 5/6] coresight: etm3x: breaking down sysFS status interface Mathieu Poirier
2015-10-07 16:53 ` Greg KH
2015-10-07 15:26 ` [PATCH 6/6] coresight: etm3x: making error message unambiguous Mathieu Poirier
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).