Merge changes from topic "fcm_8" into udc-d1-dev

* changes:
  wlc: make VINTF target level specify by device
  pixel_ril: make VINTF target level specify by device
  bt: make VINTF target level specify by device
  audio: make VINTF target level specify by device
diff --git a/camera/dump_camera.cpp b/camera/dump_camera.cpp
index 105c024..548a866 100644
--- a/camera/dump_camera.cpp
+++ b/camera/dump_camera.cpp
@@ -13,30 +13,40 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-#include <dump/pixel_dump.h>
-#include <android-base/properties.h>
 #include <android-base/file.h>
+#include <android-base/properties.h>
+#include <dump/pixel_dump.h>
+
+namespace {
+
+constexpr std::string_view kCameraLogDir = "/data/vendor/camera/profiler";
+constexpr std::string_view kGraphStateDumpDir = "/data/vendor/camera";
+
+}  // namespace
 
 int main() {
-    if (!::android::base::GetBoolProperty("vendor.camera.debug.camera_performance_analyzer.attach_to_bugreport", true)) {
-        return 0;
-    }
-
-    static const std::string kCameraLogDir = "/data/vendor/camera/profiler";
-    const std::string cameraDestDir = concatenatePath(BUGREPORT_PACKING_DIR, "camera");
-
-    if (mkdir(cameraDestDir.c_str(), 0777) == -1) {
-        printf("Unable to create folder: %s\n", cameraDestDir.c_str());
-        return 0;
-    }
-
-    // Attach multiple latest sessions (in case the user is running concurrent
-    // sessions or starts a new session after the one with performance issues).
-    dumpLogs(kCameraLogDir.c_str(), cameraDestDir.c_str(), 10, "session-ended-");
-    dumpLogs(kCameraLogDir.c_str(), cameraDestDir.c_str(), 5, "high-drop-rate-");
-    dumpLogs(kCameraLogDir.c_str(), cameraDestDir.c_str(), 5, "watchdog-");
-    dumpLogs(kCameraLogDir.c_str(), cameraDestDir.c_str(), 5, "camera-ended-");
-
+  if (!::android::base::GetBoolProperty(
+          "vendor.camera.debug.camera_performance_analyzer.attach_to_bugreport",
+          true)) {
     return 0;
-}
+  }
 
+  const std::string cameraDestDir =
+      concatenatePath(BUGREPORT_PACKING_DIR, "camera");
+
+  if (mkdir(cameraDestDir.c_str(), 0777) == -1) {
+    printf("Unable to create folder: %s\n", cameraDestDir.c_str());
+    return 0;
+  }
+
+  // Attach multiple latest sessions (in case the user is running concurrent
+  // sessions or starts a new session after the one with performance issues).
+  dumpLogs(kCameraLogDir.data(), cameraDestDir.c_str(), 10, "session-ended-");
+  dumpLogs(kCameraLogDir.data(), cameraDestDir.c_str(), 5, "high-drop-rate-");
+  dumpLogs(kCameraLogDir.data(), cameraDestDir.c_str(), 5, "watchdog-");
+  dumpLogs(kCameraLogDir.data(), cameraDestDir.c_str(), 5, "camera-ended-");
+  dumpLogs(kGraphStateDumpDir.data(), cameraDestDir.c_str(), 5,
+           "hal_graph_state_");
+
+  return 0;
+}
diff --git a/dauntless/sepolicy/vndservicemanager.te b/dauntless/sepolicy/vndservicemanager.te
new file mode 100644
index 0000000..335cd2b
--- /dev/null
+++ b/dauntless/sepolicy/vndservicemanager.te
@@ -0,0 +1 @@
+binder_call(vndservicemanager, hal_keymint_citadel)
diff --git a/edgetpu/edgetpu.mk b/edgetpu/edgetpu.mk
index 2f0f77c..5ad2711 100644
--- a/edgetpu/edgetpu.mk
+++ b/edgetpu/edgetpu.mk
@@ -28,3 +28,8 @@
 
 # Tflite Darwinn delegate property
 PRODUCT_VENDOR_PROPERTIES += vendor.edgetpu.tflite_delegate.force_disable_io_coherency=0
