高通平台优化蓝牙打开时间

1.问题背景

        高通WCN39XX及以上系列每次蓝牙打开有固件加载的过程.,此过程耗时在2S左右。对比其他平台(比如展锐),蓝牙打开时间明显较长。在此背景下客户提出优化需求。

2.问题分析

        从logcat上分析发现蓝牙打开过程中加载固件耗时2s左右。而加载固件是蓝牙打开过程中必须的过程。那么是否可设置为每一次系统开机之后仅需加载一次固件呢?

3.问题解决

      在Create Point中查到文档kba-180822010533,确实存在每一次系统开机之后仅需加载一次固件的方式。

    代码中合入参考如下patch:

diff --git a/QSSI.12/device/qcom/qssi/system.prop b/QSSI.12/device/qcom/qssi/system.prop
index 62b601f..6591b88 100644
--- a/QSSI.12/device/qcom/qssi/system.prop
+++ b/QSSI.12/device/qcom/qssi/system.prop
@@ -169,3 +169,6 @@ arm64.memtag.process.system_server=off
 
 # Disable blur on app launch
 ro.launcher.blur.appLaunch=0
+
+#BT TLV/BIN will be only downloaded at the first ON time after power on of DUT
+persist.vendor.service.bdroid.soc.alwayson=true
\ No newline at end of file
diff --git a/QSSI.12/device/qcom/qssi_32go/system.prop b/QSSI.12/device/qcom/qssi_32go/system.prop
index 5fa8c5e..3dee182 100644
--- a/QSSI.12/device/qcom/qssi_32go/system.prop
+++ b/QSSI.12/device/qcom/qssi_32go/system.prop
@@ -163,3 +163,6 @@ debug.stagefright.ccodec=1
 
 #Proprty to set native recorder's maximum base layer fps
 ro.media.recorder-max-base-layer-fps = 60
+
+#BT TLV/BIN will be only downloaded at the first ON time after power on of DUT
+persist.vendor.service.bdroid.soc.alwayson=true
\ No newline at end of file
diff --git a/UM.9.15/vendor/qcom/proprietary/bluetooth/build/bt-vendor-proprietary-board.mk b/UM.9.15/vendor/qcom/proprietary/bluetooth/build/bt-vendor-proprietary-board.mk
index fdd9edf..d266cde 100755
--- a/UM.9.15/vendor/qcom/proprietary/bluetooth/build/bt-vendor-proprietary-board.mk
+++ b/UM.9.15/vendor/qcom/proprietary/bluetooth/build/bt-vendor-proprietary-board.mk
@@ -76,7 +76,7 @@ ifeq ($(TARGET_BOARD_SUFFIX), _32)
 BOARD_HAVE_QTI_BT_LAZY_SERVICE := true
 endif
 ifeq ($(TARGET_BOARD_SUFFIX), _32go)
-BOARD_HAVE_QTI_BT_LAZY_SERVICE := true
+BOARD_HAVE_QTI_BT_LAZY_SERVICE := false
 endif
 endif
 
diff --git a/UM.9.15/vendor/qcom/proprietary/bluetooth/hidl_transport/bt/1.0/default/data_handler.cpp b/UM.9.15/vendor/qcom/proprietary/bluetooth/hidl_transport/bt/1.0/default/data_handler.cpp
index 26c4a40..53f2aee 100755
--- a/UM.9.15/vendor/qcom/proprietary/bluetooth/hidl_transport/bt/1.0/default/data_handler.cpp
+++ b/UM.9.15/vendor/qcom/proprietary/bluetooth/hidl_transport/bt/1.0/default/data_handler.cpp
@@ -371,6 +371,7 @@ bool DataHandler::IsSocAlwaysOnEnabled()
    * always on will have unnecessary power lekage.
    */
 #ifndef LAZY_SERVICE
+  ALOGD("%s  Application Qualcomm provides solutions,SoC always ON ", __func__);
   char value[PROPERTY_VALUE_MAX] = {'\0'};
   logger_->PropertyGet("persist.vendor.service.bdroid.soc.alwayson", value, "false");
   return ((strcmp(value, "true") == 0) &&

另外客户还提出了扫描速度慢的问题,做了如下优化:

diff --git a/QSSI.12/packages/apps/Settings/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.java b/QSSI.12/packages/apps/Settings/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.java
index 2181309..56c7ae6 100644
--- a/QSSI.12/packages/apps/Settings/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.java
+++ b/QSSI.12/packages/apps/Settings/src/com/android/settings/bluetooth/DeviceListPreferenceFragment.java
@@ -193,12 +193,14 @@ public abstract class DeviceListPreferenceFragment extends
         BluetoothDevicePreference preference = (BluetoothDevicePreference) getCachedPreference(key);
 
         if (preference == null) {
-            preference = new BluetoothDevicePreference(getPrefContext(), cachedDevice,
-                    mShowDevicesWithoutNames, BluetoothDevicePreference.SortType.TYPE_FIFO);
-            preference.setKey(key);
-            //Set hideSecondTarget is true if it's bonded device.
-            preference.hideSecondTarget(true);
-            mDeviceListGroup.addPreference(preference);
+            if (cachedDevice.hasHumanReadableName() || cachedDevice.getDevice().getType() == BluetoothDevice.DEVICE_TYPE_CLASSIC || cachedDevice.getDevice().getType() == BluetoothDevice.DEVICE_TYPE_DUAL || mShowDevicesWithoutNames){
+                preference = new BluetoothDevicePreference(getPrefContext(), cachedDevice,
+                        mShowDevicesWithoutNames, BluetoothDevicePreference.SortType.TYPE_FIFO);
+                preference.setKey(key);
+                //Set hideSecondTarget is true if it's bonded device.
+                preference.hideSecondTarget(true);
+                mDeviceListGroup.addPreference(preference);
+            }
         }

  • 12
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值