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:
Kay Sievers
2014-04-20 10:28:59 -04:00
committed by Zbigniew Jędrzejewski-Szmek
parent 6ece7006e3
commit 85f27e3b37
2 changed files with 10685 additions and 10682 deletions
+10678 -10678
View File
File diff suppressed because it is too large Load Diff
+7 -4
View File
@@ -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");
}
}