Skip to content

Commit 74d0437

Browse files
authored
Merge pull request #1761 from martinling/remove-sample-rate-callback
Remove sample rate callback, move radio instance to `radio.c`.
2 parents cc69102 + 62229fd commit 74d0437

3 files changed

Lines changed: 15 additions & 22 deletions

File tree

firmware/common/radio.c

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525

2626
#include <libopencm3/cm3/nvic.h>
2727

28+
#include "clock_gen.h"
2829
#include "clock_io.h"
2930
#include "fixed_point.h"
3031
#include "max283x.h"
@@ -41,6 +42,9 @@
4142
#define MIN(x, y) ((x) < (y) ? (x) : (y))
4243
#define MAX(x, y) ((x) > (y) ? (x) : (y))
4344

45+
/* Driver instance. */
46+
radio_t radio;
47+
4448
void radio_init(radio_t* const radio)
4549
{
4650
for (uint8_t bank = 0; bank < RADIO_NUM_BANKS; bank++) {
@@ -231,22 +235,19 @@ static uint32_t radio_update_sample_rate(radio_t* const radio, uint64_t* bank)
231235
}
232236
new_n = (n != previous_n);
233237

234-
if (radio->sample_rate_cb) {
235-
afe_rate = rate << n;
236-
afe_rate = radio->sample_rate_cb(afe_rate, false);
237-
previous_rate = radio->config[RADIO_BANK_APPLIED][RADIO_SAMPLE_RATE];
238-
if ((previous_n == RADIO_UNSET) || previous_rate == RADIO_UNSET) {
239-
previous_afe_rate = RADIO_UNSET;
240-
} else {
241-
previous_afe_rate = previous_rate << previous_n;
242-
}
243-
new_afe_rate = (afe_rate != previous_afe_rate);
244-
if (new_afe_rate) {
245-
afe_rate = radio->sample_rate_cb(afe_rate, true);
246-
}
238+
afe_rate = rate << n;
239+
afe_rate = sample_rate_set(afe_rate, false);
240+
previous_rate = radio->config[RADIO_BANK_APPLIED][RADIO_SAMPLE_RATE];
241+
if ((previous_n == RADIO_UNSET) || previous_rate == RADIO_UNSET) {
242+
previous_afe_rate = RADIO_UNSET;
247243
} else {
248-
return 0;
244+
previous_afe_rate = previous_rate << previous_n;
245+
}
246+
new_afe_rate = (afe_rate != previous_afe_rate);
247+
if (new_afe_rate) {
248+
afe_rate = sample_rate_set(afe_rate, true);
249249
}
250+
250251
rate = afe_rate >> n;
251252
new_rate = (rate != previous_rate);
252253
if (new_rate) {

firmware/common/radio.h

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,6 @@ typedef struct {
225225
radio_config_mode_t config_mode;
226226
uint64_t config[RADIO_NUM_BANKS][RADIO_NUM_REGS];
227227
volatile uint32_t regs_dirty;
228-
sample_rate_fn sample_rate_cb;
229228
update_fn update_cb;
230229
} radio_t;
231230

@@ -263,8 +262,5 @@ void radio_switch_opmode(radio_t* const radio, const transceiver_mode_t mode);
263262

264263
/**
265264
* Driver instance.
266-
*
267-
* This needs to be configured and provided by the application
268-
* binary. e.g. firmware/hackrf_usb/hackrf_usb.c
269265
*/
270266
extern radio_t radio;

firmware/hackrf_usb/hackrf_usb.c

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -96,10 +96,6 @@ extern uint32_t __m0_end__;
9696
extern uint32_t __ram_m0_start__;
9797
extern uint32_t _etext_ram, _text_ram, _etext_rom;
9898

99-
radio_t radio = {
100-
.sample_rate_cb = sample_rate_set,
101-
};
102-
10399
static usb_request_handler_fn vendor_request_handler[] = {
104100
NULL,
105101
usb_vendor_request_set_transceiver_mode,

0 commit comments

Comments
 (0)