1
0
mirror of https://github.com/esp8266/Arduino.git synced 2025-06-10 14:42:08 +03:00

Don't set RF mode on boot unless it was overridden

The change in 297bb17 enabled RF after deep sleep, even if deep sleep was done with RF_DISABLED option (thanks @vlast3k for pointing this out).
Now we check the value returned by __get_rf_mode, and only call system_phy_set_rfoption if RF_MODE override was provided by user.
This commit is contained in:
Ivan Grokhotkov 2016-03-30 08:47:50 +03:00
parent dd061c8b47
commit 05c078ba5b

View File

@ -251,7 +251,8 @@ static const uint8_t ICACHE_FLASH_ATTR phy_init_data[128] =
#define __run_user_rf_pre_init _Z22__run_user_rf_pre_initv
extern int __real_register_chipv6_phy(uint8_t* init_data);
extern int __wrap_register_chipv6_phy(uint8_t* init_data) {
extern int __wrap_register_chipv6_phy(uint8_t* init_data)
{
if (init_data != NULL) {
memcpy(init_data, phy_init_data, sizeof(phy_init_data));
init_data[107] = __get_adc_mode();
@ -262,7 +263,7 @@ extern int __wrap_register_chipv6_phy(uint8_t* init_data) {
extern int __get_rf_mode(void) __attribute__((weak));
extern int __get_rf_mode(void)
{
return 0; // default mode
return -1; // mode not set
}
extern int __get_adc_mode(void) __attribute__((weak));
@ -277,7 +278,8 @@ extern void __run_user_rf_pre_init(void)
return; // default do noting
}
void user_rf_pre_init() {
void user_rf_pre_init()
{
// *((volatile uint32_t*) 0x60000710) = 0;
volatile uint32_t* rtc_reg = (volatile uint32_t*) 0x60001000;
@ -287,6 +289,9 @@ void user_rf_pre_init() {
}
system_set_os_print(0);
system_phy_set_rfoption(__get_rf_mode());
int rf_mode = __get_rf_mode();
if (rf_mode >= 0) {
system_phy_set_rfoption(rf_mode);
}
__run_user_rf_pre_init();
}