Ivan Grokhotkov
1da3204a7c
spiram: expose function to initialize SPI RAM cache
...
Some frameworks based on ESP-IDF need to be able to decide whether to
initialize SPI RAM after the application has started. This change splits
out part of esp_spiram_init which manipulate cache MMU into a separate
function. Applications can disable cache, call esp_spiram_init_cache,
re-enable cache, and then call esp_spiram_init.
Disabling and re-enabling the cache can be achieved using functions
provided in esp_spi_flash.h.
2017-10-16 09:15:11 +08:00
He Yin Ling
3a271a4ae7
Merge branch 'bugfix/freertos_dual_core_hooks' into 'master'
...
bugfix/freertos_dual_core_hooks
See merge request !1399
2017-10-14 09:41:03 +08:00
Jiang Jiang Jian
a1d23051b4
Merge branch 'bugfix/tw15538_ipv6_socket_close_error' into 'master'
...
lwip: init lwip error code
See merge request !1379
2017-10-13 19:15:44 +08:00
Darian Leung
95d63137d1
bugfix/freertos_dual_core_hooks
...
This commit fixes bugs with the dual core changes to freeRTOS tick and idle hooks.
Interrupt watchdog now registers tick hooks to both cores.
API for cross core tick and idle hook registration were also added
2017-10-13 18:27:53 +08:00
XiaXiaotian
c730f676c3
Reduce minimum number of WiFi static tx buffer
...
Calibrate tx power after sending five packets
2017-10-13 17:11:31 +08:00
Jiang Jiang Jian
713dee57f0
Merge branch 'feature/add_const_for_wifi_api' into 'master'
...
esp32: add const for some WiFi api
See merge request !1394
2017-10-13 17:08:29 +08:00
Liu Zhi Fu
3bcaa592ee
lwip: refactor to socket ping
...
Do some refactor to socket ping:
1. Add ping_deinit to kill ping thread
2. Apply configuration set by esp_ping_set_target to socket ping
3. Limit only one ping thread
2017-10-13 16:37:09 +08:00
Jiang Jiang Jian
a0ad3ff008
Merge branch 'bugfix/btdm_fix_set_attr_value_crash_when_length_is_0' into 'master'
...
component/bt: fix crash when the length of attr value set zero
See merge request !1397
2017-10-13 16:00:15 +08:00
Liu Zhi Fu
e2d077cea1
lwip: init lwip error code
...
Init the error code to ERR_OK when call tcpip_apimsg
2017-10-13 15:59:04 +08:00
Jiang Jiang Jian
90be957af1
Merge branch 'bugfix/btdm_fix_register_app_id_failed_when_more_than_3' into 'master'
...
component/bt: fix register more than three app_ids failed
See merge request !1389
2017-10-13 15:57:00 +08:00
Liu Zhi Fu
e04a0d66b8
esp32/tcpipadapter: correct eth ip got event info
...
1. Raise SYSTEM_EVENT_ETH_GOT_IP when eth got ip
2. Add default handler for SYSTEM_EVENT_ETH_GOT_IP
3. Minor change about ethernet kconfig
2017-10-13 15:56:51 +08:00
Jiang Jiang Jian
6ff5c32ae5
Merge branch 'feature/alloc_memories_of_wifi_and_lwip_in_spiram_first' into 'master'
...
Allocate some memories in SPIRAM first.
See merge request !1367
2017-10-13 15:47:27 +08:00
Jiang Jiang Jian
aa7a1e5e2d
Merge branch 'bugfix/btdm_controller_deinit' into 'master'
...
component/bt : allow init after de-init
See merge request !1371
2017-10-13 15:44:58 +08:00
Liu Zhi Fu
0e586a4cdf
esp32: add const for some WiFi api
...
Add const if the pointer parameter is const
2017-10-13 15:10:34 +08:00
zhiweijian
520b3340f6
Component/bt: fix crash when set attr value 0
2017-10-13 15:06:08 +08:00
XiaXiaotian
5df39cd4b6
Allocate some memories in SPIRAM first.
...
Try to allocate some WiFi and LWIP memories in SPIRAM first. If
failed, try to allocate in internal RAM then.
2017-10-13 10:11:24 +08:00
Angus Gratton
0a52dbccca
Merge branch 'bugfix/spi_reset_race' into 'master'
...
periph_ctrl: Refactor to add periph_module_reset(), avoid potential race in SPI DMA workaround
See merge request !1349
2017-10-13 08:51:36 +08:00
Angus Gratton
5d8bd1aa9e
Merge branch 'bugfix/libsodium_mbedtls_sha' into 'master'
...
libsodium: Fix mbedTLS SHA256 & SHA512 implementation, make optional
See merge request !1329
2017-10-13 08:50:24 +08:00
Ivan Grokhotkov
715d081341
freertos: fix compilation errors with portMUX debugging enabled
...
Fixes https://github.com/espressif/esp-idf/issues/1057
Ref TW15702.
2017-10-13 08:33:57 +08:00
Ivan Grokhotkov
3cf23ff77d
sdmmc: allow command timeouts to be configured
...
Previously the timeout was set to the same value (1000ms) for all kinds
of commands. In some cases, such as with slow cards, write commands
failed to complete in time.
This change makes command timeouts configurable via sdmmc_host_t
structure, and also makes default timeouts different for ordinary
commands and write commands.
Closes https://github.com/espressif/esp-idf/issues/1093
Ref TW15774.
2017-10-13 08:16:07 +08:00
Angus Gratton
ca7485cc9a
freertos: Remove "stop program on scheduler start when JTAG/OCD is detected" option
...
No longer used with new dual core target & JTAG instructions.
2017-10-13 10:54:02 +11:00
Ivan Grokhotkov
ab13db0e45
nvs: fix nvs_flash_init_partition initializing default partition
...
Fixes https://github.com/espressif/esp-idf/issues/1052 .
Ref TW15698.
2017-10-13 07:19:16 +08:00
Ivan Grokhotkov
4d42b5ea24
console: handle empty input to esp_console_run correctly
...
Fixes https://github.com/espressif/esp-idf/issues/1067
Ref. TW15752
2017-10-13 07:14:53 +08:00
zhiweijian
49ad8bf6c3
Component/bt: fix register more than 3 app_id failed
2017-10-12 21:07:40 +08:00
Jiang Jiang Jian
8e47c355fa
Merge branch 'feature/i2s_apll' into 'master'
...
driver/i2s: add support apll clock
See merge request !1115
2017-10-12 19:06:50 +08:00
Jiang Jiang Jian
244e947beb
Merge branch 'bugfix/btdm_fix_add_whitelist_failed' into 'master'
...
Component/bt: fix add whitelist failed
See merge request !1326
2017-10-12 19:01:01 +08:00
Jiang Jiang Jian
dbee895741
Merge branch 'bugfix/phy_init_remove_descriptions' into 'master'
...
phy init: remove descriptions of PHY init parameters
See merge request !1363
2017-10-12 19:00:10 +08:00
Jiang Jiang Jian
f8caa403db
Merge branch 'bugfix/btdm_remove_bond_device_not_return_error' into 'master'
...
component/bt: Fixed the bug when remove the bonded device with not exist address…
See merge request !1370
2017-10-12 18:59:09 +08:00
Jiang Jiang Jian
73462c052e
Merge branch 'bugfix/btdm_fix_set_scan_params_not_work' into 'master'
...
component/bt: fix scan params not work when start scan
See merge request !1307
2017-10-12 18:57:36 +08:00
Jiang Jiang Jian
e0922c9564
Merge branch 'bugfix/i2s_set_pin_valid_gpio' into 'master'
...
change to GPIO_IS_VALID_OUTPUT_GPIO for data out pin
See merge request !764
2017-10-12 18:21:25 +08:00
Jiang Jiang Jian
da247c2cf8
Merge branch 'bugfix/ledc_duty_type_change' into 'master'
...
ledc_get_duty return type changed from int to uint32_t, target_duty changed from int to uint32_t
See merge request !752
2017-10-12 18:18:33 +08:00
Jiang Jiang Jian
52be20343b
Merge branch 'bugfix/tw15438_mem_leak_on_wifi_start_stop_loop' into 'master'
...
Release DHCP structure memory when netif is down.
See merge request !1386
2017-10-12 17:51:58 +08:00
Jiang Jiang Jian
a4e4322f6c
Merge branch 'bugfix/btdm_set_sec_properity_error' into 'master'
...
component/bt: Fix bug of set sec properity error
See merge request !1336
2017-10-12 17:45:32 +08:00
Jiang Jiang Jian
3f1198529f
Merge branch 'bugfix/fail_to_connect_in_wps' into 'master'
...
WiFi :bug fix of fail to connect in wps
See merge request !1384
2017-10-12 17:39:29 +08:00
XiaXiaotian
ad1350f0ac
Release DHCP structure memory when netif is down.
2017-10-12 17:03:44 +08:00
Angus Gratton
3a4bd7f16c
Merge branch 'bugfix/wifi_tx_buffer_doc' into 'master'
...
wifi docs: Clarify WIFI_DYNAMIC_TX_BUFFER_NUM config item limit
See merge request !1375
2017-10-12 13:20:28 +08:00
Angus Gratton
f3681e22de
wifi docs: Clarify WIFI_DYNAMIC_TX_BUFFER_NUM config item limit
...
Setting WIFI_DYNAMIC_TX_BUFFER_NUM to zero is not possible.
Also edit some of the related config docs a little.
2017-10-12 15:53:53 +11:00
Deng Xin
a99c89f6af
bug fix of fail to connect in wps
2017-10-12 12:01:11 +08:00
Deng Xin
a05867f673
Wifi: bugfix of fail to reconnect after reboot
...
fix the issue fail to reconnect after reboot
2017-10-11 17:58:36 +08:00
Jiang Jiang Jian
3ed90a559d
Merge branch 'bugfix/btdm_fix_multi_connection_failed' into 'master'
...
component/bt: modify some comments
See merge request !1332
2017-10-11 17:00:34 +08:00
zhiweijian
cd3d9715bb
Component/bt: fix add whitelist failed
...
- fix add whitelist failed
- add add whitelist callback func
2017-10-11 15:30:09 +08:00
Angus Gratton
353e81da63
freertos: Also test (& handle) the case where scheduler is disabled on other CPU...
...
ie CPU A has scheduler disabled and task blocked on Q. CPU B sends to Q (or gives mutex, etc.) Task on CPU A should be woken on scheduler resume.
2017-10-11 10:48:20 +11:00
Angus Gratton
3e62c2e052
freertos: When scheduler is disabled, tasks on other core should immediately resume
...
... if triggered by a SemaphoreGive/etc.
Previously they would resume after scheduler was resumed, on next
RTOS tick of other CPU.
2017-10-11 10:48:20 +11:00
Angus Gratton
f2f9170abc
freertos: Fix bug with xTaskResumeAll() not resuming all tasks
...
Previously if multiple tasks had been added to xPendingReadyList for the CPU, only the first one was resumed.
Includes a test case for resuming multiple (pending) tasks on xTaskResumeAll().
Document the limitation that while scheduler is suspended on one CPU, it can't wake tasks on either CPU.
2017-10-11 10:48:20 +11:00
Yulong
fc359e4491
component/bt: Change the _btc_storage_remove_ble_bonding_keys function ret default vaule from 1 to 0.
2017-10-10 04:19:11 -04:00
Yulong
25e8c09b6d
component/bt: Change the param.remove_bond_dev_cmpl.status value.
2017-10-10 04:02:05 -04:00
Tian Hao
b54ef13fae
component/bt : allow init after de-init
2017-10-10 15:35:17 +08:00
Angus Gratton
30b40a2175
Merge branch 'bugfix/ff_ioctl_types' into 'master'
...
fatfs: use correct return types in ioctl calls
See merge request !1362
2017-10-10 15:01:47 +08:00
Angus Gratton
dda136eab7
Merge branch 'bugfix/heap_debugging_cleanup' into 'master'
...
Heap debugging docs cleanup & convenience functions
See merge request !1347
2017-10-10 14:59:54 +08:00
Yulong
8e08097151
component/bt: Fixed the bug when remove the bonded device with not exist address will not return error.
2017-10-10 02:29:54 -04:00
Jeroen Domburg
a8131b14b0
Merge branch 'feature/docs_update_uart_api' into 'master'
...
Updated functional overview of UART API documentation
See merge request !1328
2017-10-10 14:06:08 +08:00
Jeroen Domburg
1835c3a213
Merge branch 'feature/docs_update_pcnt_api' into 'master'
...
Extended description of the Pulse Counter API and removed redundant comments from the example
See merge request !1312
2017-10-10 14:06:03 +08:00
Jiang Jiang Jian
904d6c8f2b
Merge branch 'feature/scan_optimize' into 'master'
...
wifi: scan optimize
See merge request !1334
2017-10-10 13:39:16 +08:00
Angus Gratton
f0d7cfdafe
heap: Add new heap_caps_check_integrity_all() & heap_caps_check_integrity_addr() debugging functions
...
Easier to either check all heaps, or focus on checking a particular region.
2017-10-10 16:19:30 +11:00
Angus Gratton
bb8ba76604
Merge branch 'bugfix/multi_heap_get_info_typo' into 'master'
...
Fix multi_heap_get_info alias (from github)
See merge request !1357
2017-10-10 13:14:09 +08:00
Deng Xin
d515494d1b
wifi: optimize scan feature
...
1. add the threshold of match AP in fast scan
2. add blacklist feature
3. make sure would wrong if password didn't set
4. add scan example
2017-10-10 12:27:02 +08:00
Jiang Jiang Jian
3106ca1c1e
Merge branch 'bugfix/btdm_ea_overloaded' into 'master'
...
component/bt: increase programming delay for event arbiter to allow for heavy workload
See merge request !1338
2017-10-10 12:26:25 +08:00
Angus Gratton
19d983974f
Merge branch 'feature/freertos_dual_core_hooks_github' into 'master'
...
freertos: Make the tick/idle hooks dual core compatible (from github)
See merge request !1361
2017-10-10 12:06:05 +08:00
Ivan Grokhotkov
104204ce56
fatfs: use correct return types in ioctl calls
...
GET_SECTOR_SIZE should return WORD (unsigned short) but returned
uint32_t.
Reference: http://elm-chan.org/fsw/ff/doc/dioctl.html
Closes https://github.com/espressif/esp-idf/pull/1031 .
2017-10-10 12:02:32 +08:00
Ivan Grokhotkov
139b0c8396
Merge branch 'bugfix/fatfs_timezone' into 'master'
...
fatfs: use localtime_r instead of gmtime to get timezone
See merge request !1358
2017-10-10 12:00:24 +08:00
krzychb
9107b47deb
Updated UART API documentation and examples. Included a fix of #1091 from GitHub
2017-10-10 05:54:36 +02:00
Ivan Grokhotkov
fdc24eb118
phy init: remove descriptions of PHY init parameters
2017-10-09 14:40:08 +08:00
Angus Gratton
ec85f9fc3f
heap: Fix documentation references to multi_get_heap_info()
2017-10-09 14:42:31 +11:00
Daniel Campora
1c046f30a6
freertos: Make the tick/idle hooks dual core compatible
...
The way these hooks are implemented at the moment, once you register a tick or idle task hook, it is run by both cores, leading to intermittent crashes that are difficult to explain (and debug). One solution is to register the hook with the core that is currently running, which is what this patch attempts to do.
Merges https://github.com/espressif/esp-idf/pull/781
2017-10-09 13:04:20 +11:00
Angus Gratton
110c71d3f1
Merge branch 'feature/ipv6_socket_options' into 'master'
...
IPV6 multicast socket options
See merge request !964
2017-10-09 09:03:30 +08:00
Tuan PM
9d39881981
i2s: add support apll clock
...
using apll_param to setup APLL
new apll calculation method, much faster
validate freq calculation
Ensure that the i2s frequency is greater than the hardware limit
Add description of how to calculate apll clock, support apll for other 16-bits audio, check rev0 chip
correct space
2017-10-06 15:36:24 +07:00
Angus Gratton
de750e9921
Merge branch 'bugfix/pthread_join_hangup' into 'master'
...
Bugfix/pthread join hangup
See merge request !1346
2017-10-06 13:14:51 +08:00
Angus Gratton
acff3c9c59
libsodium: Fix mbedTLS SHA256 & SHA512 implementation, make optional
...
* Only direct invocation of cypto_hash_sha256 & crypto_hash_sha512 produced correct output.
* Some remaining header file mixups, so changed approach to wrapping the state structures.
* Fixes https://github.com/espressif/esp-idf/issues/1044 (crypto_sign problems)
* Add option to disable mbedTLS implementation for SHA256 & SHA512 in libsodium
2017-10-06 11:51:55 +11:00
Angus Gratton
0dd9b899b7
periph_ctrl: Refactor to add periph_module_reset(), avoid potential race in SPI DMA workaround
...
Also refactor use of direct clock access in unit test ref_clock (probably not a real issue)
2017-10-02 17:48:16 +11:00
Angus Gratton
530bca1813
freertos: Remove obsolete "Enable heap memory debug" option
...
All heap debugging is now under the Heap component.
2017-10-02 13:43:54 +11:00
Angus Gratton
3fdb1944d3
lwip: Disable IPV4 Link-Local addressing by default
...
Keeps existing IDF behaviour the same. Can still be enabled via menuconfig.
2017-10-02 10:50:27 +11:00
Angus Gratton
2cc8c91ad8
lwip: Remove undocumented CONFIG_MDNS macro flag
...
All options that were enabled via CONFIG_MDNS are now in menuconfig, with
the default values set the same as with CONFIG_MDNS enabled (meaning existing
projects that were using CONFIG_MDNS do not need to change).
2017-10-02 10:50:27 +11:00
Angus Gratton
04a2cefb26
lwip: Enable IPV6_ONLY option for UDP sockets (BSD & netconn)
...
* setsockopt(s, IPV6_ONLY, &one, sizeof(int)) will disable IPV6-only
mode. Incoming/outgoing IPV4 packets are dropped.
* Otherwise, sockets bound to IPV6_ANY_ADDR can receive unicast packets
for IPV4 or IPV6.
* sendto() a IPV6-mapped-IPV4 address on a UDP socket works correctly
(not supported for RAW or TCP sockets.)
* getaddrinfo() option AI_V4MAPPED is implemented.
As well as extending support to TCP & RAW, there is some potential improvement
to dropping incoming packets - the drop happens a bit late in the process and
there is no "ICMP port unreachable" response sent.
2017-10-02 10:50:27 +11:00
Angus Gratton
961180617e
lwip: Add IPV6 multicast group membership socket options
...
As described in RFC2133: IPV6_MULTICAST_IF, IPV6_MULTICAST_HOPS,
IPV6_MULTICAST_LOOP, IPV6_MULTICAST_LOOP, IPV6_DROP_MEMBERSHIP.
2017-10-02 10:50:27 +11:00
Alexey Gerenkov
5795ccc806
freertos: Fixes deadlock in pthread_once for init_routines calling pthread_once
2017-10-01 19:52:48 +03:00
Alexey Gerenkov
54a529f596
freertos: Fixes hangup upon pthread_join on finished thread
2017-10-01 19:52:48 +03:00
Luc
6e0f054884
use localtime_r instead of gmtime to get timezone
...
on fatfs
2017-09-30 21:44:35 +08:00
wangmengyang
2797966c47
component/bt: increase programming delay for event arbiter to allow for heavy workload
2017-09-30 18:12:45 +08:00
Jeroen Domburg
b6a2bd1184
Revert "esp32: New Task Watchdog API"
...
This reverts commit 616baa239d
.
2017-09-30 18:07:19 +08:00
zhiweijian
c75da555af
Component/bt: fix set scan params and start scan action
2017-09-30 17:01:57 +08:00
zhiweijian
4720196015
Component/bt: fix multi-connection failed
...
- modify some comments
2017-09-30 16:30:43 +08:00
Yulong
1a07a13727
component/bt: Change the 0x04 to Macro BTA_LE_AUTH_REQ_MITM.
2017-09-30 04:05:21 -04:00
Jiang Jiang Jian
91c259b105
Merge branch 'bugfix/btdm_change_pll_track_interrupt' into 'master'
...
component/bt : change pll track interrupt bits
See merge request !1310
2017-09-30 15:53:58 +08:00
Jiang Jiang Jian
c2a4713958
Merge branch 'bugfix/btdm_btc_ble_set_rand_addr' into 'master'
...
component/bt: Fix bug of function btc_ble_set_rand_addr
See merge request !1297
2017-09-30 15:49:53 +08:00
Jiang Jiang Jian
b420c62602
Merge branch 'bugfix/btdm_mem_leak_of_gattc_open_and_close' into 'master'
...
component/bt: Fix bug of memory leak of gatt open and close
See merge request !1325
2017-09-30 15:48:57 +08:00
Jiang Jiang Jian
a8dab7680a
Merge branch 'bugfix/btdm_gattc_mutiple_read_bug' into 'master'
...
component/bt: Fixed the bug of mutiple read can not callback.
See merge request !1286
2017-09-30 15:45:56 +08:00
Jiang Jiang Jian
816fe6cf1f
Merge branch 'bugfix/btdm_gattc_get_db_prop_bug' into 'master'
...
component/bt: Fiexd the bug of the gattc cannot get the db properties.
See merge request !1284
2017-09-30 15:42:45 +08:00
Jiang Jiang Jian
f619386967
Merge branch 'bugfix/btdm_fail_to_find_handle_#15534' into 'master'
...
component/bt: Fix the bug of total attr didn't reset when init the gattc cache.
See merge request !1331
2017-09-30 15:42:07 +08:00
Darian Leung
616baa239d
esp32: New Task Watchdog API
...
Legacy API of task watchdog used the same function esp_task_wdt_feed() to add
and feed a task. This caused issues of implicitly adding a task to the wdt list
if the function was used in shared code.
The new API introduces init, adding, feeding, deleting, deinit functions. Tasks
must now be explicitly added to the task watchdog using their handles. Deletion
must also be explicit using task handles. This resolves the issue of implicit
task additions to the task watchdog due to shared code calling
esp_task_wdt_feed().
Task watchdog is now fully configurable at runtime by calling the init and
deinit functions.
Also added functions to get the handles of idle tasks of the other core. This
helps when adding idle tasks to the watchdog at run time.
Configuring the task watchdog using menu config is still available, however
menu config will only result in calling the init and add functions for idle
tasks shortly after the scheduler starts.
Menu config also allows for using legacy behavior, however the legacy behavior
willcall the new API functions but with slight variations to make them legacy
compatible.
Documentation and example have also been updated
gcov_rtio.c headers updated to prevent error of freertos header files being
included in the wrong order.
Resolves issue TW#13265
2017-09-29 23:10:55 +08:00
Darian Leung
ae9041ab71
esp32: Fix task watchdog timer triggering issues TW#14794
...
The two task watchdog timer bugs are as follows...
1) If only a single task existed on the wdt task list, and esp_task_wdt_feed()
was only called once, the watchdog triggers but fails to print task name
2) If a single task already exists on the task wdt list, and another task calls
esp_task_wdt_feed() once, the watchdog fails to trigger
Problem stemmed from the loop responsible for resetting the watchdog timer
having incorrect loop parameters. The loop failed to traverse the full length
of the task wdt list
2017-09-29 22:12:58 +08:00
baohongde
b78da3b715
component/bt: Fix bug of set sec properity error
2017-09-29 18:46:28 +08:00
baohongde
b59708ca87
component/bt: Fix bug of function btc_ble_set_rand_addr
2017-09-29 11:46:08 +08:00
Jeroen Domburg
740f8a79f0
Add logic to make external RAM usable with malloc()
2017-09-28 17:17:50 +08:00
baohongde
27e1db508d
component/bt: Fix bug of function btc_ble_set_rand_addr
2017-09-28 14:41:31 +08:00
baohongde
68958a2485
component/bt: Fix bug of memory leak of gatt open and close
2017-09-28 14:34:57 +08:00
Yulong
f7a2cc37b3
component/bt: Fix the bug of total attr didn't reset when init the gattc cache.
2017-09-28 02:09:02 -04:00
Jeroen Domburg
58a5d883f4
Merge branch 'test/spi_master_internal_connect' into 'master'
...
test(spi_master): add test case for 3 DMA issues with internal connection by gpio mux.
See merge request !1217
2017-09-27 17:00:31 +08:00
Angus Gratton
a3a4a20518
Merge branch 'bugfix/bt_sdp_server_continuation' into 'master'
...
bluedroid: Add continuation offset check to SDP server
See merge request !1323
2017-09-27 11:13:54 +08:00
michael
fcd0f52e21
test(spi_master): add test case for 3 DMA issues with internal connection by gpio mux.
...
3 issues are:
1. RX buffer not aligned (start and end)
2. not setting rx_buffer
3. setting rx_length != length
also add spi release code here.
2017-09-27 10:44:28 +08:00
Angus Gratton
c9241b4310
bluedroid: Add continuation offset check to SDP server
...
Fix for CVE-2017-0785
https://android.googlesource.com/platform/system/bt/+/818cf6f%5E%21/#F0
2017-09-27 09:49:04 +10:00