liu zhifu [Tue, 16 Apr 2019 13:26:20 +0000 (21:26 +0800)]
esp32: fix some WiFi and coexist bugs
Fix following WiFi and coexist bugs:
1. Fix BT disconnecting due to too many reset BB
2. Fix the bug that no TBTT is generated after rx wrong beacon when WiFi/BT coexist
3. Fix a DelBA bug
4. Add out of memory check
5. Fix the bug that STA incorrectly receives packets when scanning in connected status
6. PHY4008: Disable BT TX in force wifi mode, and enable BT TX in un-force wifi mode
fix wifi scan and connect bugs:
1. fix the bug block scan tiemout before scan finish
2. make menuconfig can set the WiFi mgmt short buffer num
3. modify wifi reason code
4. fix the bug PMK recal too long
1.Fix memory leak when set txpower
2.Fix some bugs
Disconnect with apple device
hci_refresh_enc_key_cmd will be ignore
hci_refresh_enc_key_cmd will crash
1. Pass the correct conn_id to protocomm_req_handle
In transport_simple_ble_write(), passing param->exec_write.conn_id would
be invalid. Instead param->write.conn_id should be passed
Similar change in transport_simple_ble_exec_write() to use
param->exec_write.conn_id
2. simple_ble_start() assumes that the mode is BLE only and enables
Bluetooth controller accordingly. For, cases having BT + BLE like Alexa
(Provisioning over BLE + Audio over classic BT), this assumption should
be removed.
spi: fix the bug of connecting SPI peripheral to read-only pins
The requirements of pin capabilites is different for spi master and
slave. The master needs CS, SCLK, MOSI to be output-able, while slave
needs MISO to be output-able.
Previous code is for master only.
This commit allows to place other 3 pins than MISO on input-only pins
for slaves. Refactoring for spi_common is also included.
Angus Gratton [Tue, 19 Mar 2019 23:42:29 +0000 (10:42 +1100)]
cmake: Set COMPONENT_PATH during early expansion of dependencies
Works around bug where components/soc/CMakeLists.txt was testing "EXISTS
${COMPONENT_PATH}/${SOC_NAME}" and this test could pass during early
expansion if COMPONENT_PATH was empty and a directory /esp32 exists
on Windows.
krzychb [Tue, 19 Mar 2019 15:47:39 +0000 (16:47 +0100)]
docs: Upgraded sphinx package version to prevent build failures on readthedocs site. Upgraded versions of other packages that are used during documentation build. (backport v3.2)
Ivan Grokhotkov [Wed, 13 Mar 2019 12:19:55 +0000 (20:19 +0800)]
examples: don't enable buffering on stdout in console examples
newlib uses significantly more stack space when printing to an
unbuffered stream. To reduce the amount of stack space required to
use the console, don’t disable buffering. linenoise should support
unbuffered stdout instead.
David Cermak [Mon, 11 Mar 2019 10:49:29 +0000 (11:49 +0100)]
mdns: fix possible crash when probing on particular interface with duplicated service instances due to naming conflicts on network
Issue: MDNS server initially sends probing packets to resolve naming confilicts with already registered service instances. In case of a conflict, instance name is altered and probing restarts. Original instance however wasnnot removed from the structure and upon service removal only one entry was removed and a dangling service might have been kept in the structure to bring about a crash.
Resolution: Keep only one instance of a service in the probing structure.
David Cermak [Mon, 4 Mar 2019 11:32:10 +0000 (12:32 +0100)]
mdns: enable pcbs before starting service thread to avoid updating pcb's internal variables from concurent tasks
possible race condition: user task runs mdns_init, which enables pcbs while mdns-task already created could execute enable/disable of the same pcbs if an appropriate system event received
David Cermak [Mon, 4 Mar 2019 10:13:52 +0000 (11:13 +0100)]
mdns: fix possible deadlock on mdns deinit calling mdns_free()
mnds_free() initiates stop and delete timer tasks, which after locking the mutex could lead to a dead lock in case timer task executed before deleting the task, as it would wait indefinitelly for unlocking the mutex. This condition is fixed by calling _mdns_stop_timer without locking the mutex, because there's no need to protect any data when stopping and deleting the timer task
David Cermak [Fri, 1 Mar 2019 15:59:38 +0000 (16:59 +0100)]
mdsn: fix race condition in updating packet data from user task when failed to allocate or queue a new service
Issue: mdns_service_add API allocates and queues an action to be processed in mdns task context; when allocation or queueing fails, allocated structure needs to be freed. Function _mdns_free_service did not only fee all the structures, but also updates packet data.
Resolution: Moved removal of packet data outside of _mdns_free_service function.
David Cermak [Mon, 25 Feb 2019 13:29:39 +0000 (14:29 +0100)]
mdns: fix possible crash when packet scheduled to transmit contained service which might have been already removed
packets scheduled to transmit are pushed to action queue and removed from tx_queue_head structure, which is searched for all remaining services and while service is removed, then service questions/asnwers are also removed from this structure. This update fixes possible crash when packet is pushed to action queue, and when service is removed, its answers are removed from tx_queue_head, but not from action queue. this could lead to a crash when the packet is poped from action queue containing questions/answers to already removed (freed) service
Ivan Grokhotkov [Mon, 4 Mar 2019 08:59:09 +0000 (16:59 +0800)]
mdns: use binary semaphore instead of mutex when searching
mdns_search_once_t::lock is used to synchronize tasks (taken by one
task and given by the other) so it should not be a mutex.
Convert to semaphore, and rename to indicate its purpose.
Angus Gratton [Fri, 1 Mar 2019 04:38:23 +0000 (15:38 +1100)]
confgen: Fix bug with JSON metadata conditional range generation
When generating JSON metadata for ranges where there are conditional ranges (ie different allowed range
depending on another config setting), the JSON metadata would always have the last named range as
the expression was not evaluated properly.
Thanks to ulfalizer on GitHub for pointing this out.