File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -150,6 +150,7 @@ static usb_request_handler_fn vendor_request_handler[] = {
150150 usb_vendor_request_read_selftest ,
151151 usb_vendor_request_adc_read ,
152152 usb_vendor_request_test_rtc_osc ,
153+ usb_vendor_request_get_buffer_size ,
153154};
154155
155156static const uint32_t vendor_request_handler_count =
Original file line number Diff line number Diff line change @@ -476,6 +476,28 @@ usb_request_status_t usb_vendor_request_set_rx_overrun_limit(
476476 return USB_REQUEST_STATUS_OK ;
477477}
478478
479+ usb_request_status_t usb_vendor_request_get_buffer_size (
480+ usb_endpoint_t * const endpoint ,
481+ const usb_transfer_stage_t stage )
482+ {
483+ if (stage == USB_TRANSFER_STAGE_SETUP ) {
484+ uint32_t value = USB_SAMP_BUFFER_SIZE + USB_BULK_BUFFER_SIZE ;
485+ endpoint -> buffer [0 ] = value & 0xff ;
486+ endpoint -> buffer [1 ] = (value & 0xff00 ) >> 8 ;
487+ endpoint -> buffer [2 ] = (value & 0xff0000 ) >> 16 ;
488+ endpoint -> buffer [3 ] = (value & 0xff000000 ) >> 24 ;
489+ usb_transfer_schedule_block (
490+ endpoint -> in ,
491+ & endpoint -> buffer ,
492+ 4 ,
493+ NULL ,
494+ NULL );
495+ usb_transfer_schedule_ack (endpoint -> out );
496+ return USB_REQUEST_STATUS_OK ;
497+ }
498+ return USB_REQUEST_STATUS_OK ;
499+ }
500+
479501void transceiver_start_dma (void * src , void * dest , size_t size )
480502{
481503 uint32_t num_transfers = size >> 2 ;
Original file line number Diff line number Diff line change @@ -77,6 +77,9 @@ usb_request_status_t usb_vendor_request_set_tx_underrun_limit(
7777usb_request_status_t usb_vendor_request_set_rx_overrun_limit (
7878 usb_endpoint_t * const endpoint ,
7979 const usb_transfer_stage_t stage );
80+ usb_request_status_t usb_vendor_request_get_buffer_size (
81+ usb_endpoint_t * const endpoint ,
82+ const usb_transfer_stage_t stage );
8083
8184void request_transceiver_mode (transceiver_mode_t mode );
8285void transceiver_startup (transceiver_mode_t mode );
You can’t perform that action at this time.
0 commit comments