summaryrefslogtreecommitdiffstats
path: root/wifi/1.3/default/wifi_chip.cpp
diff options
context:
space:
mode:
authorRoger Wang <wangroger@google.com>2018-11-02 15:34:39 +0800
committerRoger Wang <wangroger@google.com>2018-12-21 15:59:15 +0800
commitb294c76a0b24aa5f1d22fb14fbd298700fd94302 (patch)
tree12187ee69870027d93b1fc818640112473a882a7 /wifi/1.3/default/wifi_chip.cpp
parentb82cc11dca2c21c75b6c90abae49c35603a46261 (diff)
downloadandroid_hardware_interfaces-b294c76a0b24aa5f1d22fb14fbd298700fd94302.tar.gz
android_hardware_interfaces-b294c76a0b24aa5f1d22fb14fbd298700fd94302.tar.bz2
android_hardware_interfaces-b294c76a0b24aa5f1d22fb14fbd298700fd94302.zip
wifi(implementation): API to flush HAL ringbuffer to files
Wlan log does not include correct timestamp while taking bug report. Flush HAL ringbuffe to files directly when issue happen. Bug: 118854557 Test: Builds and wifi works Change-Id: Ic9a6b7470f943f1498428e8b0d40b117b2ff04e6
Diffstat (limited to 'wifi/1.3/default/wifi_chip.cpp')
-rw-r--r--wifi/1.3/default/wifi_chip.cpp19
1 files changed, 17 insertions, 2 deletions
diff --git a/wifi/1.3/default/wifi_chip.cpp b/wifi/1.3/default/wifi_chip.cpp
index dd6bd7c02..1f1aa9522 100644
--- a/wifi/1.3/default/wifi_chip.cpp
+++ b/wifi/1.3/default/wifi_chip.cpp
@@ -37,8 +37,8 @@ using android::hardware::wifi::V1_0::IfaceType;
using android::hardware::wifi::V1_0::IWifiChip;
constexpr char kCpioMagic[] = "070701";
-constexpr size_t kMaxBufferSizeBytes = 1024 * 1024;
-constexpr uint32_t kMaxRingBufferFileAgeSeconds = 60 * 60;
+constexpr size_t kMaxBufferSizeBytes = 1024 * 1024 * 3;
+constexpr uint32_t kMaxRingBufferFileAgeSeconds = 60 * 60 * 10;
constexpr uint32_t kMaxRingBufferFileNum = 20;
constexpr char kTombstoneFolderPath[] = "/data/vendor/tombstones/wifi/";
@@ -515,6 +515,13 @@ Return<void> WifiChip::forceDumpToDebugRingBuffer(
hidl_status_cb, ring_name);
}
+Return<void> WifiChip::flushRingBufferToFile(
+ flushRingBufferToFile_cb hidl_status_cb) {
+ return validateAndCall(this, WifiStatusCode::ERROR_WIFI_CHIP_INVALID,
+ &WifiChip::flushRingBufferToFileInternal,
+ hidl_status_cb);
+}
+
Return<void> WifiChip::stopLoggingToDebugRingBuffer(
stopLoggingToDebugRingBuffer_cb hidl_status_cb) {
return validateAndCall(this, WifiStatusCode::ERROR_WIFI_CHIP_INVALID,
@@ -1000,6 +1007,14 @@ WifiStatus WifiChip::forceDumpToDebugRingBufferInternal(
return createWifiStatusFromLegacyError(legacy_status);
}
+WifiStatus WifiChip::flushRingBufferToFileInternal() {
+ if (!writeRingbufferFilesInternal()) {
+ LOG(ERROR) << "Error writing files to flash";
+ return createWifiStatus(WifiStatusCode::ERROR_UNKNOWN);
+ }
+ return createWifiStatus(WifiStatusCode::SUCCESS);
+}
+
WifiStatus WifiChip::stopLoggingToDebugRingBufferInternal() {
legacy_hal::wifi_error legacy_status =
legacy_hal_.lock()->deregisterRingBufferCallbackHandler(