clear frequency ranges before adding new ones

This commit is contained in:
Michael Ossmann
2021-12-12 13:25:44 -07:00
parent 66de65e6b4
commit d0c0270b9c
3 changed files with 7 additions and 0 deletions

View File

@ -294,6 +294,11 @@ uint8_t operacake_add_range(uint16_t freq_min, uint16_t freq_max, uint8_t port)
return 0; return 0;
} }
void operacake_clear_ranges(void)
{
range_idx = 0;
}
#define FREQ_ONE_MHZ (1000000ull) #define FREQ_ONE_MHZ (1000000ull)
uint8_t operacake_set_range(uint32_t freq_mhz) { uint8_t operacake_set_range(uint32_t freq_mhz) {

View File

@ -50,6 +50,7 @@ uint8_t operacake_get_mode(uint8_t address);
uint8_t operacake_set_ports(uint8_t address, uint8_t PA, uint8_t PB); uint8_t operacake_set_ports(uint8_t address, uint8_t PA, uint8_t PB);
uint8_t operacake_add_range(uint16_t freq_min, uint16_t freq_max, uint8_t port); uint8_t operacake_add_range(uint16_t freq_min, uint16_t freq_max, uint8_t port);
uint8_t operacake_set_range(uint32_t freq_mhz); uint8_t operacake_set_range(uint32_t freq_mhz);
void operacake_clear_ranges(void);
uint16_t gpio_test(uint8_t address); uint16_t gpio_test(uint8_t address);
#ifdef __cplusplus #ifdef __cplusplus

View File

@ -65,6 +65,7 @@ usb_request_status_t usb_vendor_request_operacake_set_ranges(
if((num_ranges == 0) || (num_ranges > MAX_OPERACAKE_RANGES)) { if((num_ranges == 0) || (num_ranges > MAX_OPERACAKE_RANGES)) {
return USB_REQUEST_STATUS_STALL; return USB_REQUEST_STATUS_STALL;
} }
operacake_clear_ranges();
usb_transfer_schedule_block(endpoint->out, &data, usb_transfer_schedule_block(endpoint->out, &data,
endpoint->setup.length, NULL, NULL); endpoint->setup.length, NULL, NULL);
} else if (stage == USB_TRANSFER_STAGE_DATA) { } else if (stage == USB_TRANSFER_STAGE_DATA) {