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.
This commit is contained in:
Kay Sievers 2014-04-14 07:54:35 -07:00
parent dbe633cc02
commit d060b62fcb
2 changed files with 10685 additions and 10682 deletions

File diff suppressed because it is too large Load diff

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");
}
}