From d4c8eb47ac369c41343bba399a028842580529b1 Mon Sep 17 00:00:00 2001 From: Oron Peled Date: Sun, 29 Sep 2013 10:04:32 +0200 Subject: [PATCH] add a 'location' attribute to sysfs (dahdi_device): * Our user-space previously used the implicit location from the sysfs device path of the "dahdi_device". * However: - Sysfs paths are very limited in length. - Low-level driver need more control on the location field. - For example, it need to be persistant for span_assignments. * We now export explicitly the 'location' field which is managed by low-level drivers. * We will use this field as the location in span_assignments. Signed-off-by: Tzafrir Cohen --- drivers/dahdi/dahdi-sysfs.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/drivers/dahdi/dahdi-sysfs.c b/drivers/dahdi/dahdi-sysfs.c index 1715f8f..2b50c3f 100644 --- a/drivers/dahdi/dahdi-sysfs.c +++ b/drivers/dahdi/dahdi-sysfs.c @@ -402,6 +402,16 @@ dahdi_device_hardware_id_show(struct device *dev, (ddev->hardware_id) ? ddev->hardware_id : ""); } +static ssize_t +dahdi_device_location_show(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct dahdi_device *ddev = to_ddev(dev); + + return sprintf(buf, "%s\n", + (ddev->location) ? ddev->location : ""); +} + static ssize_t dahdi_device_auto_assign(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) @@ -549,6 +559,7 @@ static struct device_attribute dahdi_device_attrs[] = { __ATTR(type, S_IRUGO, dahdi_device_type_show, NULL), __ATTR(span_count, S_IRUGO, dahdi_device_span_count_show, NULL), __ATTR(hardware_id, S_IRUGO, dahdi_device_hardware_id_show, NULL), + __ATTR(location, S_IRUGO, dahdi_device_location_show, NULL), __ATTR(auto_assign, S_IWUSR, NULL, dahdi_device_auto_assign), __ATTR(assign_span, S_IWUSR, NULL, dahdi_device_assign_span), __ATTR(unassign_span, S_IWUSR, NULL, dahdi_device_unassign_span),