vli: Define the device GType in the quirk file

This allows us to define different types of devices in the future.
This commit is contained in:
Richard Hughes 2019-12-17 09:28:41 +00:00
parent 15857f8056
commit 62b84d4c5b
4 changed files with 61 additions and 1 deletions

View File

@ -62,6 +62,7 @@ the other flash chip parameters. For example:
[DeviceInstanceId=USB\VID_2109&PID_0210] [DeviceInstanceId=USB\VID_2109&PID_0210]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
SpiCmdReadId = 0xf8 SpiCmdReadId = 0xf8
SpiCmdReadIdSz = 4 SpiCmdReadIdSz = 4

View File

@ -17,9 +17,11 @@ void
fu_plugin_init (FuPlugin *plugin) fu_plugin_init (FuPlugin *plugin)
{ {
fu_plugin_set_build_hash (plugin, FU_BUILD_HASH); fu_plugin_set_build_hash (plugin, FU_BUILD_HASH);
fu_plugin_set_device_gtype (plugin, FU_TYPE_VLI_USBHUB_DEVICE);
fu_plugin_add_firmware_gtype (plugin, "vli-usbhub", FU_TYPE_VLI_USBHUB_FIRMWARE); fu_plugin_add_firmware_gtype (plugin, "vli-usbhub", FU_TYPE_VLI_USBHUB_FIRMWARE);
fu_plugin_add_firmware_gtype (plugin, "vli-usbhub-pd", FU_TYPE_VLI_USBHUB_PD_FIRMWARE); fu_plugin_add_firmware_gtype (plugin, "vli-usbhub-pd", FU_TYPE_VLI_USBHUB_PD_FIRMWARE);
/* register the custom types */
g_type_ensure (FU_TYPE_VLI_USBHUB_DEVICE);
} }
/* reboot the FuVliUsbhubDevice if we update the FuVliUsbhubPdDevice */ /* reboot the FuVliUsbhubDevice if we update the FuVliUsbhubPdDevice */

View File

