ping2 is there anything I can do to help these patches get merged?
Jan On Mon, Mar 17, 2014 at 1:53 PM, Ján Veselý <jano.ves...@gmail.com> wrote: > ping > > any problem with v2? > > regards, > Jan > > On Sun, Feb 23, 2014 at 2:37 AM, Jan Vesely <jano.ves...@gmail.com> wrote: >> v2: add usb_mouse_properties >> use macros for bmAttributes >> >> Signed-off-by: Jan Vesely <jano.ves...@gmail.com> >> --- >> hw/usb/dev-hid.c | 73 >> +++++++++++++++++++++++++++++++++++++++++++++++++------- >> 1 file changed, 65 insertions(+), 8 deletions(-) >> >> diff --git a/hw/usb/dev-hid.c b/hw/usb/dev-hid.c >> index f36e617..70c2c5f 100644 >> --- a/hw/usb/dev-hid.c >> +++ b/hw/usb/dev-hid.c >> @@ -55,9 +55,10 @@ enum { >> STR_PRODUCT_TABLET, >> STR_PRODUCT_KEYBOARD, >> STR_SERIALNUMBER, >> - STR_CONFIG_MOUSE, >> STR_CONFIG_TABLET, >> STR_CONFIG_KEYBOARD, >> + STR_CONFIG_MOUSE_FULL, >> + STR_CONFIG_MOUSE_HIGH, >> }; >> >> static const USBDescStrings desc_strings = { >> @@ -66,12 +67,13 @@ static const USBDescStrings desc_strings = { >> [STR_PRODUCT_TABLET] = "QEMU USB Tablet", >> [STR_PRODUCT_KEYBOARD] = "QEMU USB Keyboard", >> [STR_SERIALNUMBER] = "42", /* == remote wakeup works */ >> - [STR_CONFIG_MOUSE] = "HID Mouse", >> [STR_CONFIG_TABLET] = "HID Tablet", >> [STR_CONFIG_KEYBOARD] = "HID Keyboard", >> + [STR_CONFIG_MOUSE_FULL]= "HID Mouse Full speed configuration (usb 1.1)", >> + [STR_CONFIG_MOUSE_HIGH]= "HID Mouse High speed configuration (usb 2.0)", >> }; >> >> -static const USBDescIface desc_iface_mouse = { >> +static const USBDescIface desc_iface_mouse_full = { >> .bInterfaceNumber = 0, >> .bNumEndpoints = 1, >> .bInterfaceClass = USB_CLASS_HID, >> @@ -102,6 +104,37 @@ static const USBDescIface desc_iface_mouse = { >> }, >> }; >> >> +static const USBDescIface desc_iface_mouse_high = { >> + .bInterfaceNumber = 0, >> + .bNumEndpoints = 1, >> + .bInterfaceClass = USB_CLASS_HID, >> + .bInterfaceSubClass = 0x01, /* boot */ >> + .bInterfaceProtocol = 0x02, >> + .ndesc = 1, >> + .descs = (USBDescOther[]) { >> + { >> + /* HID descriptor */ >> + .data = (uint8_t[]) { >> + 0x09, /* u8 bLength */ >> + USB_DT_HID, /* u8 bDescriptorType */ >> + 0x01, 0x00, /* u16 HID_class */ >> + 0x00, /* u8 country_code */ >> + 0x01, /* u8 num_descriptors */ >> + USB_DT_REPORT, /* u8 type: Report */ >> + 52, 0, /* u16 len */ >> + }, >> + }, >> + }, >> + .eps = (USBDescEndpoint[]) { >> + { >> + .bEndpointAddress = USB_DIR_IN | 0x01, >> + .bmAttributes = USB_ENDPOINT_XFER_INT, >> + .wMaxPacketSize = 4, >> + .bInterval = 0x06, >> + }, >> + }, >> +}; >> + >> static const USBDescIface desc_iface_tablet = { >> .bInterfaceNumber = 0, >> .bNumEndpoints = 1, >> @@ -193,19 +226,36 @@ static const USBDescIface desc_iface_keyboard = { >> }, >> }; >> >> -static const USBDescDevice desc_device_mouse = { >> - .bcdUSB = 0x0100, >> +static const USBDescDevice desc_device_mouse_full = { >> + .bcdUSB = 0x0200, >> + .bMaxPacketSize0 = 8, >> + .bNumConfigurations = 1, >> + .confs = (USBDescConfig[]) { >> + { >> + .bNumInterfaces = 1, >> + .bConfigurationValue = 1, >> + .iConfiguration = STR_CONFIG_MOUSE_FULL, >> + .bmAttributes = USB_CFG_ATT_ONE | USB_CFG_ATT_WAKEUP, >> + .bMaxPower = 50, >> + .nif = 1, >> + .ifs = &desc_iface_mouse_full, >> + }, >> + }, >> +}; >> + >> +static const USBDescDevice desc_device_mouse_high = { >> + .bcdUSB = 0x0200, >> .bMaxPacketSize0 = 8, >> .bNumConfigurations = 1, >> .confs = (USBDescConfig[]) { >> { >> .bNumInterfaces = 1, >> .bConfigurationValue = 1, >> - .iConfiguration = STR_CONFIG_MOUSE, >> + .iConfiguration = STR_CONFIG_MOUSE_HIGH, >> .bmAttributes = USB_CFG_ATT_ONE | USB_CFG_ATT_WAKEUP, >> .bMaxPower = 50, >> .nif = 1, >> - .ifs = &desc_iface_mouse, >> + .ifs = &desc_iface_mouse_high, >> }, >> }, >> }; >> @@ -274,7 +324,8 @@ static const USBDesc desc_mouse = { >> .iProduct = STR_PRODUCT_MOUSE, >> .iSerialNumber = STR_SERIALNUMBER, >> }, >> - .full = &desc_device_mouse, >> + .full = &desc_device_mouse_full, >> + .high = &desc_device_mouse_high, >> .str = desc_strings, >> .msos = &desc_msos_suspend, >> }; >> @@ -676,6 +727,11 @@ static const TypeInfo usb_tablet_info = { >> .class_init = usb_tablet_class_initfn, >> }; >> >> +static Property usb_mouse_properties[] = { >> + DEFINE_PROP_UINT32("usb_version", USBHIDState, usb_version, 2), >> + DEFINE_PROP_END_OF_LIST(), >> +}; >> + >> static void usb_mouse_class_initfn(ObjectClass *klass, void *data) >> { >> DeviceClass *dc = DEVICE_CLASS(klass); >> @@ -686,6 +742,7 @@ static void usb_mouse_class_initfn(ObjectClass *klass, >> void *data) >> uc->product_desc = "QEMU USB Mouse"; >> uc->usb_desc = &desc_mouse; >> dc->vmsd = &vmstate_usb_ptr; >> + dc->props = usb_mouse_properties; >> set_bit(DEVICE_CATEGORY_INPUT, dc->categories); >> } >> >> -- >> 1.9.0 >>