diff --git a/libfwupdplugin/fu-udev-device.c b/libfwupdplugin/fu-udev-device.c index 71b8dae0a..9c42b7735 100644 --- a/libfwupdplugin/fu-udev-device.c +++ b/libfwupdplugin/fu-udev-device.c @@ -322,6 +322,19 @@ fu_udev_device_probe (FuDevice *device, GError **error) FU_DEVICE_INSTANCE_FLAG_ONLY_QUIRKS); } + /* add device class */ + tmp = g_udev_device_get_sysfs_attr (priv->udev_device, "class"); + if (tmp != NULL && g_str_has_prefix (tmp, "0x")) { + g_autofree gchar *class_id = g_utf8_strup (tmp + 2, -1); + g_autofree gchar *devid = NULL; + devid = g_strdup_printf ("%s\\VEN_%04X&CLASS_%s", + subsystem, + priv->vendor, + class_id); + fu_device_add_instance_id_full (device, devid, + FU_DEVICE_INSTANCE_FLAG_ONLY_QUIRKS); + } + /* add subsystem to match in plugins */ if (subsystem != NULL) { fu_device_add_instance_id_full (device, subsystem, diff --git a/plugins/pci-bcr/pci-bcr.quirk b/plugins/pci-bcr/pci-bcr.quirk index d5afebf30..4ddb5007d 100644 --- a/plugins/pci-bcr/pci-bcr.quirk +++ b/plugins/pci-bcr/pci-bcr.quirk @@ -1,181 +1,9 @@ # ISA bridge i.e. 00:1F.0 # -> drivers/mfd/lpc_ich.c - -# Sunrise Point LPC/eSPI -[DeviceInstanceId=PCI\VEN_8086&DEV_9D4E] -Plugin = pci_bcr - -# Tiger Lake -[DeviceInstanceId=PCI\VEN_8086&DEV_A0A4] -Plugin = pci_bcr - -# Sunrise Point-H LPC -[DeviceInstanceId=PCI\VEN_8086&DEV_A140] -Plugin = pci_bcr - -# Sunrise Point-H LPC -[DeviceInstanceId=PCI\VEN_8086&DEV_A141] -Plugin = pci_bcr - -# Sunrise Point-H LPC -[DeviceInstanceId=PCI\VEN_8086&DEV_A142] -Plugin = pci_bcr - -# H110 LPC/eSPI -[DeviceInstanceId=PCI\VEN_8086&DEV_A143] -Plugin = pci_bcr - -# H170 LPC/eSPI -[DeviceInstanceId=PCI\VEN_8086&DEV_A144] -Plugin = pci_bcr - -# Z170 LPC/eSPI -[DeviceInstanceId=PCI\VEN_8086&DEV_A145] -Plugin = pci_bcr - -# Q170 LPC/eSPI -[DeviceInstanceId=PCI\VEN_8086&DEV_A146] -Plugin = pci_bcr - -# Q150 LPC/eSPI -[DeviceInstanceId=PCI\VEN_8086&DEV_A147] -Plugin = pci_bcr - -# B150 LPC/eSPI -[DeviceInstanceId=PCI\VEN_8086&DEV_A148] -Plugin = pci_bcr - -# C236 LPC/eSPI -[DeviceInstanceId=PCI\VEN_8086&DEV_A149] -Plugin = pci_bcr - -# C232 LPC/eSPI -[DeviceInstanceId=PCI\VEN_8086&DEV_A14A] -Plugin = pci_bcr - -# Sunrise Point-H LPC -[DeviceInstanceId=PCI\VEN_8086&DEV_A14B] -Plugin = pci_bcr - -# Sunrise Point-H LPC -[DeviceInstanceId=PCI\VEN_8086&DEV_A14C] -Plugin = pci_bcr - -# QM170 LPC/eSPI -[DeviceInstanceId=PCI\VEN_8086&DEV_A14D] -Plugin = pci_bcr - -# HM170 LPC/eSPI -[DeviceInstanceId=PCI\VEN_8086&DEV_A14E] -Plugin = pci_bcr - -# Sunrise Point-H LPC -[DeviceInstanceId=PCI\VEN_8086&DEV_A14F] -Plugin = pci_bcr - -# CM236 LPC/eSPI -[DeviceInstanceId=PCI\VEN_8086&DEV_A150] -Plugin = pci_bcr - -# Sunrise Point-H LPC -[DeviceInstanceId=PCI\VEN_8086&DEV_A151] -Plugin = pci_bcr - -# HM175 LPC/eSPI -[DeviceInstanceId=PCI\VEN_8086&DEV_A152] -Plugin = pci_bcr - -# QM175 LPC/eSPI -[DeviceInstanceId=PCI\VEN_8086&DEV_A153] -Plugin = pci_bcr - -# CM238 LPC/eSPI -[DeviceInstanceId=PCI\VEN_8086&DEV_A154] -Plugin = pci_bcr - -# Sunrise Point-H LPC -[DeviceInstanceId=PCI\VEN_8086&DEV_A155] -Plugin = pci_bcr - -# C621 LPC/eSPI -[DeviceInstanceId=PCI\VEN_8086&DEV_A1C1] -Plugin = pci_bcr - -# C622 LPC/eSPI -[DeviceInstanceId=PCI\VEN_8086&DEV_A1C2] -Plugin = pci_bcr - -# C624 LPC/eSPI -[DeviceInstanceId=PCI\VEN_8086&DEV_A1C3] -Plugin = pci_bcr - -# C625 LPC/eSPI -[DeviceInstanceId=PCI\VEN_8086&DEV_A1C4] -Plugin = pci_bcr - -# C626 LPC/eSPI -[DeviceInstanceId=PCI\VEN_8086&DEV_A1C5] -Plugin = pci_bcr - -# C627 LPC/eSPI -[DeviceInstanceId=PCI\VEN_8086&DEV_A1C6] -Plugin = pci_bcr - -# C628 LPC/eSPI -[DeviceInstanceId=PCI\VEN_8086&DEV_A1C7] -Plugin = pci_bcr - -# H370 LPC/eSPI -[DeviceInstanceId=PCI\VEN_8086&DEV_A304] -Plugin = pci_bcr - -# Z390 LPC/eSPI -[DeviceInstanceId=PCI\VEN_8086&DEV_A305] -Plugin = pci_bcr - -# Q370 LPC/eSPI -[DeviceInstanceId=PCI\VEN_8086&DEV_A306] -Plugin = pci_bcr - -# QM370 LPC/eSPI -[DeviceInstanceId=PCI\VEN_8086&DEV_A30C] +[DeviceInstanceId=PCI\VEN_8086&CLASS_060100] Plugin = pci_bcr # PCI devices, i.e. 00:1F.5 # -> drivers/mtd/spi-nor/controllers/intel-spi-pci.c - -# Comet Lake SPI -[DeviceInstanceId=PCI\VEN_8086&DEV_02A4] -Plugin = pci_bcr - -# Comet Lake H -[DeviceInstanceId=PCI\VEN_8086&DEV_06A4] -Plugin = pci_bcr - -# Ice Lake-LP SPI -[DeviceInstanceId=PCI\VEN_8086&DEV_34A4] -Plugin = pci_bcr - -# Elkhart Lake -[DeviceInstanceId=PCI\VEN_8086&DEV_4B24] -Plugin = pci_bcr - -# Jasper Lake -[DeviceInstanceId=PCI\VEN_8086&DEV_4DA4] -Plugin = pci_bcr - -# Cannon Point-LP SPI -[DeviceInstanceId=PCI\VEN_8086&DEV_9DA4] -Plugin = pci_bcr - -# C620 SPI -[DeviceInstanceId=PCI\VEN_8086&DEV_A1A4] -Plugin = pci_bcr - -# Cannon Lake PCH SPI -[DeviceInstanceId=PCI\VEN_8086&DEV_A324] -Plugin = pci_bcr - -# Comet Lake V -[DeviceInstanceId=PCI\VEN_8086&DEV_A3A4] +[DeviceInstanceId=PCI\VEN_8086&CLASS_0C8000] Plugin = pci_bcr