hw/input/hid.c | 2 ++ hw/usb/dev-hid.c | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-)
Simply set the respective bits and update the descriptor accordingly.
Signed-off-by: Noah Bergbauer <noah@statshelix.com>
---
hw/input/hid.c | 2 ++
hw/usb/dev-hid.c | 6 +++---
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/hw/input/hid.c b/hw/input/hid.c
index 8aab0521f4..e7ecebdf8f 100644
--- a/hw/input/hid.c
+++ b/hw/input/hid.c
@@ -114,6 +114,8 @@ static void hid_pointer_event(DeviceState *dev, QemuConsole *src,
[INPUT_BUTTON_LEFT] = 0x01,
[INPUT_BUTTON_RIGHT] = 0x02,
[INPUT_BUTTON_MIDDLE] = 0x04,
+ [INPUT_BUTTON_SIDE] = 0x08,
+ [INPUT_BUTTON_EXTRA] = 0x10,
};
HIDState *hs = (HIDState *)dev;
HIDPointerEvent *e;
diff --git a/hw/usb/dev-hid.c b/hw/usb/dev-hid.c
index 1c7ae97c30..bdd6d1ffaf 100644
--- a/hw/usb/dev-hid.c
+++ b/hw/usb/dev-hid.c
@@ -461,14 +461,14 @@ static const uint8_t qemu_mouse_hid_report_descriptor[] = {
0xa1, 0x00, /* Collection (Physical) */
0x05, 0x09, /* Usage Page (Button) */
0x19, 0x01, /* Usage Minimum (1) */
- 0x29, 0x03, /* Usage Maximum (3) */
+ 0x29, 0x05, /* Usage Maximum (5) */
0x15, 0x00, /* Logical Minimum (0) */
0x25, 0x01, /* Logical Maximum (1) */
- 0x95, 0x03, /* Report Count (3) */
+ 0x95, 0x05, /* Report Count (5) */
0x75, 0x01, /* Report Size (1) */
0x81, 0x02, /* Input (Data, Variable, Absolute) */
0x95, 0x01, /* Report Count (1) */
- 0x75, 0x05, /* Report Size (5) */
+ 0x75, 0x03, /* Report Size (3) */
0x81, 0x01, /* Input (Constant) */
0x05, 0x01, /* Usage Page (Generic Desktop) */
0x09, 0x30, /* Usage (X) */
--
2.34.0
ping https://patchew.org/QEMU/20211126140437.79745-1-noah@statshelix.com/
On Fri, Nov 26, 2021 at 3:04 PM Noah Bergbauer <noah@statshelix.com> wrote:
> Simply set the respective bits and update the descriptor accordingly.
>
> Signed-off-by: Noah Bergbauer <noah@statshelix.com>
> ---
> hw/input/hid.c | 2 ++
> hw/usb/dev-hid.c | 6 +++---
> 2 files changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/hw/input/hid.c b/hw/input/hid.c
> index 8aab0521f4..e7ecebdf8f 100644
> --- a/hw/input/hid.c
> +++ b/hw/input/hid.c
> @@ -114,6 +114,8 @@ static void hid_pointer_event(DeviceState *dev,
> QemuConsole *src,
> [INPUT_BUTTON_LEFT] = 0x01,
> [INPUT_BUTTON_RIGHT] = 0x02,
> [INPUT_BUTTON_MIDDLE] = 0x04,
> + [INPUT_BUTTON_SIDE] = 0x08,
> + [INPUT_BUTTON_EXTRA] = 0x10,
> };
> HIDState *hs = (HIDState *)dev;
> HIDPointerEvent *e;
> diff --git a/hw/usb/dev-hid.c b/hw/usb/dev-hid.c
> index 1c7ae97c30..bdd6d1ffaf 100644
> --- a/hw/usb/dev-hid.c
> +++ b/hw/usb/dev-hid.c
> @@ -461,14 +461,14 @@ static const uint8_t
> qemu_mouse_hid_report_descriptor[] = {
> 0xa1, 0x00, /* Collection (Physical) */
> 0x05, 0x09, /* Usage Page (Button) */
> 0x19, 0x01, /* Usage Minimum (1) */
> - 0x29, 0x03, /* Usage Maximum (3) */
> + 0x29, 0x05, /* Usage Maximum (5) */
> 0x15, 0x00, /* Logical Minimum (0) */
> 0x25, 0x01, /* Logical Maximum (1) */
> - 0x95, 0x03, /* Report Count (3) */
> + 0x95, 0x05, /* Report Count (5) */
> 0x75, 0x01, /* Report Size (1) */
> 0x81, 0x02, /* Input (Data, Variable, Absolute) */
> 0x95, 0x01, /* Report Count (1) */
> - 0x75, 0x05, /* Report Size (5) */
> + 0x75, 0x03, /* Report Size (3) */
> 0x81, 0x01, /* Input (Constant) */
> 0x05, 0x01, /* Usage Page (Generic Desktop) */
> 0x09, 0x30, /* Usage (X) */
> --
> 2.34.0
>
>
ping https://patchew.org/QEMU/20211126140437.79745-1-noah@statshelix.com/
This patch is really small because all of the necessary functionality is
already in place. It's just a matter of setting the respective flags
(instead of just ignoring the buttons) and allocating these bits in the HID
descriptor.
On Sat, Dec 4, 2021 at 12:20 PM Noah Bergbauer <noah@statshelix.com> wrote:
> ping https://patchew.org/QEMU/20211126140437.79745-1-noah@statshelix.com/
>
> On Fri, Nov 26, 2021 at 3:04 PM Noah Bergbauer <noah@statshelix.com>
> wrote:
>
>> Simply set the respective bits and update the descriptor accordingly.
>>
>> Signed-off-by: Noah Bergbauer <noah@statshelix.com>
>> ---
>> hw/input/hid.c | 2 ++
>> hw/usb/dev-hid.c | 6 +++---
>> 2 files changed, 5 insertions(+), 3 deletions(-)
>>
>> diff --git a/hw/input/hid.c b/hw/input/hid.c
>> index 8aab0521f4..e7ecebdf8f 100644
>> --- a/hw/input/hid.c
>> +++ b/hw/input/hid.c
>> @@ -114,6 +114,8 @@ static void hid_pointer_event(DeviceState *dev,
>> QemuConsole *src,
>> [INPUT_BUTTON_LEFT] = 0x01,
>> [INPUT_BUTTON_RIGHT] = 0x02,
>> [INPUT_BUTTON_MIDDLE] = 0x04,
>> + [INPUT_BUTTON_SIDE] = 0x08,
>> + [INPUT_BUTTON_EXTRA] = 0x10,
>> };
>> HIDState *hs = (HIDState *)dev;
>> HIDPointerEvent *e;
>> diff --git a/hw/usb/dev-hid.c b/hw/usb/dev-hid.c
>> index 1c7ae97c30..bdd6d1ffaf 100644
>> --- a/hw/usb/dev-hid.c
>> +++ b/hw/usb/dev-hid.c
>> @@ -461,14 +461,14 @@ static const uint8_t
>> qemu_mouse_hid_report_descriptor[] = {
>> 0xa1, 0x00, /* Collection (Physical) */
>> 0x05, 0x09, /* Usage Page (Button) */
>> 0x19, 0x01, /* Usage Minimum (1) */
>> - 0x29, 0x03, /* Usage Maximum (3) */
>> + 0x29, 0x05, /* Usage Maximum (5) */
>> 0x15, 0x00, /* Logical Minimum (0) */
>> 0x25, 0x01, /* Logical Maximum (1) */
>> - 0x95, 0x03, /* Report Count (3) */
>> + 0x95, 0x05, /* Report Count (5) */
>> 0x75, 0x01, /* Report Size (1) */
>> 0x81, 0x02, /* Input (Data, Variable, Absolute) */
>> 0x95, 0x01, /* Report Count (1) */
>> - 0x75, 0x05, /* Report Size (5) */
>> + 0x75, 0x03, /* Report Size (3) */
>> 0x81, 0x01, /* Input (Constant) */
>> 0x05, 0x01, /* Usage Page (Generic Desktop) */
>> 0x09, 0x30, /* Usage (X) */
>> --
>> 2.34.0
>>
>>
Gerd,
if you acknowledge the patch I can merge it via the trivial branch.
Thanks,
Laurent
Le 22/01/2022 à 10:57, Noah Bergbauer a écrit :
> ping https://patchew.org/QEMU/20211126140437.79745-1-noah@statshelix.com/
> <https://patchew.org/QEMU/20211126140437.79745-1-noah@statshelix.com/>
>
> This patch is really small because all of the necessary functionality is already in place. It's just
> a matter of setting the respective flags (instead of just ignoring the buttons) and allocating these
> bits in the HID descriptor.
>
> On Sat, Dec 4, 2021 at 12:20 PM Noah Bergbauer <noah@statshelix.com <mailto:noah@statshelix.com>> wrote:
>
> ping https://patchew.org/QEMU/20211126140437.79745-1-noah@statshelix.com/
> <https://patchew.org/QEMU/20211126140437.79745-1-noah@statshelix.com/>
>
> On Fri, Nov 26, 2021 at 3:04 PM Noah Bergbauer <noah@statshelix.com
> <mailto:noah@statshelix.com>> wrote:
>
> Simply set the respective bits and update the descriptor accordingly.
>
> Signed-off-by: Noah Bergbauer <noah@statshelix.com <mailto:noah@statshelix.com>>
> ---
> hw/input/hid.c | 2 ++
> hw/usb/dev-hid.c | 6 +++---
> 2 files changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/hw/input/hid.c b/hw/input/hid.c
> index 8aab0521f4..e7ecebdf8f 100644
> --- a/hw/input/hid.c
> +++ b/hw/input/hid.c
> @@ -114,6 +114,8 @@ static void hid_pointer_event(DeviceState *dev, QemuConsole *src,
> [INPUT_BUTTON_LEFT] = 0x01,
> [INPUT_BUTTON_RIGHT] = 0x02,
> [INPUT_BUTTON_MIDDLE] = 0x04,
> + [INPUT_BUTTON_SIDE] = 0x08,
> + [INPUT_BUTTON_EXTRA] = 0x10,
> };
> HIDState *hs = (HIDState *)dev;
> HIDPointerEvent *e;
> diff --git a/hw/usb/dev-hid.c b/hw/usb/dev-hid.c
> index 1c7ae97c30..bdd6d1ffaf 100644
> --- a/hw/usb/dev-hid.c
> +++ b/hw/usb/dev-hid.c
> @@ -461,14 +461,14 @@ static const uint8_t qemu_mouse_hid_report_descriptor[] = {
> 0xa1, 0x00, /* Collection (Physical) */
> 0x05, 0x09, /* Usage Page (Button) */
> 0x19, 0x01, /* Usage Minimum (1) */
> - 0x29, 0x03, /* Usage Maximum (3) */
> + 0x29, 0x05, /* Usage Maximum (5) */
> 0x15, 0x00, /* Logical Minimum (0) */
> 0x25, 0x01, /* Logical Maximum (1) */
> - 0x95, 0x03, /* Report Count (3) */
> + 0x95, 0x05, /* Report Count (5) */
> 0x75, 0x01, /* Report Size (1) */
> 0x81, 0x02, /* Input (Data, Variable, Absolute) */
> 0x95, 0x01, /* Report Count (1) */
> - 0x75, 0x05, /* Report Size (5) */
> + 0x75, 0x03, /* Report Size (3) */
> 0x81, 0x01, /* Input (Constant) */
> 0x05, 0x01, /* Usage Page (Generic Desktop) */
> 0x09, 0x30, /* Usage (X) */
> --
> 2.34.0
>
On Tue, Feb 22, 2022 at 10:32:49AM +0100, Laurent Vivier wrote: > Gerd, > > if you acknowledge the patch I can merge it via the trivial branch. Acked-by: Gerd Hoffmann <kraxel@redhat.com> thanks, Gerd
Le 26/11/2021 à 15:04, Noah Bergbauer a écrit :
> Simply set the respective bits and update the descriptor accordingly.
>
> Signed-off-by: Noah Bergbauer <noah@statshelix.com>
> ---
> hw/input/hid.c | 2 ++
> hw/usb/dev-hid.c | 6 +++---
> 2 files changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/hw/input/hid.c b/hw/input/hid.c
> index 8aab0521f4..e7ecebdf8f 100644
> --- a/hw/input/hid.c
> +++ b/hw/input/hid.c
> @@ -114,6 +114,8 @@ static void hid_pointer_event(DeviceState *dev, QemuConsole *src,
> [INPUT_BUTTON_LEFT] = 0x01,
> [INPUT_BUTTON_RIGHT] = 0x02,
> [INPUT_BUTTON_MIDDLE] = 0x04,
> + [INPUT_BUTTON_SIDE] = 0x08,
> + [INPUT_BUTTON_EXTRA] = 0x10,
> };
> HIDState *hs = (HIDState *)dev;
> HIDPointerEvent *e;
> diff --git a/hw/usb/dev-hid.c b/hw/usb/dev-hid.c
> index 1c7ae97c30..bdd6d1ffaf 100644
> --- a/hw/usb/dev-hid.c
> +++ b/hw/usb/dev-hid.c
> @@ -461,14 +461,14 @@ static const uint8_t qemu_mouse_hid_report_descriptor[] = {
> 0xa1, 0x00, /* Collection (Physical) */
> 0x05, 0x09, /* Usage Page (Button) */
> 0x19, 0x01, /* Usage Minimum (1) */
> - 0x29, 0x03, /* Usage Maximum (3) */
> + 0x29, 0x05, /* Usage Maximum (5) */
> 0x15, 0x00, /* Logical Minimum (0) */
> 0x25, 0x01, /* Logical Maximum (1) */
> - 0x95, 0x03, /* Report Count (3) */
> + 0x95, 0x05, /* Report Count (5) */
> 0x75, 0x01, /* Report Size (1) */
> 0x81, 0x02, /* Input (Data, Variable, Absolute) */
> 0x95, 0x01, /* Report Count (1) */
> - 0x75, 0x05, /* Report Size (5) */
> + 0x75, 0x03, /* Report Size (3) */
> 0x81, 0x01, /* Input (Constant) */
> 0x05, 0x01, /* Usage Page (Generic Desktop) */
> 0x09, 0x30, /* Usage (X) */
Applied to my trivial-patches branch.
Thanks,
Laurent
© 2016 - 2026 Red Hat, Inc.