@@ -112,7 +112,7 @@ static const pbdrv_usb_dev_desc_t pbdrv_usb_nxt_device_descriptor = {
112112 .bcdDevice = 0x0200 , /* Product revision: 2.0.0. */
113113 .iManufacturer = 1 ,
114114 .iProduct = 2 ,
115- .iSerialNumber = 0 ,
115+ .iSerialNumber = 0 , // TODO: implement a serial number
116116 .bNumConfigurations = 1 ,
117117};
118118
@@ -303,7 +303,8 @@ static void pbdrv_usb_nxt_csr_set_flag(uint8_t endpoint, uint32_t flags) {
303303 * single USB packet, the data is split and scheduled to be sent in
304304 * several packets.
305305 */
306- static void pbdrv_usb_nxt_write_data (int endpoint , const uint8_t * ptr , uint32_t length ) {
306+ static void pbdrv_usb_nxt_write_data (int endpoint , const void * ptr_ , uint32_t length ) {
307+ const uint8_t * ptr = ptr_ ;
307308 uint32_t packet_size ;
308309 int tx ;
309310
@@ -438,7 +439,7 @@ static void pbdrv_usb_handle_std_request(pbdrv_usb_nxt_setup_packet_t *packet) {
438439 response = 0 ;
439440 }
440441
441- pbdrv_usb_nxt_write_data (0 , ( uint8_t * ) & response , 2 );
442+ pbdrv_usb_nxt_write_data (0 , & response , 2 );
442443 }
443444 break ;
444445
@@ -478,13 +479,14 @@ static void pbdrv_usb_handle_std_request(pbdrv_usb_nxt_setup_packet_t *packet) {
478479 switch ((packet -> value & USB_WVALUE_TYPE ) >> 8 ) {
479480 case USB_DESC_TYPE_DEVICE : /* Device descriptor */
480481 size = sizeof (pbdrv_usb_nxt_device_descriptor );
481- pbdrv_usb_nxt_write_data (0 , ( const uint8_t * ) & pbdrv_usb_nxt_device_descriptor ,
482+ pbdrv_usb_nxt_write_data (0 , & pbdrv_usb_nxt_device_descriptor ,
482483 MIN (size , packet -> length ));
483484 break ;
484485
485486 case USB_DESC_TYPE_CONFIG : /* Configuration descriptor */
486- pbdrv_usb_nxt_write_data (0 , (const uint8_t * )& pbdrv_usb_nxt_full_config ,
487- MIN (sizeof (pbdrv_usb_nxt_full_config ), packet -> length ));
487+ size = sizeof (pbdrv_usb_nxt_full_config );
488+ pbdrv_usb_nxt_write_data (0 , & pbdrv_usb_nxt_full_config ,
489+ MIN (size , packet -> length ));
488490
489491 /* TODO: Why? This is not specified in the USB specs. */
490492 if (pbdrv_usb_nxt_full_config .conf_desc .wTotalLength < packet -> length ) {
@@ -507,13 +509,13 @@ static void pbdrv_usb_handle_std_request(pbdrv_usb_nxt_setup_packet_t *packet) {
507509
508510 case USB_DESC_TYPE_DEVICE_QUALIFIER : /* Device qualifier descriptor. */
509511 size = pbdrv_usb_nxt_dev_qualifier_desc .bLength ;
510- pbdrv_usb_nxt_write_data (0 , ( const uint8_t * ) & pbdrv_usb_nxt_dev_qualifier_desc ,
512+ pbdrv_usb_nxt_write_data (0 , & pbdrv_usb_nxt_dev_qualifier_desc ,
511513 MIN (size , packet -> length ));
512514 break ;
513515
514516 case USB_DESC_TYPE_BOS : /* BOS descriptor */
515517 size = sizeof (pbdrv_usb_bos_desc_set .s );
516- pbdrv_usb_nxt_write_data (0 , ( const uint8_t * ) & pbdrv_usb_bos_desc_set , MIN (size , packet -> length ));
518+ pbdrv_usb_nxt_write_data (0 , & pbdrv_usb_bos_desc_set , MIN (size , packet -> length ));
517519 break ;
518520
519521 default : /* Unknown descriptor, tell the host by stalling. */
@@ -582,19 +584,19 @@ static void pbdrv_usb_nxt_handle_class_request(pbdrv_usb_nxt_setup_packet_t *pac
582584 switch (packet -> value ) {
583585 case 0x2A00 : { // device name
584586 const char * name = pbdrv_bluetooth_get_hub_name ();
585- pbdrv_usb_nxt_write_data (0 , ( const uint8_t * ) name ,
587+ pbdrv_usb_nxt_write_data (0 , name ,
586588 MIN (strlen (name ), packet -> length ));
587589 break ;
588590 }
589591 case 0x2A26 : { // firmware revision
590592 const char * fw = PBIO_VERSION_STR ;
591- pbdrv_usb_nxt_write_data (0 , ( const uint8_t * ) fw ,
593+ pbdrv_usb_nxt_write_data (0 , fw ,
592594 MIN (strlen (fw ), packet -> length ));
593595 break ;
594596 }
595597 case 0x2A28 : { // software revision
596598 const char * sw = PBIO_PROTOCOL_VERSION_STR ;
597- pbdrv_usb_nxt_write_data (0 , ( const uint8_t * ) sw ,
599+ pbdrv_usb_nxt_write_data (0 , sw ,
598600 MIN (strlen (sw ), packet -> length ));
599601 break ;
600602 }
@@ -660,12 +662,12 @@ static uint32_t pbdrv_usb_nxt_manage_setup_packet(void) {
660662 switch (packet .request ) {
661663 case PBDRV_USB_VENDOR_REQ_WEBUSB :
662664 // Since there is only one WebUSB descriptor, we ignore the index.
663- pbdrv_usb_nxt_write_data (0 , ( const uint8_t * ) & pbdrv_usb_webusb_landing_page ,
665+ pbdrv_usb_nxt_write_data (0 , & pbdrv_usb_webusb_landing_page ,
664666 MIN (pbdrv_usb_webusb_landing_page .s .bLength , packet .length ));
665667 break ;
666668 case PBDRV_USB_VENDOR_REQ_MS_20 :
667669 // Since there is only one MS descriptor, we ignore the index.
668- pbdrv_usb_nxt_write_data (0 , ( const uint8_t * ) & pbdrv_usb_ms_20_desc_set ,
670+ pbdrv_usb_nxt_write_data (0 , & pbdrv_usb_ms_20_desc_set ,
669671 MIN (sizeof (pbdrv_usb_ms_20_desc_set .s ), packet .length ));
670672 break ;
671673 default :
0 commit comments