+
+# Edgetpu CPU scheduler property
+PRODUCT_VENDOR_PROPERTIES += vendor.edgetpu.cpu_scheduler.policy=FIFO
+PRODUCT_VENDOR_PROPERTIES += vendor.edgetpu.cpu_scheduler.priority=99
+
diff --git a/edgetpu/sepolicy/edgetpu_dba_service.te b/edgetpu/sepolicy/edgetpu_dba_service.te
index 3717e20..da210da 100644
--- a/edgetpu/sepolicy/edgetpu_dba_service.te
+++ b/edgetpu/sepolicy/edgetpu_dba_service.te
@@ -45,3 +45,5 @@
 get_prop(edgetpu_dba_server, vendor_tflite_delegate_prop)
 # Allow EdgeTPU DBA service to read hetero runtime properties
 get_prop(edgetpu_dba_server, vendor_hetero_runtime_prop)
+# Allow EdgeTPU DBA service to read EdgeTPU CPU scheduler properties
+get_prop(edgetpu_dba_server, vendor_edgetpu_cpu_scheduler_prop)
diff --git a/edgetpu/sepolicy/edgetpu_vendor_server.te b/edgetpu/sepolicy/edgetpu_vendor_server.te
index 1060510..4c03744 100644
--- a/edgetpu/sepolicy/edgetpu_vendor_server.te
+++ b/edgetpu/sepolicy/edgetpu_vendor_server.te
@@ -29,3 +29,6 @@
 
 # Allow EdgeTPU vendor service to read the overcommit_memory info.
 allow edgetpu_vendor_server proc_overcommit_memory:file r_file_perms;
+
+# Allow EdgeTPU vendor service to read hetero runtime properties
+get_prop(edgetpu_vendor_server, vendor_hetero_runtime_prop)
diff --git a/edgetpu/sepolicy/property.te b/edgetpu/sepolicy/property.te
index 1ed9a59..625ed0a 100644
--- a/edgetpu/sepolicy/property.te
+++ b/edgetpu/sepolicy/property.te
@@ -6,5 +6,9 @@
 # and then read by apps, camera hal, and some Darwinn vendor services.
 system_vendor_config_prop(vendor_tflite_delegate_prop)
 
+# The EdgeTPU CPU scheduler properties are written once by vendor_init,
+# and then read by HAL service.
+system_vendor_config_prop(vendor_edgetpu_cpu_scheduler_prop)
+
 # Hetero runtime properties, including tracing levels.
 system_vendor_config_prop(vendor_hetero_runtime_prop)
diff --git a/edgetpu/sepolicy/property_contexts b/edgetpu/sepolicy/property_contexts
index c21eb13..dabbd20 100644
--- a/edgetpu/sepolicy/property_contexts
+++ b/edgetpu/sepolicy/property_contexts
@@ -1,5 +1,6 @@
 # for EdgeTPU
 vendor.edgetpu.service.                         u:object_r:vendor_edgetpu_service_prop:s0
+vendor.edgetpu.cpu_scheduler.                   u:object_r:vendor_edgetpu_cpu_scheduler_prop:s0
 
 # for DarwinnDelegate
 vendor.edgetpu.tflite_delegate.                 u:object_r:vendor_tflite_delegate_prop:s0
diff --git a/edgetpu/sepolicy/vendor_init.te b/edgetpu/sepolicy/vendor_init.te
index c9506f0..d0ee1f9 100644
--- a/edgetpu/sepolicy/vendor_init.te
+++ b/edgetpu/sepolicy/vendor_init.te
@@ -1,2 +1,4 @@
 # Allow vendor_init to set tflite Darwinn delegate properties
 set_prop(vendor_init, vendor_tflite_delegate_prop)
