summaryrefslogtreecommitdiff
path: root/firmware/usbstack/usb_hid.c
diff options
context:
space:
mode:
authorRafaël Carré <rafael.carre@gmail.com>2011-12-29 21:49:29 +0000
committerRafaël Carré <rafael.carre@gmail.com>2011-12-29 21:49:29 +0000
commit6a6269ffd8dfaf921588bae47cd55716abb78abb (patch)
treebc0f6e2cbe4cb038720c2891b5067451be4d3ffe /firmware/usbstack/usb_hid.c
parentc17b0af89edb9818a195d72d80a41f457cc54a39 (diff)
downloadrockbox-6a6269ffd8dfaf921588bae47cd55716abb78abb.tar.gz
rockbox-6a6269ffd8dfaf921588bae47cd55716abb78abb.zip
usb_hid: fix r31457
descriptor_hid_get() updates its parameter so we need to take its address the update is hidden inside PACK_DATA macro Fix HID on the Fuze+ Reported by jlbiasini git-svn-id: svn://svn.rockbox.org/rockbox/trunk@31466 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware/usbstack/usb_hid.c')
-rw-r--r--firmware/usbstack/usb_hid.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/firmware/usbstack/usb_hid.c b/firmware/usbstack/usb_hid.c
index 46baff8222..b89e46f291 100644
--- a/firmware/usbstack/usb_hid.c
+++ b/firmware/usbstack/usb_hid.c
@@ -554,14 +554,14 @@ static size_t descriptor_report_get(unsigned char *dest)
554 return (size_t)(report - dest); 554 return (size_t)(report - dest);
555} 555}
556 556
557static void descriptor_hid_get(unsigned char *dest) 557static void descriptor_hid_get(unsigned char **dest)
558{ 558{
559 hid_descriptor.wDescriptorLength0= descriptor_report_get(report_descriptor); 559 hid_descriptor.wDescriptorLength0= descriptor_report_get(report_descriptor);
560 560
561 logf("hid: desc len %u", hid_descriptor.wDescriptorLength0); 561 logf("hid: desc len %u", hid_descriptor.wDescriptorLength0);
562 buf_dump(report_descriptor, hid_descriptor.wDescriptorLength0, "desc"); 562 buf_dump(report_descriptor, hid_descriptor.wDescriptorLength0, "desc");
563 563
564 PACK_DATA(dest, hid_descriptor); 564 PACK_DATA(*dest, hid_descriptor);
565} 565}
566 566
567int usb_hid_get_config_descriptor(unsigned char *dest, int max_packet_size) 567int usb_hid_get_config_descriptor(unsigned char *dest, int max_packet_size)
@@ -577,7 +577,7 @@ int usb_hid_get_config_descriptor(unsigned char *dest, int max_packet_size)
577 PACK_DATA(dest, interface_descriptor); 577 PACK_DATA(dest, interface_descriptor);
578 578
579 /* HID descriptor */ 579 /* HID descriptor */
580 descriptor_hid_get(dest); 580 descriptor_hid_get(&dest);
581 581
582 /* Endpoint descriptor */ 582 /* Endpoint descriptor */
583 endpoint_descriptor.wMaxPacketSize = 8; 583 endpoint_descriptor.wMaxPacketSize = 8;
@@ -703,7 +703,7 @@ bool usb_hid_control_request(struct usb_ctrlrequest *req, unsigned char *dest)
703 switch (type) 703 switch (type)
704 { 704 {
705 case USB_DT_HID: 705 case USB_DT_HID:
706 descriptor_hid_get(dest); 706 descriptor_hid_get(&dest);
707 break; 707 break;
708 case USB_DT_REPORT: 708 case USB_DT_REPORT:
709 len = descriptor_report_get(report_descriptor); 709 len = descriptor_report_get(report_descriptor);