diff --git a/firmware/common/sgpio.c b/firmware/common/sgpio.c index 8fd4a8ab..5c5728fe 100644 --- a/firmware/common/sgpio.c +++ b/firmware/common/sgpio.c @@ -25,9 +25,10 @@ #include #include -#include +#include "hackrf_core.h" +#include "platform_detect.h" -#include +#include "sgpio.h" #ifdef RAD1O static void update_q_invert(sgpio_config_t* const config); @@ -329,10 +330,15 @@ void sgpio_cpld_stream_rx_set_q_invert( } #else -void sgpio_cpld_stream_rx_set_q_invert( - sgpio_config_t* const config, - const uint_fast8_t invert) +void sgpio_cpld_stream_rx_set_q_invert(sgpio_config_t* const config, uint_fast8_t invert) { + /* + * The RX IQ channels on HackRF One r9 are not inverted as they are + * on OG or Jawbreaker, so the opposite setting is required. + */ + if (detected_platform() == BOARD_ID_HACKRF1_R9) { + invert = (invert > 0) ? 0 : 1; + } gpio_write(config->gpio_rx_q_invert, invert); } #endif diff --git a/firmware/common/sgpio.h b/firmware/common/sgpio.h index a1e10b59..7779972d 100644 --- a/firmware/common/sgpio.h +++ b/firmware/common/sgpio.h @@ -49,8 +49,6 @@ void sgpio_cpld_stream_enable(sgpio_config_t* const config); void sgpio_cpld_stream_disable(sgpio_config_t* const config); bool sgpio_cpld_stream_is_enabled(sgpio_config_t* const config); -void sgpio_cpld_stream_rx_set_q_invert( - sgpio_config_t* const config, - const uint_fast8_t invert); +void sgpio_cpld_stream_rx_set_q_invert(sgpio_config_t* const config, uint_fast8_t invert); #endif //__SGPIO_H__