@ -1,168 +1,210 @@
# Lenovo CS18 Ultra Dock # Lenovo CS18 Ultra Dock
[DeviceInstanceId=USB\VID_17EF&PID_3070] [DeviceInstanceId=USB\VID_17EF&PID_3070]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = usb3 Flags = usb3
[DeviceInstanceId=USB\VID_17EF&PID_3071] [DeviceInstanceId=USB\VID_17EF&PID_3071]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = usb2 Flags = usb2
# Lenovo CS18 Pro and Basic Dock # Lenovo CS18 Pro and Basic Dock
[DeviceInstanceId=USB\VID_17EF&PID_3072] [DeviceInstanceId=USB\VID_17EF&PID_3072]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = usb3 Flags = usb3
[DeviceInstanceId=USB\VID_17EF&PID_3073] [DeviceInstanceId=USB\VID_17EF&PID_3073]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = usb2 Flags = usb2
# Lenovo TR Dock # Lenovo TR Dock
[DeviceInstanceId=USB\VID_17EF&PID_307F] [DeviceInstanceId=USB\VID_17EF&PID_307F]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = usb3,has-shared-spi-i2c Flags = usb3,has-shared-spi-i2c
[DeviceInstanceId=USB\VID_17EF&PID_3080] [DeviceInstanceId=USB\VID_17EF&PID_3080]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = usb2,has-shared-spi-i2c Flags = usb2,has-shared-spi-i2c
# Lenovo CS13 KG Dock # Lenovo CS13 KG Dock
[DeviceInstanceId=USB\VID_17EF&PID_1010] [DeviceInstanceId=USB\VID_17EF&PID_1010]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = usb2,usb3 Flags = usb2,usb3
# Lenovo CS13 GD Dock # Lenovo CS13 GD Dock
[DeviceInstanceId=USB\VID_17EF&PID_1012] [DeviceInstanceId=USB\VID_17EF&PID_1012]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = usb2,usb3 Flags = usb2,usb3
# Lenovo CS13 MO Dock # Lenovo CS13 MO Dock
[DeviceInstanceId=USB\VID_17EF&PID_1013] [DeviceInstanceId=USB\VID_17EF&PID_1013]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = usb2,usb3 Flags = usb2,usb3
# Lenovo Payton dock # Lenovo Payton dock
[DeviceInstanceId=USB\VID_17EF&PID_305A] [DeviceInstanceId=USB\VID_17EF&PID_305A]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = tier1,usb2,usb3 Flags = tier1,usb2,usb3
[DeviceInstanceId=USB\VID_17EF&PID_305B] [DeviceInstanceId=USB\VID_17EF&PID_305B]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = tier2,usb2,usb3 Flags = tier2,usb2,usb3
# Lenovo USB3 Ultra Dock # Lenovo USB3 Ultra Dock
[DeviceInstanceId=USB\VID_17EF&PID_1014] [DeviceInstanceId=USB\VID_17EF&PID_1014]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = tier1,usb2,usb3 Flags = tier1,usb2,usb3
[DeviceInstanceId=USB\VID_17EF&PID_1015] [DeviceInstanceId=USB\VID_17EF&PID_1015]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = tier2,usb2,usb3 Flags = tier2,usb2,usb3
# Lenovo USB3 Pro Dock # Lenovo USB3 Pro Dock
[DeviceInstanceId=USB\VID_17EF&PID_1016] [DeviceInstanceId=USB\VID_17EF&PID_1016]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = tier1,usb2,usb3 Flags = tier1,usb2,usb3
[DeviceInstanceId=USB\VID_17EF&PID_1018] [DeviceInstanceId=USB\VID_17EF&PID_1018]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = tier2,usb2,usb3 Flags = tier2,usb2,usb3
# Lenovo Workstation D40 # Lenovo Workstation D40
[DeviceInstanceId=USB\VID_17EF&PID_1033] [DeviceInstanceId=USB\VID_17EF&PID_1033]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = usb2,usb3 Flags = usb2,usb3
# Lenovo Workstation S40 # Lenovo Workstation S40
[DeviceInstanceId=USB\VID_17EF&PID_1034] [DeviceInstanceId=USB\VID_17EF&PID_1034]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = usb2,usb3 Flags = usb2,usb3
# Lenovo Workstation v40 # Lenovo Workstation v40
[DeviceInstanceId=USB\VID_17EF&PID_1035] [DeviceInstanceId=USB\VID_17EF&PID_1035]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = usb2,usb3 Flags = usb2,usb3
# Lenovo One Link Plus # Lenovo One Link Plus
[DeviceInstanceId=USB\VID_17EF&PID_1018] [DeviceInstanceId=USB\VID_17EF&PID_1018]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = tier1,usb2,usb3 Flags = tier1,usb2,usb3
[DeviceInstanceId=USB\VID_17EF&PID_1019] [DeviceInstanceId=USB\VID_17EF&PID_1019]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = tier2,usb2,usb3 Flags = tier2,usb2,usb3
# Lenovo Hybrid dock # Lenovo Hybrid dock
[DeviceInstanceId=USB\VID_17EF&PID_A356] [DeviceInstanceId=USB\VID_17EF&PID_A356]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = tier1,usb3 Flags = tier1,usb3
[DeviceInstanceId=USB\VID_17EF&PID_1028] [DeviceInstanceId=USB\VID_17EF&PID_1028]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = tier1,usb2 Flags = tier1,usb2
[DeviceInstanceId=USB\VID_17EF&PID_A357] [DeviceInstanceId=USB\VID_17EF&PID_A357]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = tier2,usb3 Flags = tier2,usb3
[DeviceInstanceId=USB\VID_17EF&PID_1029] [DeviceInstanceId=USB\VID_17EF&PID_1029]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = tier2,usb2 Flags = tier2,usb2
# Lenovo Travel hub # Lenovo Travel hub
[DeviceInstanceId=USB\VID_17EF&PID_7216] [DeviceInstanceId=USB\VID_17EF&PID_7216]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = usb3 Flags = usb3
[DeviceInstanceId=USB\VID_17EF&PID_7224] [DeviceInstanceId=USB\VID_17EF&PID_7224]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = usb2 Flags = usb2
# Lenovo Travel hub Gen2 # Lenovo Travel hub Gen2
[DeviceInstanceId=USB\VID_17EF&PID_721D] [DeviceInstanceId=USB\VID_17EF&PID_721D]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = usb3,has-shared-spi-pd Flags = usb3,has-shared-spi-pd
[DeviceInstanceId=USB\VID_17EF&PID_7225] [DeviceInstanceId=USB\VID_17EF&PID_7225]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = usb2,has-shared-spi-pd Flags = usb2,has-shared-spi-pd
# Lenovo USB-C Mini dock # Lenovo USB-C Mini dock
[DeviceInstanceId=USB\VID_17EF&PID_3094] [DeviceInstanceId=USB\VID_17EF&PID_3094]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = usb3,has-shared-spi-pd Flags = usb3,has-shared-spi-pd
[DeviceInstanceId=USB\VID_17EF&PID_3095] [DeviceInstanceId=USB\VID_17EF&PID_3095]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = usb2,has-shared-spi-pd Flags = usb2,has-shared-spi-pd
# Lenovo Travel Hub 1in3 # Lenovo Travel Hub 1in3
[DeviceInstanceId=USB\VID_17EF&PID_7228] [DeviceInstanceId=USB\VID_17EF&PID_7228]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = usb3 Flags = usb3
[DeviceInstanceId=USB\VID_17EF&PID_7226] [DeviceInstanceId=USB\VID_17EF&PID_7226]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = usb2 Flags = usb2
# Lenovo USB-C 7-in-1 Hub # Lenovo USB-C 7-in-1 Hub
[DeviceInstanceId=USB\VID_17EF&PID_722A] [DeviceInstanceId=USB\VID_17EF&PID_722A]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = usb3,has-shared-spi-pd Flags = usb3,has-shared-spi-pd
[DeviceInstanceId=USB\VID_17EF&PID_7229] [DeviceInstanceId=USB\VID_17EF&PID_7229]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = usb2,has-shared-spi-pd Flags = usb2,has-shared-spi-pd
# Lenovo USB-C to 4 USB-A Hub # Lenovo USB-C to 4 USB-A Hub
[DeviceInstanceId=USB\VID_17EF&PID_1039] [DeviceInstanceId=USB\VID_17EF&PID_1039]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = usb3,has-shared-spi-pd Flags = usb3,has-shared-spi-pd
[DeviceInstanceId=USB\VID_17EF&PID_103A] [DeviceInstanceId=USB\VID_17EF&PID_103A]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = usb2,has-shared-spi-pd Flags = usb2,has-shared-spi-pd
# Lenovo Gen2 dock # Lenovo Gen2 dock
[DeviceInstanceId=USB\VID_17EF&PID_A391] [DeviceInstanceId=USB\VID_17EF&PID_A391]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = tier1,usb3 Flags = tier1,usb3
[DeviceInstanceId=USB\VID_17EF&PID_A392] [DeviceInstanceId=USB\VID_17EF&PID_A392]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = tier1,usb2 Flags = tier1,usb2
[DeviceInstanceId=USB\VID_17EF&PID_A393] [DeviceInstanceId=USB\VID_17EF&PID_A393]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = tier2,usb3 Flags = tier2,usb3
[DeviceInstanceId=USB\VID_17EF&PID_A394] [DeviceInstanceId=USB\VID_17EF&PID_A394]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = tier2,usb2 Flags = tier2,usb2
[DeviceInstanceId=USB\VID_17EF&PID_A395] [DeviceInstanceId=USB\VID_17EF&PID_A395]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
# Lenovo Powered Hub # Lenovo Powered Hub
[DeviceInstanceId=USB\VID_17EF&PID_721C] [DeviceInstanceId=USB\VID_17EF&PID_721C]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = usb2 Flags = usb2