+# Allow vendor_init to set the EdgeTPU CPU scheduler properties.
+set_prop(vendor_init, vendor_edgetpu_cpu_scheduler_prop)
diff --git a/gps/brcm/cbd_gps.mk b/gps/brcm/cbd_gps.mk
new file mode 100644
index 0000000..74d1a3b
--- /dev/null
+++ b/gps/brcm/cbd_gps.mk
@@ -0,0 +1,3 @@
+# Copy the cbd control gps state init rc file
+PRODUCT_PACKAGES += \
+	cbd_gps.rc
diff --git a/gps/brcm/conf/Android.bp b/gps/brcm/conf/Android.bp
new file mode 100644
index 0000000..97e0af9
--- /dev/null
+++ b/gps/brcm/conf/Android.bp
@@ -0,0 +1,10 @@
+package {
+    default_applicable_licenses: ["Android-Apache-2.0"],
+}
+
+prebuilt_etc {
+    name: "cbd_gps.rc",
+    src: "cbd_gps.rc",
+    relative_install_path: "init",
+    vendor: true,
+}
\ No newline at end of file
diff --git a/gps/brcm/conf/cbd_gps.rc b/gps/brcm/conf/cbd_gps.rc
new file mode 100644
index 0000000..b315fe3
--- /dev/null
+++ b/gps/brcm/conf/cbd_gps.rc
@@ -0,0 +1,5 @@
+# disable gps service if cbd state is invalid
+on property:vendor.ril.cbd.svc=0
+    stop gpsd
+    stop lhd
+    stop scd
diff --git a/gps/brcm/prebuilt/init.gps.rc b/gps/brcm/prebuilt/init.gps.rc
index 5f1bb15..a9823ef 100644
--- a/gps/brcm/prebuilt/init.gps.rc
+++ b/gps/brcm/prebuilt/init.gps.rc
@@ -24,8 +24,3 @@
     ioprio be 0
     priority -1
 
-# disable gps service if no gps h/w
-on property:vendor.ril.cbd.svc=0
-    stop gpsd
-    stop lhd
-    stop scd
\ No newline at end of file
diff --git a/modem/dump_modem.sh b/modem/dump_modem.sh
index f9f7cf2..b3f4ed3 100644
--- a/modem/dump_modem.sh
+++ b/modem/dump_modem.sh
@@ -1,5 +1,8 @@
 #!/vendor/bin/sh
 
+WAKEUP_EVENTS_FILE=/sys/devices/platform/cpif/wakeup_events
+CPIF_LOGBUFFER=/dev/logbuffer_cpif
+
 echo "------ Modem Stat ------"
 cat /data/vendor/modem_stat/debug.txt
 
@@ -15,3 +18,16 @@
   cat $f
 done
 
+if [ -e $WAKEUP_EVENTS_FILE ]
+then
+  echo "\n------ Wakeup event counts ------"
+  echo $WAKEUP_EVENTS_FILE
+  cat $WAKEUP_EVENTS_FILE
+fi
+
+if [ -e $CPIF_LOGBUFFER ]
+then
+  echo "\n------ CPIF Logbuffer ------"
+  echo $CPIF_LOGBUFFER
+  cat $CPIF_LOGBUFFER
+fi
diff --git a/modem/sepolicy/dump_modem.te b/modem/sepolicy/dump_modem.te
index dc9b38d..2ffa351 100644
--- a/modem/sepolicy/dump_modem.te
+++ b/modem/sepolicy/dump_modem.te
@@ -8,3 +8,5 @@
 allow dump_modem vendor_rfsd_log_file:dir r_dir_perms;
 allow dump_modem vendor_rfsd_log_file:file r_file_perms;
 allow dump_modem vendor_toolbox_exec:file execute_no_trans;
+allow dump_modem sysfs_dump_modem:file r_file_perms;
+allow dump_modem logbuffer_device:chr_file r_file_perms;
diff --git a/modem/sepolicy/file.te b/modem/sepolicy/file.te
new file mode 100644
index 0000000..383480d
--- /dev/null
+++ b/modem/sepolicy/file.te
@@ -0,0 +1 @@
+type sysfs_dump_modem, sysfs_type, fs_type;
diff --git a/modem/sepolicy/genfs_contexts b/modem/sepolicy/genfs_contexts
new file mode 100644
index 0000000..bae95cc
--- /dev/null
+++ b/modem/sepolicy/genfs_contexts
@@ -0,0 +1 @@
+genfscon sysfs /devices/platform/cpif/wakeup_events u:object_r:sysfs_dump_modem:s0