Skip to content

Commit a35aed3

Browse files
committed
pbio/drv/usb/usb_nxt.c: Minor cleanups
This changes pbdrv_usb_nxt_write_data to accept a void *, which removes a lot of ugly casting. It also adds a note that a serial number should be implemented in the future
1 parent 9f0156f commit a35aed3

File tree

1 file changed

+13
-12
lines changed

1 file changed

+13
-12
lines changed

lib/pbio/drv/usb/usb_nxt.c

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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,12 +479,12 @@ 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 = pbdrv_usb_nxt_device_descriptor.bLength;
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+
pbdrv_usb_nxt_write_data(0, &pbdrv_usb_nxt_full_config,
487488
MIN(pbdrv_usb_nxt_full_config.conf_desc.wTotalLength, packet->length));
488489

489490
/* TODO: Why? This is not specified in the USB specs. */
@@ -507,13 +508,13 @@ static void pbdrv_usb_handle_std_request(pbdrv_usb_nxt_setup_packet_t *packet) {
507508

508509
case USB_DESC_TYPE_DEVICE_QUALIFIER: /* Device qualifier descriptor. */
509510
size = pbdrv_usb_nxt_dev_qualifier_desc.bLength;
510-
pbdrv_usb_nxt_write_data(0, (const uint8_t *)&pbdrv_usb_nxt_dev_qualifier_desc,
511+
pbdrv_usb_nxt_write_data(0, &pbdrv_usb_nxt_dev_qualifier_desc,
511512
MIN(size, packet->length));
512513
break;
513514

514515
case USB_DESC_TYPE_BOS: /* BOS descriptor */
515516
size = pbdrv_usb_bos_desc_set.s.bos.wTotalLength;
516-
pbdrv_usb_nxt_write_data(0, (const uint8_t *)&pbdrv_usb_bos_desc_set, MIN(size, packet->length));
517+
pbdrv_usb_nxt_write_data(0, &pbdrv_usb_bos_desc_set, MIN(size, packet->length));
517518
break;
518519

519520
default: /* Unknown descriptor, tell the host by stalling. */
@@ -582,19 +583,19 @@ static void pbdrv_usb_nxt_handle_class_request(pbdrv_usb_nxt_setup_packet_t *pac
582583
switch (packet->value) {
583584
case 0x2A00: { // device name
584585
const char *name = pbdrv_bluetooth_get_hub_name();
585-
pbdrv_usb_nxt_write_data(0, (const uint8_t *)name,
586+
pbdrv_usb_nxt_write_data(0, name,
586587
MIN(strlen(name), packet->length));
587588
break;
588589
}
589590
case 0x2A26: { // firmware revision
590591
const char *fw = PBIO_VERSION_STR;
591-
pbdrv_usb_nxt_write_data(0, (const uint8_t *)fw,
592+
pbdrv_usb_nxt_write_data(0, fw,
592593
MIN(strlen(fw), packet->length));
593594
break;
594595
}
595596
case 0x2A28: { // software revision
596597
const char *sw = PBIO_PROTOCOL_VERSION_STR;
597-
pbdrv_usb_nxt_write_data(0, (const uint8_t *)sw,
598+
pbdrv_usb_nxt_write_data(0, sw,
598599
MIN(strlen(sw), packet->length));
599600
break;
600601
}
@@ -660,12 +661,12 @@ static uint32_t pbdrv_usb_nxt_manage_setup_packet(void) {
660661
switch (packet.request) {
661662
case PBDRV_USB_VENDOR_REQ_WEBUSB:
662663
// 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,
664+
pbdrv_usb_nxt_write_data(0, &pbdrv_usb_webusb_landing_page,
664665
MIN(pbdrv_usb_webusb_landing_page.s.bLength, packet.length));
665666
break;
666667
case PBDRV_USB_VENDOR_REQ_MS_20:
667668
// 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,
669+
pbdrv_usb_nxt_write_data(0, &pbdrv_usb_ms_20_desc_set,
669670
MIN(pbdrv_usb_ms_20_desc_set.s.desc_set_hdr.wTotalLength, packet.length));
670671
break;
671672
default:

0 commit comments

Comments
 (0)