From: Kristian Høgsberg Date: Wed, 7 Mar 2007 17:12:46 +0000 (-0500) Subject: firewire: Add rom_index attribute for unit sysfs directories. X-Git-Tag: v2.6.22-rc1~111^2~62 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=048961ef90b584d00ec79c75cb7c7b28403f0c87;p=linux-2.6 firewire: Add rom_index attribute for unit sysfs directories. Signed-off-by: Kristian Høgsberg Signed-off-by: Stefan Richter --- diff --git a/drivers/firewire/fw-device.c b/drivers/firewire/fw-device.c index b24090ae9c..4ade867db8 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); + } } }