chiark / gitweb /
udev: hwdb - add pci class descriptions
authorKay Sievers <kay@vrfy.org>
Fri, 9 Nov 2012 13:29:10 +0000 (14:29 +0100)
committerKay Sievers <kay@vrfy.org>
Fri, 9 Nov 2012 13:29:10 +0000 (14:29 +0100)
Makefile.am
hwdb/20-pci-classes.hwdb [new file with mode: 0644]
hwdb/20-pci-vendor-product.hwdb
hwdb/ids-update.pl

index 6e07a16..27b505f 100644 (file)
@@ -1798,6 +1798,7 @@ dist_udevrules_DATA += \
 
 dist_udevhwdb_DATA = \
        hwdb/20-pci-vendor-product.hwdb \
+       hwdb/20-pci-classes.hwdb \
        hwdb/20-usb-vendor-product.hwdb \
        hwdb/20-acpi-vendor.hwdb \
        hwdb/20-OUI.hwdb
diff --git a/hwdb/20-pci-classes.hwdb b/hwdb/20-pci-classes.hwdb
new file mode 100644 (file)
index 0000000..fc086a5
--- /dev/null
@@ -0,0 +1,531 @@
+# This file is part of systemd.
+#
+# Data imported and updated from: http://pciids.sourceforge.net/v2.2/pci.ids
+
+pci:v*d*sv*sd*bc00*
+ ID_PCI_CLASS_FROM_DATABASE=Unclassified device
+
+pci:v*d*sv*sd*bc00sc00*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Non-VGA unclassified device
+
+pci:v*d*sv*sd*bc00sc01*
+ ID_PCI_SUBCLASS_FROM_DATABASE=VGA compatible unclassified device
+
+pci:v*d*sv*sd*bc01*
+ ID_PCI_CLASS_FROM_DATABASE=Mass storage controller
+
+pci:v*d*sv*sd*bc01sc00*
+ ID_PCI_SUBCLASS_FROM_DATABASE=SCSI storage controller
+
+pci:v*d*sv*sd*bc01sc01*
+ ID_PCI_SUBCLASS_FROM_DATABASE=IDE interface
+
+pci:v*d*sv*sd*bc01sc02*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Floppy disk controller
+
+pci:v*d*sv*sd*bc01sc03*
+ ID_PCI_SUBCLASS_FROM_DATABASE=IPI bus controller
+
+pci:v*d*sv*sd*bc01sc04*
+ ID_PCI_SUBCLASS_FROM_DATABASE=RAID bus controller
+
+pci:v*d*sv*sd*bc01sc05*
+ ID_PCI_SUBCLASS_FROM_DATABASE=ATA controller
+
+pci:v*d*sv*sd*bc01sc05i20*
+ ID_PCI_INTERFACE_FROM_DATABASE=ADMA single stepping
+
+pci:v*d*sv*sd*bc01sc05i30*
+ ID_PCI_INTERFACE_FROM_DATABASE=ADMA continuous operation
+
+pci:v*d*sv*sd*bc01sc06*
+ ID_PCI_SUBCLASS_FROM_DATABASE=SATA controller
+
+pci:v*d*sv*sd*bc01sc06i00*
+ ID_PCI_INTERFACE_FROM_DATABASE=Vendor specific
+
+pci:v*d*sv*sd*bc01sc06i01*
+ ID_PCI_INTERFACE_FROM_DATABASE=AHCI 1.0
+
+pci:v*d*sv*sd*bc01sc07*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Serial Attached SCSI controller
+
+pci:v*d*sv*sd*bc01sc08*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Non-Volatile memory controller
+
+pci:v*d*sv*sd*bc01sc80*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Mass storage controller
+
+pci:v*d*sv*sd*bc02*
+ ID_PCI_CLASS_FROM_DATABASE=Network controller
+
+pci:v*d*sv*sd*bc02sc00*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Ethernet controller
+
+pci:v*d*sv*sd*bc02sc01*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Token ring network controller
+
+pci:v*d*sv*sd*bc02sc02*
+ ID_PCI_SUBCLASS_FROM_DATABASE=FDDI network controller
+
+pci:v*d*sv*sd*bc02sc03*
+ ID_PCI_SUBCLASS_FROM_DATABASE=ATM network controller
+
+pci:v*d*sv*sd*bc02sc04*
+ ID_PCI_SUBCLASS_FROM_DATABASE=ISDN controller
+
+pci:v*d*sv*sd*bc02sc05*
+ ID_PCI_SUBCLASS_FROM_DATABASE=WorldFip controller
+
+pci:v*d*sv*sd*bc02sc06*
+ ID_PCI_SUBCLASS_FROM_DATABASE=PICMG controller
+
+pci:v*d*sv*sd*bc02sc80*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Network controller
+
+pci:v*d*sv*sd*bc03*
+ ID_PCI_CLASS_FROM_DATABASE=Display controller
+
+pci:v*d*sv*sd*bc03sc00*
+ ID_PCI_SUBCLASS_FROM_DATABASE=VGA compatible controller
+
+pci:v*d*sv*sd*bc03sc00i00*
+ ID_PCI_INTERFACE_FROM_DATABASE=VGA controller
+
+pci:v*d*sv*sd*bc03sc00i01*
+ ID_PCI_INTERFACE_FROM_DATABASE=8514 controller
+
+pci:v*d*sv*sd*bc03sc01*
+ ID_PCI_SUBCLASS_FROM_DATABASE=XGA compatible controller
+
+pci:v*d*sv*sd*bc03sc02*
+ ID_PCI_SUBCLASS_FROM_DATABASE=3D controller
+
+pci:v*d*sv*sd*bc03sc80*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Display controller
+
+pci:v*d*sv*sd*bc04*
+ ID_PCI_CLASS_FROM_DATABASE=Multimedia controller
+
+pci:v*d*sv*sd*bc04sc00*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Multimedia video controller
+
+pci:v*d*sv*sd*bc04sc01*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Multimedia audio controller
+
+pci:v*d*sv*sd*bc04sc02*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Computer telephony device
+
+pci:v*d*sv*sd*bc04sc03*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Audio device
+
+pci:v*d*sv*sd*bc04sc80*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Multimedia controller
+
+pci:v*d*sv*sd*bc05*
+ ID_PCI_CLASS_FROM_DATABASE=Memory controller
+
+pci:v*d*sv*sd*bc05sc00*
+ ID_PCI_SUBCLASS_FROM_DATABASE=RAM memory
+
+pci:v*d*sv*sd*bc05sc01*
+ ID_PCI_SUBCLASS_FROM_DATABASE=FLASH memory
+
+pci:v*d*sv*sd*bc05sc80*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Memory controller
+
+pci:v*d*sv*sd*bc06*
+ ID_PCI_CLASS_FROM_DATABASE=Bridge
+
+pci:v*d*sv*sd*bc06sc00*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Host bridge
+
+pci:v*d*sv*sd*bc06sc01*
+ ID_PCI_SUBCLASS_FROM_DATABASE=ISA bridge
+
+pci:v*d*sv*sd*bc06sc02*
+ ID_PCI_SUBCLASS_FROM_DATABASE=EISA bridge
+
+pci:v*d*sv*sd*bc06sc03*
+ ID_PCI_SUBCLASS_FROM_DATABASE=MicroChannel bridge
+
+pci:v*d*sv*sd*bc06sc04*
+ ID_PCI_SUBCLASS_FROM_DATABASE=PCI bridge
+
+pci:v*d*sv*sd*bc06sc04i00*
+ ID_PCI_INTERFACE_FROM_DATABASE=Normal decode
+
+pci:v*d*sv*sd*bc06sc04i01*
+ ID_PCI_INTERFACE_FROM_DATABASE=Subtractive decode
+
+pci:v*d*sv*sd*bc06sc05*
+ ID_PCI_SUBCLASS_FROM_DATABASE=PCMCIA bridge
+
+pci:v*d*sv*sd*bc06sc06*
+ ID_PCI_SUBCLASS_FROM_DATABASE=NuBus bridge
+
+pci:v*d*sv*sd*bc06sc07*
+ ID_PCI_SUBCLASS_FROM_DATABASE=CardBus bridge
+
+pci:v*d*sv*sd*bc06sc08*
+ ID_PCI_SUBCLASS_FROM_DATABASE=RACEway bridge
+
+pci:v*d*sv*sd*bc06sc08i00*
+ ID_PCI_INTERFACE_FROM_DATABASE=Transparent mode
+
+pci:v*d*sv*sd*bc06sc08i01*
+ ID_PCI_INTERFACE_FROM_DATABASE=Endpoint mode
+
+pci:v*d*sv*sd*bc06sc09*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Semi-transparent PCI-to-PCI bridge
+
+pci:v*d*sv*sd*bc06sc09i40*
+ ID_PCI_INTERFACE_FROM_DATABASE=Primary bus towards host CPU
+
+pci:v*d*sv*sd*bc06sc09i80*
+ ID_PCI_INTERFACE_FROM_DATABASE=Secondary bus towards host CPU
+
+pci:v*d*sv*sd*bc06sc0A*
+ ID_PCI_SUBCLASS_FROM_DATABASE=InfiniBand to PCI host bridge
+
+pci:v*d*sv*sd*bc06sc80*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Bridge
+
+pci:v*d*sv*sd*bc07*
+ ID_PCI_CLASS_FROM_DATABASE=Communication controller
+
+pci:v*d*sv*sd*bc07sc00*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Serial controller
+
+pci:v*d*sv*sd*bc07sc00i00*
+ ID_PCI_INTERFACE_FROM_DATABASE=8250
+
+pci:v*d*sv*sd*bc07sc00i01*
+ ID_PCI_INTERFACE_FROM_DATABASE=16450
+
+pci:v*d*sv*sd*bc07sc00i02*
+ ID_PCI_INTERFACE_FROM_DATABASE=16550
+
+pci:v*d*sv*sd*bc07sc00i03*
+ ID_PCI_INTERFACE_FROM_DATABASE=16650
+
+pci:v*d*sv*sd*bc07sc00i04*
+ ID_PCI_INTERFACE_FROM_DATABASE=16750
+
+pci:v*d*sv*sd*bc07sc00i05*
+ ID_PCI_INTERFACE_FROM_DATABASE=16850
+
+pci:v*d*sv*sd*bc07sc00i06*
+ ID_PCI_INTERFACE_FROM_DATABASE=16950
+
+pci:v*d*sv*sd*bc07sc01*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Parallel controller
+
+pci:v*d*sv*sd*bc07sc01i00*
+ ID_PCI_INTERFACE_FROM_DATABASE=SPP
+
+pci:v*d*sv*sd*bc07sc01i01*
+ ID_PCI_INTERFACE_FROM_DATABASE=BiDir
+
+pci:v*d*sv*sd*bc07sc01i02*
+ ID_PCI_INTERFACE_FROM_DATABASE=ECP
+
+pci:v*d*sv*sd*bc07sc01i03*
+ ID_PCI_INTERFACE_FROM_DATABASE=IEEE1284
+
+pci:v*d*sv*sd*bc07sc01iFE*
+ ID_PCI_INTERFACE_FROM_DATABASE=IEEE1284 Target
+
+pci:v*d*sv*sd*bc07sc02*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Multiport serial controller
+
+pci:v*d*sv*sd*bc07sc03*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Modem
+
+pci:v*d*sv*sd*bc07sc03i00*
+ ID_PCI_INTERFACE_FROM_DATABASE=Generic
+
+pci:v*d*sv*sd*bc07sc03i01*
+ ID_PCI_INTERFACE_FROM_DATABASE=Hayes/16450
+
+pci:v*d*sv*sd*bc07sc03i02*
+ ID_PCI_INTERFACE_FROM_DATABASE=Hayes/16550
+
+pci:v*d*sv*sd*bc07sc03i03*
+ ID_PCI_INTERFACE_FROM_DATABASE=Hayes/16650
+
+pci:v*d*sv*sd*bc07sc03i04*
+ ID_PCI_INTERFACE_FROM_DATABASE=Hayes/16750
+
+pci:v*d*sv*sd*bc07sc04*
+ ID_PCI_SUBCLASS_FROM_DATABASE=GPIB controller
+
+pci:v*d*sv*sd*bc07sc05*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Smard Card controller
+
+pci:v*d*sv*sd*bc07sc80*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Communication controller
+
+pci:v*d*sv*sd*bc08*
+ ID_PCI_CLASS_FROM_DATABASE=Generic system peripheral
+
+pci:v*d*sv*sd*bc08sc00*
+ ID_PCI_SUBCLASS_FROM_DATABASE=PIC
+
+pci:v*d*sv*sd*bc08sc00i00*
+ ID_PCI_INTERFACE_FROM_DATABASE=8259
+
+pci:v*d*sv*sd*bc08sc00i01*
+ ID_PCI_INTERFACE_FROM_DATABASE=ISA PIC
+
+pci:v*d*sv*sd*bc08sc00i02*
+ ID_PCI_INTERFACE_FROM_DATABASE=EISA PIC
+
+pci:v*d*sv*sd*bc08sc00i10*
+ ID_PCI_INTERFACE_FROM_DATABASE=IO-APIC
+
+pci:v*d*sv*sd*bc08sc00i20*
+ ID_PCI_INTERFACE_FROM_DATABASE=IO(X)-APIC
+
+pci:v*d*sv*sd*bc08sc01*
+ ID_PCI_SUBCLASS_FROM_DATABASE=DMA controller
+
+pci:v*d*sv*sd*bc08sc01i00*
+ ID_PCI_INTERFACE_FROM_DATABASE=8237
+
+pci:v*d*sv*sd*bc08sc01i01*
+ ID_PCI_INTERFACE_FROM_DATABASE=ISA DMA
+
+pci:v*d*sv*sd*bc08sc01i02*
+ ID_PCI_INTERFACE_FROM_DATABASE=EISA DMA
+
+pci:v*d*sv*sd*bc08sc02*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Timer
+
+pci:v*d*sv*sd*bc08sc02i00*
+ ID_PCI_INTERFACE_FROM_DATABASE=8254
+
+pci:v*d*sv*sd*bc08sc02i01*
+ ID_PCI_INTERFACE_FROM_DATABASE=ISA Timer
+
+pci:v*d*sv*sd*bc08sc02i02*
+ ID_PCI_INTERFACE_FROM_DATABASE=EISA Timers
+
+pci:v*d*sv*sd*bc08sc03*
+ ID_PCI_SUBCLASS_FROM_DATABASE=RTC
+
+pci:v*d*sv*sd*bc08sc03i00*
+ ID_PCI_INTERFACE_FROM_DATABASE=Generic
+
+pci:v*d*sv*sd*bc08sc03i01*
+ ID_PCI_INTERFACE_FROM_DATABASE=ISA RTC
+
+pci:v*d*sv*sd*bc08sc04*
+ ID_PCI_SUBCLASS_FROM_DATABASE=PCI Hot-plug controller
+
+pci:v*d*sv*sd*bc08sc05*
+ ID_PCI_SUBCLASS_FROM_DATABASE=SD Host controller
+
+pci:v*d*sv*sd*bc08sc06*
+ ID_PCI_SUBCLASS_FROM_DATABASE=IOMMU
+
+pci:v*d*sv*sd*bc08sc80*
+ ID_PCI_SUBCLASS_FROM_DATABASE=System peripheral
+
+pci:v*d*sv*sd*bc09*
+ ID_PCI_CLASS_FROM_DATABASE=Input device controller
+
+pci:v*d*sv*sd*bc09sc00*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Keyboard controller
+
+pci:v*d*sv*sd*bc09sc01*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Digitizer Pen
+
+pci:v*d*sv*sd*bc09sc02*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Mouse controller
+
+pci:v*d*sv*sd*bc09sc03*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Scanner controller
+
+pci:v*d*sv*sd*bc09sc04*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Gameport controller
+
+pci:v*d*sv*sd*bc09sc04i00*
+ ID_PCI_INTERFACE_FROM_DATABASE=Generic
+
+pci:v*d*sv*sd*bc09sc04i10*
+ ID_PCI_INTERFACE_FROM_DATABASE=Extended
+
+pci:v*d*sv*sd*bc09sc80*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Input device controller
+
+pci:v*d*sv*sd*bc0A*
+ ID_PCI_CLASS_FROM_DATABASE=Docking station
+
+pci:v*d*sv*sd*bc0Asc00*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Generic Docking Station
+
+pci:v*d*sv*sd*bc0Asc80*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Docking Station
+
+pci:v*d*sv*sd*bc0B*
+ ID_PCI_CLASS_FROM_DATABASE=Processor
+
+pci:v*d*sv*sd*bc0Bsc00*
+ ID_PCI_SUBCLASS_FROM_DATABASE=386
+
+pci:v*d*sv*sd*bc0Bsc01*
+ ID_PCI_SUBCLASS_FROM_DATABASE=486
+
+pci:v*d*sv*sd*bc0Bsc02*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Pentium
+
+pci:v*d*sv*sd*bc0Bsc10*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Alpha
+
+pci:v*d*sv*sd*bc0Bsc20*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Power PC
+
+pci:v*d*sv*sd*bc0Bsc30*
+ ID_PCI_SUBCLASS_FROM_DATABASE=MIPS
+
+pci:v*d*sv*sd*bc0Bsc40*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Co-processor
+
+pci:v*d*sv*sd*bc0C*
+ ID_PCI_CLASS_FROM_DATABASE=Serial bus controller
+
+pci:v*d*sv*sd*bc0Csc00*
+ ID_PCI_SUBCLASS_FROM_DATABASE=FireWire (IEEE 1394)
+
+pci:v*d*sv*sd*bc0Csc00i00*
+ ID_PCI_INTERFACE_FROM_DATABASE=Generic
+
+pci:v*d*sv*sd*bc0Csc00i10*
+ ID_PCI_INTERFACE_FROM_DATABASE=OHCI
+
+pci:v*d*sv*sd*bc0Csc01*
+ ID_PCI_SUBCLASS_FROM_DATABASE=ACCESS Bus
+
+pci:v*d*sv*sd*bc0Csc02*
+ ID_PCI_SUBCLASS_FROM_DATABASE=SSA
+
+pci:v*d*sv*sd*bc0Csc03*
+ ID_PCI_SUBCLASS_FROM_DATABASE=USB controller
+
+pci:v*d*sv*sd*bc0Csc03i00*
+ ID_PCI_INTERFACE_FROM_DATABASE=UHCI
+
+pci:v*d*sv*sd*bc0Csc03i10*
+ ID_PCI_INTERFACE_FROM_DATABASE=OHCI
+
+pci:v*d*sv*sd*bc0Csc03i20*
+ ID_PCI_INTERFACE_FROM_DATABASE=EHCI
+
+pci:v*d*sv*sd*bc0Csc03i30*
+ ID_PCI_INTERFACE_FROM_DATABASE=XHCI
+
+pci:v*d*sv*sd*bc0Csc03i80*
+ ID_PCI_INTERFACE_FROM_DATABASE=Unspecified
+
+pci:v*d*sv*sd*bc0Csc03iFE*
+ ID_PCI_INTERFACE_FROM_DATABASE=USB Device
+
+pci:v*d*sv*sd*bc0Csc04*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Fibre Channel
+
+pci:v*d*sv*sd*bc0Csc05*
+ ID_PCI_SUBCLASS_FROM_DATABASE=SMBus
+
+pci:v*d*sv*sd*bc0Csc06*
+ ID_PCI_SUBCLASS_FROM_DATABASE=InfiniBand
+
+pci:v*d*sv*sd*bc0Csc07*
+ ID_PCI_SUBCLASS_FROM_DATABASE=IPMI SMIC interface
+
+pci:v*d*sv*sd*bc0Csc08*
+ ID_PCI_SUBCLASS_FROM_DATABASE=SERCOS interface
+
+pci:v*d*sv*sd*bc0Csc09*
+ ID_PCI_SUBCLASS_FROM_DATABASE=CANBUS
+
+pci:v*d*sv*sd*bc0D*
+ ID_PCI_CLASS_FROM_DATABASE=Wireless controller
+
+pci:v*d*sv*sd*bc0Dsc00*
+ ID_PCI_SUBCLASS_FROM_DATABASE=IRDA controller
+
+pci:v*d*sv*sd*bc0Dsc01*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Consumer IR controller
+
+pci:v*d*sv*sd*bc0Dsc10*
+ ID_PCI_SUBCLASS_FROM_DATABASE=RF controller
+
+pci:v*d*sv*sd*bc0Dsc11*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Bluetooth
+
+pci:v*d*sv*sd*bc0Dsc12*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Broadband
+
+pci:v*d*sv*sd*bc0Dsc20*
+ ID_PCI_SUBCLASS_FROM_DATABASE=802.1a controller
+
+pci:v*d*sv*sd*bc0Dsc21*
+ ID_PCI_SUBCLASS_FROM_DATABASE=802.1b controller
+
+pci:v*d*sv*sd*bc0Dsc80*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Wireless controller
+
+pci:v*d*sv*sd*bc0E*
+ ID_PCI_CLASS_FROM_DATABASE=Intelligent controller
+
+pci:v*d*sv*sd*bc0Esc00*
+ ID_PCI_SUBCLASS_FROM_DATABASE=I2O
+
+pci:v*d*sv*sd*bc0F*
+ ID_PCI_CLASS_FROM_DATABASE=Satellite communications controller
+
+pci:v*d*sv*sd*bc0Fsc01*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Satellite TV controller
+
+pci:v*d*sv*sd*bc0Fsc02*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Satellite audio communication controller
+
+pci:v*d*sv*sd*bc0Fsc03*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Satellite voice communication controller
+
+pci:v*d*sv*sd*bc0Fsc04*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Satellite data communication controller
+
+pci:v*d*sv*sd*bc10*
+ ID_PCI_CLASS_FROM_DATABASE=Encryption controller
+
+pci:v*d*sv*sd*bc10sc00*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Network and computing encryption device
+
+pci:v*d*sv*sd*bc10sc10*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Entertainment encryption device
+
+pci:v*d*sv*sd*bc10sc80*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Encryption controller
+
+pci:v*d*sv*sd*bc11*
+ ID_PCI_CLASS_FROM_DATABASE=Signal processing controller
+
+pci:v*d*sv*sd*bc11sc00*
+ ID_PCI_SUBCLASS_FROM_DATABASE=DPIO module
+
+pci:v*d*sv*sd*bc11sc01*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Performance counters
+
+pci:v*d*sv*sd*bc11sc10*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Communication synchronizer
+
+pci:v*d*sv*sd*bc11sc20*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Signal processing management
+
+pci:v*d*sv*sd*bc11sc80*
+ ID_PCI_SUBCLASS_FROM_DATABASE=Signal processing controller
+
+pci:v*d*sv*sd*bcFF*
+ ID_PCI_CLASS_FROM_DATABASE=Unassigned class
index 3d6f305..19c1785 100644 (file)
@@ -48248,6 +48248,9 @@ pci:v00008086d00000C7E*
 pci:v00008086d00000C7F*
  ID_PRODUCT_FROM_DATABASE=Centerton Internal Fabric
 
