diff --git a/plugins/vli/README.md b/plugins/vli/README.md index 28a06d189..ade6def48 100644 --- a/plugins/vli/README.md +++ b/plugins/vli/README.md @@ -62,6 +62,7 @@ the other flash chip parameters. For example: [DeviceInstanceId=USB\VID_2109&PID_0210] Plugin = vli + GType = FuVliUsbhubDevice SpiCmdReadId = 0xf8 SpiCmdReadIdSz = 4 diff --git a/plugins/vli/fu-plugin-vli.c b/plugins/vli/fu-plugin-vli.c index d356495b3..8fc724df0 100644 --- a/plugins/vli/fu-plugin-vli.c +++ b/plugins/vli/fu-plugin-vli.c @@ -17,9 +17,11 @@ void fu_plugin_init (FuPlugin *plugin) { 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-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 */ diff --git a/plugins/vli/vli-usbhub-lenovo.quirk b/plugins/vli/vli-usbhub-lenovo.quirk index cdf1f7624..d5e5a3c6c 100644 --- a/plugins/vli/vli-usbhub-lenovo.quirk +++ b/plugins/vli/vli-usbhub-lenovo.quirk @@ -1,168 +1,210 @@ # Lenovo CS18 Ultra Dock [DeviceInstanceId=USB\VID_17EF&PID_3070] Plugin = vli +GType = FuVliUsbhubDevice Flags = usb3 [DeviceInstanceId=USB\VID_17EF&PID_3071] Plugin = vli +GType = FuVliUsbhubDevice Flags = usb2 # Lenovo CS18 Pro and Basic Dock [DeviceInstanceId=USB\VID_17EF&PID_3072] Plugin = vli +GType = FuVliUsbhubDevice Flags = usb3 [DeviceInstanceId=USB\VID_17EF&PID_3073] Plugin = vli +GType = FuVliUsbhubDevice Flags = usb2 # Lenovo TR Dock [DeviceInstanceId=USB\VID_17EF&PID_307F] Plugin = vli +GType = FuVliUsbhubDevice Flags = usb3,has-shared-spi-i2c [DeviceInstanceId=USB\VID_17EF&PID_3080] Plugin = vli +GType = FuVliUsbhubDevice Flags = usb2,has-shared-spi-i2c # Lenovo CS13 KG Dock [DeviceInstanceId=USB\VID_17EF&PID_1010] Plugin = vli +GType = FuVliUsbhubDevice Flags = usb2,usb3 # Lenovo CS13 GD Dock [DeviceInstanceId=USB\VID_17EF&PID_1012] Plugin = vli +GType = FuVliUsbhubDevice Flags = usb2,usb3 # Lenovo CS13 MO Dock [DeviceInstanceId=USB\VID_17EF&PID_1013] Plugin = vli +GType = FuVliUsbhubDevice Flags = usb2,usb3 # Lenovo Payton dock [DeviceInstanceId=USB\VID_17EF&PID_305A] Plugin = vli +GType = FuVliUsbhubDevice Flags = tier1,usb2,usb3 [DeviceInstanceId=USB\VID_17EF&PID_305B] Plugin = vli +GType = FuVliUsbhubDevice Flags = tier2,usb2,usb3 # Lenovo USB3 Ultra Dock [DeviceInstanceId=USB\VID_17EF&PID_1014] Plugin = vli +GType = FuVliUsbhubDevice Flags = tier1,usb2,usb3 [DeviceInstanceId=USB\VID_17EF&PID_1015] Plugin = vli +GType = FuVliUsbhubDevice Flags = tier2,usb2,usb3 # Lenovo USB3 Pro Dock [DeviceInstanceId=USB\VID_17EF&PID_1016] Plugin = vli +GType = FuVliUsbhubDevice Flags = tier1,usb2,usb3 [DeviceInstanceId=USB\VID_17EF&PID_1018] Plugin = vli +GType = FuVliUsbhubDevice Flags = tier2,usb2,usb3 # Lenovo Workstation D40 [DeviceInstanceId=USB\VID_17EF&PID_1033] Plugin = vli +GType = FuVliUsbhubDevice Flags = usb2,usb3 # Lenovo Workstation S40 [DeviceInstanceId=USB\VID_17EF&PID_1034] Plugin = vli +GType = FuVliUsbhubDevice Flags = usb2,usb3 # Lenovo Workstation v40 [DeviceInstanceId=USB\VID_17EF&PID_1035] Plugin = vli +GType = FuVliUsbhubDevice Flags = usb2,usb3 # Lenovo One Link Plus [DeviceInstanceId=USB\VID_17EF&PID_1018] Plugin = vli +GType = FuVliUsbhubDevice Flags = tier1,usb2,usb3 [DeviceInstanceId=USB\VID_17EF&PID_1019] Plugin = vli +GType = FuVliUsbhubDevice Flags = tier2,usb2,usb3 # Lenovo Hybrid dock [DeviceInstanceId=USB\VID_17EF&PID_A356] Plugin = vli +GType = FuVliUsbhubDevice Flags = tier1,usb3 [DeviceInstanceId=USB\VID_17EF&PID_1028] Plugin = vli +GType = FuVliUsbhubDevice Flags = tier1,usb2 [DeviceInstanceId=USB\VID_17EF&PID_A357] Plugin = vli +GType = FuVliUsbhubDevice Flags = tier2,usb3 [DeviceInstanceId=USB\VID_17EF&PID_1029] Plugin = vli +GType = FuVliUsbhubDevice Flags = tier2,usb2 # Lenovo Travel hub [DeviceInstanceId=USB\VID_17EF&PID_7216] Plugin = vli +GType = FuVliUsbhubDevice Flags = usb3 [DeviceInstanceId=USB\VID_17EF&PID_7224] Plugin = vli +GType = FuVliUsbhubDevice Flags = usb2 # Lenovo Travel hub Gen2 [DeviceInstanceId=USB\VID_17EF&PID_721D] Plugin = vli +GType = FuVliUsbhubDevice Flags = usb3,has-shared-spi-pd [DeviceInstanceId=USB\VID_17EF&PID_7225] Plugin = vli +GType = FuVliUsbhubDevice Flags = usb2,has-shared-spi-pd # Lenovo USB-C Mini dock [DeviceInstanceId=USB\VID_17EF&PID_3094] Plugin = vli +GType = FuVliUsbhubDevice Flags = usb3,has-shared-spi-pd [DeviceInstanceId=USB\VID_17EF&PID_3095] Plugin = vli +GType = FuVliUsbhubDevice Flags = usb2,has-shared-spi-pd # Lenovo Travel Hub 1in3 [DeviceInstanceId=USB\VID_17EF&PID_7228] Plugin = vli +GType = FuVliUsbhubDevice Flags = usb3 [DeviceInstanceId=USB\VID_17EF&PID_7226] Plugin = vli +GType = FuVliUsbhubDevice Flags = usb2 # Lenovo USB-C 7-in-1 Hub [DeviceInstanceId=USB\VID_17EF&PID_722A] Plugin = vli +GType = FuVliUsbhubDevice Flags = usb3,has-shared-spi-pd [DeviceInstanceId=USB\VID_17EF&PID_7229] Plugin = vli +GType = FuVliUsbhubDevice Flags = usb2,has-shared-spi-pd # Lenovo USB-C to 4 USB-A Hub [DeviceInstanceId=USB\VID_17EF&PID_1039] Plugin = vli +GType = FuVliUsbhubDevice Flags = usb3,has-shared-spi-pd [DeviceInstanceId=USB\VID_17EF&PID_103A] Plugin = vli +GType = FuVliUsbhubDevice Flags = usb2,has-shared-spi-pd # Lenovo Gen2 dock [DeviceInstanceId=USB\VID_17EF&PID_A391] Plugin = vli +GType = FuVliUsbhubDevice Flags = tier1,usb3 [DeviceInstanceId=USB\VID_17EF&PID_A392] Plugin = vli +GType = FuVliUsbhubDevice Flags = tier1,usb2 [DeviceInstanceId=USB\VID_17EF&PID_A393] Plugin = vli +GType = FuVliUsbhubDevice Flags = tier2,usb3 [DeviceInstanceId=USB\VID_17EF&PID_A394] Plugin = vli +GType = FuVliUsbhubDevice Flags = tier2,usb2 [DeviceInstanceId=USB\VID_17EF&PID_A395] Plugin = vli +GType = FuVliUsbhubDevice # Lenovo Powered Hub [DeviceInstanceId=USB\VID_17EF&PID_721C] Plugin = vli +GType = FuVliUsbhubDevice Flags = usb2 diff --git a/plugins/vli/vli-usbhub.quirk b/plugins/vli/vli-usbhub.quirk index 823b8b526..5a10ab957 100644 --- a/plugins/vli/vli-usbhub.quirk +++ b/plugins/vli/vli-usbhub.quirk @@ -1,46 +1,61 @@ # 3470_Class [DeviceInstanceId=USB\VID_2109&PID_0810] Plugin = vli +GType = FuVliUsbhubDevice [DeviceInstanceId=USB\VID_2109&PID_0811] Plugin = vli +GType = FuVliUsbhubDevice [DeviceInstanceId=USB\VID_2109&PID_0812] Plugin = vli +GType = FuVliUsbhubDevice [DeviceInstanceId=USB\VID_2109&PID_0813] Plugin = vli +GType = FuVliUsbhubDevice Flags = needs-unlock-legacy813 [DeviceInstanceId=USB\VID_2109&PID_8110] Plugin = vli +GType = FuVliUsbhubDevice [DeviceInstanceId=USB\VID_2109&PID_8113] Plugin = vli +GType = FuVliUsbhubDevice # 3507_Class [DeviceInstanceId=USB\VID_2109&PID_0210] Plugin = vli +GType = FuVliUsbhubDevice # 3545_Class [DeviceInstanceId=USB\VID_2109&PID_0211] Plugin = vli +GType = FuVliUsbhubDevice [DeviceInstanceId=USB\VID_2109&PID_2211] Plugin = vli +GType = FuVliUsbhubDevice [DeviceInstanceId=USB\VID_2109&PID_0212] Plugin = vli +GType = FuVliUsbhubDevice [DeviceInstanceId=USB\VID_2109&PID_2212] Plugin = vli +GType = FuVliUsbhubDevice # VL817 [DeviceInstanceId=USB\VID_2109&PID_0817] Plugin = vli +GType = FuVliUsbhubDevice Flags = usb3 [DeviceInstanceId=USB\VID_2109&PID_2817] Plugin = vli +GType = FuVliUsbhubDevice Flags = usb2 # VL820 [DeviceInstanceId=USB\VID_2109&PID_0820] Plugin = vli +GType = FuVliUsbhubDevice Flags = usb3,has-shared-spi-pd [DeviceInstanceId=USB\VID_2109&PID_2820] Plugin = vli +GType = FuVliUsbhubDevice Flags = usb2,has-shared-spi-pd # A25Lxxx