support wifi&bt coexist (v0.9.1)

1. refactor wifi modem sleep
2. refactor wifi and bt phy enable/diable coexistence
3. support wifi&bt coexist (v0.9.1)
3. add coex pause resume
4. fix bt library interrupt reaction slowly
5. make a2dp more smooth when coex
6. add coexist preference option
7. Make CI do not check libcoexist.a printf/ets_printf
8. disable Wifi RX AMPDU when software coexistence enable && update wifi lib
9. bluetooth call modem sleep api
This commit is contained in:
island
2017-11-10 10:54:50 +08:00
committed by Tian Hao
parent 8eaae96658
commit 9b7454de0c
12 changed files with 460 additions and 69 deletions
+56 -10
View File
@@ -18,8 +18,16 @@
extern "C" {
#endif
typedef enum {
COEX_PREFER_WIFI = 0,
COEX_PREFER_BT,
COEX_PREFER_BALANCE,
COEX_PREFER_NUM,
} coex_prefer_t;
/**
* @brief Init software coexist
* extern function for internal use.
*
* @return Init ok or failed.
*/
@@ -27,24 +35,62 @@ esp_err_t coex_init(void);
/**
* @brief De-init software coexist
* extern function for internal use.
*/
void coex_deinit(void);
/**
* @brief Get software coexist enable or not
*
* @return software coexist enable status.
* @brief Pause software coexist
* extern function for internal use.
*/
bool coexist_get_enable(void);
void coex_pause(void);
/**
* @brief Set software coexist enable or not
*
* @param enable software coexist or disable it
*
* @return Void.
* @brief Resume software coexist
* extern function for internal use.
*/
void coexist_set_enable(bool enable);
void coex_resume(void);
/**
* @brief Get software coexist version string
* extern function for internal use.
* @return : version string
*/
const char *coex_version_get(void);
/**
* @brief Coexist performance preference set from libbt.a
* extern function for internal use.
*
* @param prefer : the prefer enumeration value
* @return : ESP_OK - success, other - failed
*/
esp_err_t coex_preference_set(coex_prefer_t prefer);
/**
* @brief Get software coexist version string
*
* @return : version string
*/
static inline const char *esp_coex_version_get(void)
{
return coex_version_get();
}
/**
* @brief Set coexist preference of performance
* For example, if prefer to bluetooth, then it will make A2DP(play audio via classic bt)
* more smooth while wifi is runnning something.
* If prefer to wifi, it will do similar things as prefer to bluetooth.
* Default, it prefer to balance.
*
* @param prefer : the prefer enumeration value
* @return : ESP_OK - success, other - failed
*/
static inline esp_err_t esp_coex_preference_set(coex_prefer_t prefer)
{
return coex_preference_set(prefer);
}
#ifdef __cplusplus
}