summaryrefslogtreecommitdiff
path: root/drivers/dahdi/xpp/xbus-sysfs.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/dahdi/xpp/xbus-sysfs.c')
-rw-r--r--drivers/dahdi/xpp/xbus-sysfs.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/drivers/dahdi/xpp/xbus-sysfs.c b/drivers/dahdi/xpp/xbus-sysfs.c
index 566bc0f..1094a19 100644
--- a/drivers/dahdi/xpp/xbus-sysfs.c
+++ b/drivers/dahdi/xpp/xbus-sysfs.c
@@ -207,6 +207,34 @@ static DEVICE_ATTR_READER(waitfor_xpds_show, dev, buf)
return len;
}
+static DEVICE_ATTR_READER(driftinfo_show, dev, buf)
+{
+ xbus_t *xbus;
+ struct xpp_drift *di;
+ struct xpp_ticker *ticker;
+ int len = 0;
+
+ xbus = dev_to_xbus(dev);
+ di = &xbus->drift;
+ ticker = &xbus->ticker;
+#define SHOW(ptr,item) len += snprintf(buf + len, PAGE_SIZE - len, "%-15s: %d\n", #item, (ptr)->item)
+ SHOW(xbus, sync_adjustment);
+ SHOW(di, wanted_offset);
+ SHOW(di, delta_tick);
+ SHOW(di, lost_ticks);
+ SHOW(di, kicks_up);
+ SHOW(di, kicks_down);
+ SHOW(di, delta_min);
+ SHOW(di, delta_max);
+ SHOW(di, median);
+ SHOW(di, jitter);
+ SHOW(di, calc_drift);
+ SHOW(ticker, cycle);
+ SHOW(ticker, tick_period);
+#undef SHOW
+ return len;
+}
+
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,14)
#define xbus_attr(field, format_string) \
static ssize_t \
@@ -238,6 +266,7 @@ static struct device_attribute xbus_dev_attrs[] = {
__ATTR_RO(status),
__ATTR_RO(timing),
__ATTR_RO(waitfor_xpds),
+ __ATTR_RO(driftinfo),
__ATTR(cls, S_IWUSR, NULL, cls_store),
__ATTR(xbus_state, S_IRUGO | S_IWUSR, xbus_state_show, xbus_state_store),
#ifdef SAMPLE_TICKS