diff options
author | Kay Sievers <kay.sievers@suse.de> | 2005-08-05 01:52:57 +0200 |
---|---|---|
committer | Kay Sievers <kay.sievers@suse.de> | 2005-08-05 01:52:57 +0200 |
commit | 738428b4499211247dafa394805ecaa2cb313f03 (patch) | |
tree | 093f6a560ba770600a711f825ffd244909b2ae79 /udev_rules.c | |
parent | 52dbd80e783adaa0a66d4cf981f5b34d2af66f60 (diff) |
read sysfs attribute also from parent class device
Signed-off-by: Kay Sievers <kay.sievers@suse.de>
Diffstat (limited to 'udev_rules.c')
-rw-r--r-- | udev_rules.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/udev_rules.c b/udev_rules.c index 6a485f08af..d86b8e8599 100644 --- a/udev_rules.c +++ b/udev_rules.c @@ -295,6 +295,7 @@ static int find_free_number(struct udevice *udev, const char *name) static int find_sysfs_attribute(struct sysfs_class_device *class_dev, struct sysfs_device *sysfs_device, const char *name, char *value, size_t len) { + struct sysfs_class_device *class_dev_parent; struct sysfs_attribute *tmpattr; dbg("look for device attribute '%s'", name); @@ -303,6 +304,12 @@ static int find_sysfs_attribute(struct sysfs_class_device *class_dev, struct sys tmpattr = sysfs_get_classdev_attr(class_dev, name); if (tmpattr) goto attr_found; + class_dev_parent = sysfs_get_classdev_parent(class_dev); + if (class_dev_parent) { + tmpattr = sysfs_get_classdev_attr(class_dev_parent, name); + if (tmpattr) + goto attr_found; + } } if (sysfs_device) { dbg("look for devices attribute '%s/%s'", sysfs_device->path, name); |