diff options
Diffstat (limited to 'hw/usb')
-rw-r--r-- | hw/usb/hid-logitech-hidpp20.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/hw/usb/hid-logitech-hidpp20.c b/hw/usb/hid-logitech-hidpp20.c index 4bebe0af44..001eea0479 100644 --- a/hw/usb/hid-logitech-hidpp20.c +++ b/hw/usb/hid-logitech-hidpp20.c @@ -238,6 +238,20 @@ static HIDPP20_FEATURE(feat_unknown) return -HIDPP20_ERR_CODE_UNSUPPORTED; } +static HIDPP20_FEATURE(feat_reprogcontrols) +{ + /* TODO: if controls really matter, add hd->info.controls{,_count} */ + switch (fn) { + case 0: /* ctrlIDCount = GetCount() */ + params[0] = 0; + return 1; + case 1: /* ctrlIDIndex+flags list = GetCtrlIDInfo(ctrlIDIndex) */ + return -HIDPP20_ERR_CODE_OUTOFRANGE; + default: + return -HIDPP20_ERR_CODE_INVALID_FUNCTION_ID; + } +} + /* root feature not included! */ static const HidppFeature features_m525[] = { { 0x0001, 0, feat_featureset }, @@ -246,6 +260,7 @@ static const HidppFeature features_m525[] = { { 0x1000, 0, feat_batterystatus }, { 0x1D4B, 0, NULL }, /* WirelessDeviceStatus events */ { 0x1DF3, HIDPP20_FEAT_TYPE_HIDDEN, feat_unknown }, + { 0x1B00, 0, feat_reprogcontrols }, { 0x1DF0, HIDPP20_FEAT_TYPE_HIDDEN, feat_unknown }, { 0x1F03, HIDPP20_FEAT_TYPE_HIDDEN, feat_unknown }, }; |