mirror of
https://github.com/clearlinux/systemd-stable.git
synced 2026-10-04 07:48:36 +00:00
hwdb: PCI - include "primary" model string in subsystem model string
The data in the PCI ids file is randomly inconsistent. Many
subvendor model strings just describe the "product" where the
hardware is built into, not the hardware itself. This causes
some "Network Card Model Foo" to show up as "Laptop Model Bar".
Try to make the best out of this mess and concatenate both
strings to describe the hardware.
(cherry picked from commit d060b62fcb)
This commit is contained in:
committed by
Zbigniew Jędrzejewski-Szmek
parent
6ece7006e3
commit
85f27e3b37
+10678
-10678
File diff suppressed because it is too large
Load Diff
+7
-4
@@ -107,6 +107,7 @@ sub usb_classes {
|
||||
sub pci_vendor {
|
||||
my $vendor;
|
||||
my $device;
|
||||
my $device_text;
|
||||
|
||||
open(IN, "<", "pci.ids");
|
||||
open(OUT, ">", "20-pci-vendor-model.hwdb");
|
||||
@@ -130,10 +131,10 @@ sub pci_vendor {
|
||||
$line =~ m/^\t([0-9a-f]{4})\s*(.+)$/;
|
||||
if (defined $1) {
|
||||
$device = uc $1;
|
||||
my $text = $2;
|
||||
$device_text = $2;
|
||||
print(OUT "\n");
|
||||
print(OUT "pci:v0000" . $vendor . "d0000" . $device . "*\n");
|
||||
print(OUT " ID_MODEL_FROM_DATABASE=" . $text . "\n");
|
||||
print(OUT " ID_MODEL_FROM_DATABASE=" . $device_text . "\n");
|
||||
next;
|
||||
}
|
||||
|
||||
@@ -141,10 +142,12 @@ sub pci_vendor {
|
||||
if (defined $1) {
|
||||
my $sub_vendor = uc $1;
|
||||
my $sub_device = uc $2;
|
||||
my $text = $3;
|
||||
my $sub_text = $3;
|
||||
$sub_text =~ s/^\Q$device_text\E\s*//;
|
||||
$sub_text =~ s/(.+)/\ (\1\)/;
|
||||
print(OUT "\n");
|
||||
print(OUT "pci:v0000" . $vendor . "d0000" . $device . "sv0000" . $sub_vendor . "sd0000" . $sub_device . "*\n");
|
||||
print(OUT " ID_MODEL_FROM_DATABASE=" . $text . "\n");
|
||||
print(OUT " ID_MODEL_FROM_DATABASE=" . $device_text . $sub_text . "\n");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user