View File

@ -1,46 +1,61 @@
# 3470_Class # 3470_Class
[DeviceInstanceId=USB\VID_2109&PID_0810] [DeviceInstanceId=USB\VID_2109&PID_0810]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
[DeviceInstanceId=USB\VID_2109&PID_0811] [DeviceInstanceId=USB\VID_2109&PID_0811]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
[DeviceInstanceId=USB\VID_2109&PID_0812] [DeviceInstanceId=USB\VID_2109&PID_0812]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
[DeviceInstanceId=USB\VID_2109&PID_0813] [DeviceInstanceId=USB\VID_2109&PID_0813]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = needs-unlock-legacy813 Flags = needs-unlock-legacy813
[DeviceInstanceId=USB\VID_2109&PID_8110] [DeviceInstanceId=USB\VID_2109&PID_8110]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
[DeviceInstanceId=USB\VID_2109&PID_8113] [DeviceInstanceId=USB\VID_2109&PID_8113]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
# 3507_Class # 3507_Class
[DeviceInstanceId=USB\VID_2109&PID_0210] [DeviceInstanceId=USB\VID_2109&PID_0210]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
# 3545_Class # 3545_Class
[DeviceInstanceId=USB\VID_2109&PID_0211] [DeviceInstanceId=USB\VID_2109&PID_0211]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
[DeviceInstanceId=USB\VID_2109&PID_2211] [DeviceInstanceId=USB\VID_2109&PID_2211]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
[DeviceInstanceId=USB\VID_2109&PID_0212] [DeviceInstanceId=USB\VID_2109&PID_0212]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
[DeviceInstanceId=USB\VID_2109&PID_2212] [DeviceInstanceId=USB\VID_2109&PID_2212]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
# VL817 # VL817
[DeviceInstanceId=USB\VID_2109&PID_0817] [DeviceInstanceId=USB\VID_2109&PID_0817]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = usb3 Flags = usb3
[DeviceInstanceId=USB\VID_2109&PID_2817] [DeviceInstanceId=USB\VID_2109&PID_2817]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = usb2 Flags = usb2
# VL820 # VL820
[DeviceInstanceId=USB\VID_2109&PID_0820] [DeviceInstanceId=USB\VID_2109&PID_0820]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = usb3,has-shared-spi-pd Flags = usb3,has-shared-spi-pd
[DeviceInstanceId=USB\VID_2109&PID_2820] [DeviceInstanceId=USB\VID_2109&PID_2820]
Plugin = vli Plugin = vli
GType = FuVliUsbhubDevice
Flags = usb2,has-shared-spi-pd Flags = usb2,has-shared-spi-pd
# A25Lxxx # A25Lxxx