[PATCH] read %s{}-sysfs values at any device in the chain
This commit is contained in:
committed by
Greg KH
parent
aa341f21eb
commit
98bbc835f5
@@ -1222,6 +1222,15 @@ EOF
|
||||
exp_name => "sane",
|
||||
rules => <<EOF
|
||||
BUS=="scsi", KERNEL=="sda1", PROGRAM=="/bin/echo -e name; (/sbin/badprogram)", RESULT="name_ _/sbin/badprogram_", NAME="sane"
|
||||
EOF
|
||||
},
|
||||
{
|
||||
desc => "read sysfs value from device down in the chain",
|
||||
subsys => "block",
|
||||
devpath => "/class/tty/ttyUSB0",
|
||||
exp_name => "serial-0000:00:09.0",
|
||||
rules => <<EOF
|
||||
KERNEL=="ttyUSB*", NAME="serial-%s{serial}"
|
||||
EOF
|
||||
},
|
||||
);
|
||||
|
||||
+12
-2
@@ -287,8 +287,18 @@ static void apply_format(struct udevice *udev, char *string, size_t maxsize,
|
||||
break;
|
||||
}
|
||||
if (find_sysfs_attribute(class_dev, sysfs_device, attr, temp2, sizeof(temp2)) != 0) {
|
||||
dbg("sysfs attribute '%s' not found", attr);
|
||||
break;
|
||||
struct sysfs_device *parent_device;
|
||||
|
||||
dbg("sysfs attribute '%s' not found, walk up the physical devices", attr);
|
||||
parent_device = sysfs_get_device_parent(sysfs_device);
|
||||
while (parent_device) {
|
||||
dbg("looking at '%s'", parent_device->path);
|
||||
if (find_sysfs_attribute(NULL, parent_device, attr, temp2, sizeof(temp2)) == 0)
|
||||
break;
|
||||
parent_device = sysfs_get_device_parent(parent_device);
|
||||
}
|
||||
if (!parent_device)
|
||||
break;
|
||||
}
|
||||
/* strip trailing whitespace of sysfs value */
|
||||
i = strlen(temp2);
|
||||
|
||||
Reference in New Issue
Block a user