Hide the MAX2837 intermediate frequency behind a function. It also prevents leakage of the freq_*_cache variables.
This commit is contained in:
@ -96,8 +96,8 @@ void update_switches(void)
|
|||||||
#define MIN_HP_FREQ_MHZ (2700)
|
#define MIN_HP_FREQ_MHZ (2700)
|
||||||
#define MAX_HP_FREQ_MHZ (6800)
|
#define MAX_HP_FREQ_MHZ (6800)
|
||||||
|
|
||||||
static uint32_t MAX2837_FREQ_NOMINAL_HZ=2600000000;
|
static uint32_t max2837_freq_nominal_hz=2600000000;
|
||||||
#define MAX2837_FREQ_NOMINAL_MHZ (MAX2837_FREQ_NOMINAL_HZ / FREQ_ONE_MHZ)
|
#define MAX2837_FREQ_NOMINAL_MHZ (max2837_freq_nominal_hz / FREQ_ONE_MHZ)
|
||||||
|
|
||||||
uint32_t freq_mhz_cache=100, freq_hz_cache=0;
|
uint32_t freq_mhz_cache=100, freq_hz_cache=0;
|
||||||
/*
|
/*
|
||||||
@ -132,7 +132,7 @@ bool set_freq(uint32_t freq_mhz, uint32_t freq_hz)
|
|||||||
{
|
{
|
||||||
tmp_hz = (real_RFFC5071_freq_hz - RFFC5071_freq_mhz * FREQ_ONE_MHZ);
|
tmp_hz = (real_RFFC5071_freq_hz - RFFC5071_freq_mhz * FREQ_ONE_MHZ);
|
||||||
}
|
}
|
||||||
MAX2837_freq_hz = MAX2837_FREQ_NOMINAL_HZ + tmp_hz + freq_hz;
|
MAX2837_freq_hz = max2837_freq_nominal_hz + tmp_hz + freq_hz;
|
||||||
max2837_set_frequency(MAX2837_freq_hz);
|
max2837_set_frequency(MAX2837_freq_hz);
|
||||||
update_switches();
|
update_switches();
|
||||||
}else if( (freq_mhz >= MIN_BYPASS_FREQ_MHZ) && (freq_mhz < MAX_BYPASS_FREQ_MHZ) )
|
}else if( (freq_mhz >= MIN_BYPASS_FREQ_MHZ) && (freq_mhz < MAX_BYPASS_FREQ_MHZ) )
|
||||||
@ -158,7 +158,7 @@ bool set_freq(uint32_t freq_mhz, uint32_t freq_hz)
|
|||||||
{
|
{
|
||||||
tmp_hz = -(real_RFFC5071_freq_hz - RFFC5071_freq_mhz * FREQ_ONE_MHZ);
|
tmp_hz = -(real_RFFC5071_freq_hz - RFFC5071_freq_mhz * FREQ_ONE_MHZ);
|
||||||
}
|
}
|
||||||
MAX2837_freq_hz = MAX2837_FREQ_NOMINAL_HZ + tmp_hz + freq_hz;
|
MAX2837_freq_hz = max2837_freq_nominal_hz + tmp_hz + freq_hz;
|
||||||
max2837_set_frequency(MAX2837_freq_hz);
|
max2837_set_frequency(MAX2837_freq_hz);
|
||||||
update_switches();
|
update_switches();
|
||||||
}else
|
}else
|
||||||
@ -181,6 +181,15 @@ bool set_freq(uint32_t freq_mhz, uint32_t freq_hz)
|
|||||||
return success;
|
return success;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool set_freq_if(const uint32_t freq_if_hz) {
|
||||||
|
bool success = false;
|
||||||
|
if( (freq_if_hz >= MIN_BYPASS_FREQ_MHZ) && (freq_if_hz <= MAX_BYPASS_FREQ_MHZ) ) {
|
||||||
|
max2837_freq_nominal_hz = freq_if_hz;
|
||||||
|
success = set_freq(freq_mhz_cache, freq_hz_cache);
|
||||||
|
}
|
||||||
|
return success;
|
||||||
|
}
|
||||||
|
|
||||||
static void usb_init_buffers_bulk() {
|
static void usb_init_buffers_bulk() {
|
||||||
usb_td_bulk[0].next_dtd_pointer = USB_TD_NEXT_DTD_POINTER_TERMINATE;
|
usb_td_bulk[0].next_dtd_pointer = USB_TD_NEXT_DTD_POINTER_TERMINATE;
|
||||||
usb_td_bulk[0].total_bytes
|
usb_td_bulk[0].total_bytes
|
||||||
@ -827,9 +836,11 @@ usb_request_status_t usb_vendor_request_set_if_freq(
|
|||||||
usb_endpoint_t* const endpoint, const usb_transfer_stage_t stage
|
usb_endpoint_t* const endpoint, const usb_transfer_stage_t stage
|
||||||
) {
|
) {
|
||||||
if( stage == USB_TRANSFER_STAGE_SETUP ) {
|
if( stage == USB_TRANSFER_STAGE_SETUP ) {
|
||||||
MAX2837_FREQ_NOMINAL_HZ = (uint32_t)endpoint->setup.index * 1000 * 1000;
|
if( set_freq_if((uint32_t)endpoint->setup.index * 1000 * 1000) ) {
|
||||||
set_freq(freq_mhz_cache, freq_hz_cache);
|
usb_endpoint_schedule_ack(endpoint->in);
|
||||||
usb_endpoint_schedule_ack(endpoint->in);
|
} else {
|
||||||
|
return USB_REQUEST_STATUS_STALL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return USB_REQUEST_STATUS_OK;
|
return USB_REQUEST_STATUS_OK;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user