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.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/dahdi/xpp/xbus-sysfs.c b/drivers/dahdi/xpp/xbus-sysfs.c
index 1094a19..67c4c28 100644
--- a/drivers/dahdi/xpp/xbus-sysfs.c
+++ b/drivers/dahdi/xpp/xbus-sysfs.c
@@ -612,6 +612,26 @@ static DEVICE_ATTR_READER(type_show, dev, buf)
return len;
}
+static DEVICE_ATTR_READER(offhook_show, dev, buf)
+{
+ xpd_t *xpd;
+ int len = 0;
+ int i;
+
+ BUG_ON(!dev);
+ xpd = dev_to_xpd(dev);
+ if(!xpd)
+ return -ENODEV;
+ for_each_line(xpd, i) {
+ len += sprintf(buf + len, "%d ", IS_OFFHOOK(xpd, i));
+ }
+ if(len) {
+ len--; /* backout last space */
+ len += sprintf(buf + len, "\n");
+ }
+ return len;
+}
+
static int xpd_match(struct device *dev, struct device_driver *driver)
{
struct xpd_driver *xpd_driver;
@@ -634,6 +654,7 @@ static struct device_attribute xpd_dev_attrs[] = {
__ATTR(blink, S_IRUGO | S_IWUSR, blink_show, blink_store),
__ATTR(span, S_IRUGO | S_IWUSR, span_show, span_store),
__ATTR_RO(type),
+ __ATTR_RO(offhook),
__ATTR_NULL,
};