diff --git a/plugins/elantp/fu-elantp-hid-device.c b/plugins/elantp/fu-elantp-hid-device.c index ef1dcfe36..4d9224352 100644 --- a/plugins/elantp/fu-elantp-hid-device.c +++ b/plugins/elantp/fu-elantp-hid-device.c @@ -53,6 +53,8 @@ fu_elantp_hid_device_to_string(FuDevice *device, guint idt, GString *str) static gboolean fu_elantp_hid_device_probe(FuDevice *device, GError **error) { + guint16 device_id = fu_udev_device_get_model(FU_UDEV_DEVICE(device)); + /* check is valid */ if (g_strcmp0(fu_udev_device_get_subsystem(FU_UDEV_DEVICE(device)), "hidraw") != 0) { g_set_error(error, @@ -64,8 +66,7 @@ fu_elantp_hid_device_probe(FuDevice *device, GError **error) } /* i2c-hid */ - if (fu_udev_device_get_model(FU_UDEV_DEVICE(device)) < 0x3000 || - fu_udev_device_get_model(FU_UDEV_DEVICE(device)) >= 0x4000) { + if (device_id != 0x400 && (device_id < 0x3000 || device_id >= 0x4000)) { g_set_error_literal(error, FWUPD_ERROR, FWUPD_ERROR_NOT_SUPPORTED,