summaryrefslogtreecommitdiff
path: root/hw/usb/hid-logitech-hidpp20.c
diff options
context:
space:
mode:
Diffstat (limited to 'hw/usb/hid-logitech-hidpp20.c')
-rw-r--r--hw/usb/hid-logitech-hidpp20.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/hw/usb/hid-logitech-hidpp20.c b/hw/usb/hid-logitech-hidpp20.c
index 51e9596151..e3d451a1ef 100644
--- a/hw/usb/hid-logitech-hidpp20.c
+++ b/hw/usb/hid-logitech-hidpp20.c
@@ -271,8 +271,13 @@ static HIDPP20_FEATURE(feat_featureinfo)
static HIDPP20_FEATURE(feat_dfucontrol)
{
- return -HIDPP20_ERR_CODE_UNSUPPORTED; /* TODO: figure out */
switch (fn) {
+ case 0:
+ if (!memcmp(params, "DFU", 3)) {
+ hd->dfu.active = true;
+ return 0;
+ }
+ return -HIDPP20_ERR_CODE_INVALIDARGUMENT;
default:
return -HIDPP20_ERR_CODE_INVALID_FUNCTION_ID;
}