diff options
author | Kristian Høgsberg <krh@redhat.com> | 2007-03-07 12:12:46 -0500 |
---|---|---|
committer | Stefan Richter <stefanr@s5r6.in-berlin.de> | 2007-03-09 22:03:10 +0100 |
commit | 048961ef90b584d00ec79c75cb7c7b28403f0c87 (patch) | |
tree | 4a89a4c77bbc21e90e0a4dfabd017562c90ad3e0 /drivers/firewire/fw-device.c | |
parent | 5c5539d8cdfd13fdb080357fe79f94a7e11a6ef6 (diff) | |
download | lwn-048961ef90b584d00ec79c75cb7c7b28403f0c87.tar.gz lwn-048961ef90b584d00ec79c75cb7c7b28403f0c87.zip |
firewire: Add rom_index attribute for unit sysfs directories.
Signed-off-by: Kristian Høgsberg <krh@redhat.com>
Signed-off-by: Stefan Richter <stefanr@s5r6.in-berlin.de>
Diffstat (limited to 'drivers/firewire/fw-device.c')
-rw-r--r-- | drivers/firewire/fw-device.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/drivers/firewire/fw-device.c b/drivers/firewire/fw-device.c index b24090ae9c70..4ade867db888 100644 --- a/drivers/firewire/fw-device.c +++ b/drivers/firewire/fw-device.c @@ -230,6 +230,22 @@ static struct device_attribute config_rom_attribute = { .show = show_config_rom_attribute, }; +static ssize_t +show_rom_index_attribute(struct device *dev, + struct device_attribute *attr, char *buf) +{ + struct fw_device *device = fw_device(dev->parent); + struct fw_unit *unit = fw_unit(dev); + + return snprintf(buf, PAGE_SIZE, "%d\n", + unit->directory - device->config_rom); +} + +static struct device_attribute rom_index_attribute = { + .attr = { .name = "rom_index", .mode = S_IRUGO, }, + .show = show_rom_index_attribute, +}; + struct read_quadlet_callback_data { struct completion done; int rcode; @@ -393,6 +409,11 @@ static void create_units(struct fw_device *device) device_unregister(&unit->device); kfree(unit); } + + if (device_create_file(&unit->device, &rom_index_attribute) < 0) { + device_unregister(&unit->device); + kfree(unit); + } } } |