free(p->model);
free(p->partflags);
free(p->idlink);
+ free(p->revision);
free(p->mode);
free(p->owner);
normalize_whitespace((unsigned char *) prop->serial);
}
+ if ((data = udev_device_get_property_value(dev, "ID_REVISION")))
+ prop->revision = xstrdup(data);
+
if ((data = udev_device_get_property_value(dev, "ID_MODEL_ENC"))) {
prop->model = xstrdup(data);
unhexmangle_string(prop->model);
else if (lookup(buf, "ID_SCSI_SERIAL", &prop->serial)) ;
else if (lookup(buf, "ID_SERIAL_SHORT", &prop->serial)) ;
else if (lookup(buf, "ID_SERIAL", &prop->serial)) ;
+ else if (lookup(buf, "ID_REVISION", &prop->revision)) ;
/* lsblk specific */
else if (lookup(buf, "MODE", &prop->mode)) ;
}
break;
case COL_REV:
- if (!device_is_partition(dev) && dev->nslaves == 0)
- ul_path_read_string(dev->sysfs, &str, "device/rev");
+ if (!device_is_partition(dev) && dev->nslaves == 0) {
+ prop = lsblk_device_get_properties(dev);
+ if (prop && prop->revision)
+ str = xstrdup(prop->revision);
+ else
+ ul_path_read_string(dev->sysfs, &str, "device/rev");
+ }
break;
case COL_VENDOR:
if (!device_is_partition(dev) && dev->nslaves == 0)
char *serial; /* disk serial number */
char *model; /* disk model */
char *idlink; /* /dev/disk/by-id/<name> */
+ char *revision; /* firmware revision/version */
/* lsblk specific (for --sysroot only) */
char *owner; /* user name */