diff options
author | Burt P <pburt0@gmail.com> | 2019-12-28 00:26:55 -0600 |
---|---|---|
committer | Leandro A. F. Pereira <leandro@hardinfo.org> | 2019-12-28 08:32:12 -0800 |
commit | bf72686772b249a683570d9a0b47e139f5327a3c (patch) | |
tree | 06d78d370e9aaa23f158570b09e117dcfab220ed /hardinfo | |
parent | b45f68508254c3ddbcabfc536ed5f2b5a7a9528c (diff) |
udisks2_util: try pci vendor for nvme without vendor info
Signed-off-by: Burt P <pburt0@gmail.com>
Diffstat (limited to 'hardinfo')
-rw-r--r-- | hardinfo/udisks2_util.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/hardinfo/udisks2_util.c b/hardinfo/udisks2_util.c index 11e091b9..dfb0b20f 100644 --- a/hardinfo/udisks2_util.c +++ b/hardinfo/udisks2_util.c @@ -2,6 +2,7 @@ #include "udisks2_util.h" #include "hardinfo.h" #include "util_ids.h" +#include "pci_util.h" #define UDISKS2_INTERFACE "org.freedesktop.UDisks2" #define UDISKS2_MANAGER_INTERFACE "org.freedesktop.UDisks2.Manager" @@ -677,6 +678,21 @@ gpointer get_udisks2_drive_info(const char *blockdev, GDBusProxy *block, g_variant_unref(v); } + /* NVMe vendor from PCI device */ + if (strstr(u->block_dev, "nvme") + && (!u->vendor || !*u->vendor) + ) { + gchar *file = g_strdup_printf("/sys/block/%s/device/device/vendor", u->block_dev); + gchar *val = NULL; + if (g_file_get_contents(file, &val, NULL, NULL) ) { + unsigned long int id = strtoul(val, NULL, 16); + if (id) + u->vendor = pci_lookup_ids_vendor_str(id); + } + g_free(file); + g_free(val); + } + check_sdcard_vendor(u); if (!u->vendors) { |