+pci:v00008086d00000D0C*
+ ID_PRODUCT_FROM_DATABASE=Crystal Well HD Audio Controller
+
 pci:v00008086d00000E00*
  ID_PRODUCT_FROM_DATABASE=Ivytown DMI2
 
index b23224a..d51f220 100755 (executable)
 use strict;
 use warnings;
 
-my $vendor;
-
-open(IN, "<", "usb.ids");
-open(OUT, ">", "20-usb-vendor-product.hwdb");
-print(OUT "# This file is part of systemd.\n" .
-          "#\n" .
-          "# Data imported and updated from: http://www.linux-usb.org/usb.ids\n");
-
-while (my $line = <IN>) {
-        $line =~ s/\s+$//;
-        $line =~ m/^([0-9a-f]{4})\s*(.*)$/;
-        if (defined $1) {
-                $vendor = uc $1;
-                my $text = $2;
-                print(OUT "\n");
-                print(OUT "usb:v" . $vendor . "*\n");
-                print(OUT " ID_VENDOR_FROM_DATABASE=" . $text . "\n");
-                next;
-        }
-
-        $line =~ m/^\t([0-9a-f]{4})\s*(.*)$/;
-        if (defined $1) {
-                my $product = uc $1;
-                my $text = $2;
-                print(OUT "\n");
-                print(OUT "usb:v" . $vendor . "p" . $product . "*\n");
-                print(OUT " ID_PRODUCT_FROM_DATABASE=" . $text . "\n");
-        }
+sub usb_vendor {
+       my $vendor;
+
+       open(IN, "<", "usb.ids");
+       open(OUT, ">", "20-usb-vendor-product.hwdb");
+       print(OUT "# This file is part of systemd.\n" .
+                 "#\n" .
+                 "# Data imported and updated from: http://www.linux-usb.org/usb.ids\n");
+
+       while (my $line = <IN>) {
+               $line =~ s/\s+$//;
+               $line =~ m/^([0-9a-f]{4})\s*(.*)$/;
+               if (defined $1) {
+                       $vendor = uc $1;
+                       my $text = $2;
+                       print(OUT "\n");
+                       print(OUT "usb:v" . $vendor . "*\n");
+                       print(OUT " ID_VENDOR_FROM_DATABASE=" . $text . "\n");
+                       next;
+               }
+
+               $line =~ m/^\t([0-9a-f]{4})\s*(.*)$/;
+               if (defined $1) {
+                       my $product = uc $1;
+                       my $text = $2;
+                       print(OUT "\n");
+                       print(OUT "usb:v" . $vendor . "p" . $product . "*\n");
+                       print(OUT " ID_PRODUCT_FROM_DATABASE=" . $text . "\n");
+               }
+       }
+
+       close(INP);
+       close(OUTP);
+}
+
+sub pci_vendor {
+       my $vendor;
+       my $device;
+
+       open(IN, "<", "usb.ids");
+       open(IN, "<", "pci.ids");
+       open(OUT, ">", "20-pci-vendor-product.hwdb");
+       print(OUT "# This file is part of systemd.\n" .
+                 "#\n" .
+                 "# Data imported and updated from: http://pciids.sourceforge.net/v2.2/pci.ids\n");
+
+       while (my $line = <IN>) {
+               $line =~ s/\s+$//;
+               $line =~ m/^([0-9a-f]{4})\s*(.*)$/;
+
+               if (defined $1) {
+                       $vendor = uc $1;
+                       my $text = $2;
+                       print(OUT "\n");
+                       print(OUT "pci:v0000" . $vendor . "*\n");
+                       print(OUT " ID_VENDOR_FROM_DATABASE=" . $text . "\n");
+                       next;
+               }
+
+               $line =~ m/^\t([0-9a-f]{4})\s*(.*)$/;
+               if (defined $1) {
+                       $device = uc $1;
+                       my $text = $2;
+                       print(OUT "\n");
+                       print(OUT "pci:v0000" . $vendor . "d0000" . $device . "*\n");
+                       print(OUT " ID_PRODUCT_FROM_DATABASE=" . $text . "\n");
+                       next;
+               }
+
+               $line =~ m/^\t\t([0-9a-f]{4})\s*([0-9a-f]{4})\s*(.*)$/;
+               if (defined $1) {
+                       my $sub_vendor = uc $1;
+                       my $sub_device = uc $2;
+                       my $text = $3;
+                       print(OUT "\n");
+                       print(OUT "pci:v0000" . $vendor . "d0000" . $device . "sv0000" . $sub_vendor . "sd0000" . $sub_device . "*\n");
+                       print(OUT " ID_PRODUCT_FROM_DATABASE=" . $text . "\n");
+               }
+       }
+
+       close(INP);
+       close(OUTP);
 }
-close(INP);
-close(OUTP);
-
-
-my $device;
-
-open(IN, "<", "pci.ids");
-open(OUT, ">", "20-pci-vendor-product.hwdb");
-print(OUT "# This file is part of systemd.\n" .
-          "#\n" .
-          "# Data imported and updated from: http://pciids.sourceforge.net/v2.2/pci.ids\n");
-
-while (my $line = <IN>) {
-        $line =~ s/\s+$//;
-        $line =~ m/^([0-9a-f]{4})\s*(.*)$/;
-        if (defined $1) {
-                $vendor = uc $1;
-                my $text = $2;
-                print(OUT "\n");
-                print(OUT "pci:v0000" . $vendor . "*\n");
-                print(OUT " ID_VENDOR_FROM_DATABASE=" . $text . "\n");
-                next;
-        }
-
-        $line =~ m/^\t([0-9a-f]{4})\s*(.*)$/;
-        if (defined $1) {
-                $device = uc $1;
-                my $text = $2;
-                print(OUT "\n");
-                print(OUT "pci:v0000" . $vendor . "d0000" . $device . "*\n");
-                print(OUT " ID_PRODUCT_FROM_DATABASE=" . $text . "\n");
-                next;
-        }
-
-        $line =~ m/^\t\t([0-9a-f]{4})\s*([0-9a-f]{4})\s*(.*)$/;
-        if (defined $1) {
-                my $sub_vendor = uc $1;
-                my $sub_device = uc $2;
-                my $text = $3;
-                print(OUT "\n");
-                print(OUT "pci:v0000" . $vendor . "d0000" . $device . "sv0000" . $sub_vendor . "sd0000" . $sub_device . "*\n");
-                print(OUT " ID_PRODUCT_FROM_DATABASE=" . $text . "\n");
-        }
+
+sub pci_classes {
+       my $class;
+       my $subclass;
+       my $interface;
+
+       open(IN, "<", "pci.ids");
+       open(OUT, ">", "20-pci-classes.hwdb");
+       print(OUT "# This file is part of systemd.\n" .
+                 "#\n" .
+                 "# Data imported and updated from: http://pciids.sourceforge.net/v2.2/pci.ids\n");
+
+       while (my $line = <IN>) {
+               $line =~ s/\s+$//;
+
+               $line =~ m/^C\ ([0-9a-f]{2})\s*(.*)$/;
+               if (defined $1) {
+                       $class = uc $1;
+                       my $text = $2;
+                       print(OUT "\n");
+                       print(OUT "pci:v*d*sv*sd*bc" . $class . "*\n");
+                       print(OUT " ID_PCI_CLASS_FROM_DATABASE=" . $text . "\n");
+                       next;
+               }
+
+               if (not defined $class) {
+                       next;
+               }
+
+               $line =~ m/^\t([0-9a-f]{2})\s*(.*)$/;
+               if (defined $1) {
+                       $subclass = uc $1;
+                       my $text = $2;
+                       print(OUT "\n");
+                       print(OUT "pci:v*d*sv*sd*bc" . $class . "sc" . $subclass . "*\n");
+                       print(OUT " ID_PCI_SUBCLASS_FROM_DATABASE=" . $text . "\n");
+                       next;
+               }
+
+               $line =~ m/^\t\t([0-9a-f]{2})\s*(.*)$/;
+               if (defined $1) {
+                       $interface = uc $1;
+                       my $text = $2;
+                       print(OUT "\n");
+                       print(OUT "pci:v*d*sv*sd*bc" .  $class . "sc" . $subclass . "i" . $interface . "*\n");
+                       print(OUT " ID_PCI_INTERFACE_FROM_DATABASE=" . $text . "\n");
+               }
+       }
+
+       close(INP);
+       close(OUTP);
 }
-close(INP);
-close(OUTP);
-
-open(IN, "<", "oui.txt");
-open(OUT, ">", "20-OUI.hwdb");
-print(OUT "# This file is part of systemd.\n" .
-          "#\n" .
-          "# Data imported and updated from: http://standards.ieee.org/develop/regauth/oui/oui.txt\n");
-
-while (my $line = <IN>) {
-        $line =~ s/\s+$//;
-        $line =~ m/^([0-9A-F]{6})\s*\(base 16\)\s*(.*)$/;
-        if (defined $1) {
-                my $vendor = uc $1;
-                my $text = $2;
-                print(OUT "\n");
-                print(OUT "OUI:" . $vendor . "\n");
-                print(OUT " ID_OUI_FROM_DATABASE=" . $text . "\n");
-        }
+
+sub oui {
+       open(IN, "<", "oui.txt");
+       open(OUT, ">", "20-OUI.hwdb");
+       print(OUT "# This file is part of systemd.\n" .
+                 "#\n" .
+                 "# Data imported and updated from: http://standards.ieee.org/develop/regauth/oui/oui.txt\n");
+
+       while (my $line = <IN>) {
+               $line =~ s/\s+$//;
+               $line =~ m/^([0-9A-F]{6})\s*\(base 16\)\s*(.*)$/;
+               if (defined $1) {
+                       my $vendor = uc $1;
+                       my $text = $2;
+                       print(OUT "\n");
+                       print(OUT "OUI:" . $vendor . "\n");
+                       print(OUT " ID_OUI_FROM_DATABASE=" . $text . "\n");
+               }
+       }
+
+       close(INP);
+       close(OUTP);
 }
-close(INP);
-close(OUTP);
+
+usb_vendor();
+pci_vendor();
+pci_classes();
+oui();