Merge tag 'LA.QSSI.15.0.r1-13000-qssi.0' into staging/lineage-22.1_merge-LA.QSSI.15.0.r1-13000-qssi.0

LA.QSSI.15.0.r1-13000-qssi.0

# By Sanjay Singh
# Via Linux Build Service Account (1) and Sanjay Singh (1)
* tag 'LA.QSSI.15.0.r1-13000-qssi.0':
  CAMERA: freeze postproc AIDL interface V1

Change-Id: I3ca5621031e014d5e1293f99703e7431c704a526
diff --git a/.gitupstream b/.gitupstream
new file mode 100644
index 0000000..bb4a4b8
--- /dev/null
+++ b/.gitupstream
@@ -0,0 +1 @@
+https://git.codelinaro.org/clo/la/platform/vendor/qcom-opensource/interfaces
diff --git a/Android.bp b/Android.bp
index 251bb87..7aef46b 100644
--- a/Android.bp
+++ b/Android.bp
@@ -1,50 +1,3 @@
 subdirs = [
     "*"
 ]
-hidl_package_root {
-    name: "vendor.qti.hardware.camera",
-    path: "vendor/qcom/opensource/interfaces/camera",
-}
-
-hidl_package_root {
-    name: "vendor.qti.hardware.display",
-    path: "vendor/qcom/opensource/interfaces/display",
-}
-
-hidl_package_root {
-    name: "vendor.qti.hardware.wifi",
-    path: "vendor/qcom/opensource/interfaces/wifi",
-}
-
-hidl_package_root {
-    name: "vendor.display",
-    path: "vendor/qcom/opensource/interfaces/display",
-}
-
-hidl_package_root {
-    name: "vendor.qti.hardware.servicetracker",
-    path: "vendor/qcom/opensource/interfaces/servicetracker",
-}
-
-hidl_package_root {
-    name: "vendor.qti.hardware.bluetooth_audio",
-    path: "vendor/qcom/opensource/interfaces/bluetooth_audio",
-}
-hidl_package_root {
-    name: "vendor.qti.hardware.systemhelper",
-    path: "vendor/qcom/opensource/interfaces/systemhelper",
-}
-
-hidl_package_root {
-    name: "vendor.qti.hardware.bluetooth_dun",
-    path: "vendor/qcom/opensource/interfaces/bluetooth_dun",
-}
-
-hidl_package_root {
-    name: "vendor.qti.hardware.fstman",
-    path: "vendor/qcom/opensource/interfaces/fstman",
-}
-hidl_package_root {
-    name:"vendor.qti.hardware.debugutils",
-    path:"vendor/qcom/opensource/interfaces/debugutils"
-}
diff --git a/bluetooth_audio/Android.bp b/bluetooth_audio/Android.bp
new file mode 100644
index 0000000..1ad26f1
--- /dev/null
+++ b/bluetooth_audio/Android.bp
@@ -0,0 +1,4 @@
+hidl_package_root {
+    name: "vendor.qti.hardware.bluetooth_audio",
+    use_current: true,
+}
diff --git a/bluetooth_dun/Android.bp b/bluetooth_dun/Android.bp
new file mode 100644
index 0000000..3dee575
--- /dev/null
+++ b/bluetooth_dun/Android.bp
@@ -0,0 +1,4 @@
+hidl_package_root {
+    name: "vendor.qti.hardware.bluetooth_dun",
+    use_current: true,
+}
diff --git a/btconfigstore/1.0/Android.bp b/btconfigstore/1.0/Android.bp
new file mode 100644
index 0000000..2c0f21f
--- /dev/null
+++ b/btconfigstore/1.0/Android.bp
@@ -0,0 +1,15 @@
+// This file is autogenerated by hidl-gen -Landroidbp.
+
+hidl_interface {
+    name: "vendor.qti.hardware.btconfigstore@1.0",
+    root: "vendor.qti.hardware.btconfigstore",
+    system_ext_specific: true,
+    srcs: [
+        "types.hal",
+        "IBTConfigStore.hal",
+    ],
+    interfaces: [
+        "android.hidl.base@1.0",
+    ],
+    gen_java: true,
+}
diff --git a/btconfigstore/1.0/IBTConfigStore.hal b/btconfigstore/1.0/IBTConfigStore.hal
new file mode 100644
index 0000000..b5711af
--- /dev/null
+++ b/btconfigstore/1.0/IBTConfigStore.hal
@@ -0,0 +1,7 @@
+package vendor.qti.hardware.btconfigstore@1.0;
+
+interface IBTConfigStore {
+    getVendorProperties(uint32_t prop) generates (Result result, vec<VendorProperty> vendorProperty);
+    setVendorProperty(VendorProperty vendorProperty) generates (Result result);
+    getAddOnFeatures() generates (Result result, AddOnFeaturesList featuresList);
+};
diff --git a/btconfigstore/1.0/types.hal b/btconfigstore/1.0/types.hal
new file mode 100644
index 0000000..8ad0281
--- /dev/null
+++ b/btconfigstore/1.0/types.hal
@@ -0,0 +1,18 @@
+package vendor.qti.hardware.btconfigstore@1.0;
+
+enum Result : int32_t {
+    SUCCESS,
+    UNKNOWN_ERROR,
+};
+
+struct VendorProperty {
+    uint32_t type;
+    string value;
+};
+
+struct AddOnFeaturesList {
+    uint16_t product_id;
+    uint16_t rsp_version;
+    uint8_t feat_mask_len;
+    uint8_t[8] features;
+};
diff --git a/btconfigstore/2.0/Android.bp b/btconfigstore/2.0/Android.bp
new file mode 100644
index 0000000..2dbca58
--- /dev/null
+++ b/btconfigstore/2.0/Android.bp
@@ -0,0 +1,15 @@
+// This file is autogenerated by hidl-gen -Landroidbp.
+
+hidl_interface {
+    name: "vendor.qti.hardware.btconfigstore@2.0",
+    root: "vendor.qti.hardware.btconfigstore",
+    system_ext_specific: true,
+    srcs: [
+        "types.hal",
+        "IBTConfigStore.hal",
+    ],
+    interfaces: [
+        "android.hidl.base@1.0",
+    ],
+    gen_java: true,
+}
diff --git a/btconfigstore/2.0/IBTConfigStore.hal b/btconfigstore/2.0/IBTConfigStore.hal
new file mode 100644
index 0000000..61c97ea
--- /dev/null
+++ b/btconfigstore/2.0/IBTConfigStore.hal
@@ -0,0 +1,8 @@
+package vendor.qti.hardware.btconfigstore@2.0;
+
+interface IBTConfigStore {
+    getVendorProperties(uint32_t prop) generates (Result result, vec<VendorProperty> vendorProperty);
+    setVendorProperty(VendorProperty vendorProperty) generates (Result result);
+    getControllerAddOnFeatures() generates (Result result, ControllerAddOnFeatures featuresList);
+    getHostAddOnFeatures() generates (Result result, HostAddOnFeatures featuresList);
+};
diff --git a/btconfigstore/2.0/types.hal b/btconfigstore/2.0/types.hal
new file mode 100644
index 0000000..23877f9
--- /dev/null
+++ b/btconfigstore/2.0/types.hal
@@ -0,0 +1,23 @@
+package vendor.qti.hardware.btconfigstore@2.0;
+
+enum Result : int32_t {
+    SUCCESS,
+    UNKNOWN_ERROR,
+};
+
+struct VendorProperty {
+    uint32_t type;
+    string value;
+};
+
+struct ControllerAddOnFeatures {
+    uint16_t product_id;
+    uint16_t rsp_version;
+    uint8_t feat_mask_len;
+    uint8_t[8] features;
+};
+
+struct HostAddOnFeatures {
+    uint8_t feat_mask_len;
+    uint8_t[8] features;
+};
diff --git a/btconfigstore/Android.bp b/btconfigstore/Android.bp
new file mode 100644
index 0000000..75db3fe
--- /dev/null
+++ b/btconfigstore/Android.bp
@@ -0,0 +1,4 @@
+hidl_package_root {
+    name: "vendor.qti.hardware.btconfigstore",
+    use_current: true,
+}
diff --git a/btconfigstore/current.txt b/btconfigstore/current.txt
new file mode 100644
index 0000000..bd7dab1
--- /dev/null
+++ b/btconfigstore/current.txt
@@ -0,0 +1,4 @@
+b0d81417ddc5daf549ac2fb63db24a83b4fe2fae71cd38c76f7482d029dd338f vendor.qti.hardware.btconfigstore@1.0::types
+04a894025ae70cb5821de82289b1a13426583696a4d3bf99042d0a25b615c10a vendor.qti.hardware.btconfigstore@1.0::IBTConfigStore
+a307100d75a6a01b259f10a079c736b667cf485e2b35940e35eae965d42bb598 vendor.qti.hardware.btconfigstore@2.0::types
+27abd90a8a0e7b6473166247213d152cf413fa88db2e78826debb0a8864ffa57 vendor.qti.hardware.btconfigstore@2.0::IBTConfigStore
diff --git a/camera/Android.bp b/camera/Android.bp
new file mode 100644
index 0000000..d7cafff
--- /dev/null
+++ b/camera/Android.bp
@@ -0,0 +1,4 @@
+hidl_package_root {
+    name: "vendor.qti.hardware.camera",
+    use_current: true,
+}
diff --git a/capabilityconfigstore/1.0/Android.bp b/capabilityconfigstore/1.0/Android.bp
new file mode 100644
index 0000000..1bfbf02
--- /dev/null
+++ b/capabilityconfigstore/1.0/Android.bp
@@ -0,0 +1,15 @@
+// This file is autogenerated by hidl-gen -Landroidbp.
+
+hidl_interface {
+    name: "vendor.qti.hardware.capabilityconfigstore@1.0",
+    root: "vendor.qti.hardware.capabilityconfigstore",
+    system_ext_specific: true,
+    srcs: [
+        "types.hal",
+        "ICapabilityConfigStore.hal",
+    ],
+    interfaces: [
+        "android.hidl.base@1.0",
+    ],
+    gen_java: true,
+}
diff --git a/capabilityconfigstore/1.0/ICapabilityConfigStore.hal b/capabilityconfigstore/1.0/ICapabilityConfigStore.hal
new file mode 100755
index 0000000..6235404
--- /dev/null
+++ b/capabilityconfigstore/1.0/ICapabilityConfigStore.hal
@@ -0,0 +1,5 @@
+package vendor.qti.hardware.capabilityconfigstore@1.0;
+
+interface ICapabilityConfigStore {
+    getConfig(string area, string key) generates (CommandResult result);
+};
diff --git a/capabilityconfigstore/1.0/types.hal b/capabilityconfigstore/1.0/types.hal
new file mode 100755
index 0000000..ea4f5f6
--- /dev/null
+++ b/capabilityconfigstore/1.0/types.hal
@@ -0,0 +1,11 @@
+package vendor.qti.hardware.capabilityconfigstore@1.0;
+
+enum Result : int32_t {
+    SUCCESS = 0,
+    NOT_FOUND = -1
+};
+
+struct CommandResult {
+    Result result_type;
+    string value;
+};
diff --git a/capabilityconfigstore/Android.bp b/capabilityconfigstore/Android.bp
new file mode 100644
index 0000000..2675fbd
--- /dev/null
+++ b/capabilityconfigstore/Android.bp
@@ -0,0 +1,4 @@
+hidl_package_root {
+    name: "vendor.qti.hardware.capabilityconfigstore",
+    use_current: true,
+}
diff --git a/capabilityconfigstore/current.txt b/capabilityconfigstore/current.txt
new file mode 100644
index 0000000..d1d31e3
--- /dev/null
+++ b/capabilityconfigstore/current.txt
@@ -0,0 +1,2 @@
+fcb328dadfd824969db78c07517d7f551d1e61da9513e4488a75be0e7b5400b6 vendor.qti.hardware.capabilityconfigstore@1.0::types
+b9b280c383d0928b36e5f9afb0392e6671779fdced1515af13ad359f5edcf9e8 vendor.qti.hardware.capabilityconfigstore@1.0::ICapabilityConfigStore
diff --git a/debugutils/Android.bp b/debugutils/Android.bp
new file mode 100644
index 0000000..5a1386e
--- /dev/null
+++ b/debugutils/Android.bp
@@ -0,0 +1,4 @@
+hidl_package_root {
+    name: "vendor.qti.hardware.debugutils",
+    use_current: true,
+}
diff --git a/display/Android.bp b/display/Android.bp
new file mode 100644
index 0000000..72b9cb9
--- /dev/null
+++ b/display/Android.bp
@@ -0,0 +1,9 @@
+hidl_package_root {
+    name: "vendor.qti.hardware.display",
+    use_current: true,
+}
+
+hidl_package_root {
+    name: "vendor.display",
+    use_current: true,
+}
diff --git a/display/composer/3.2/Android.bp b/display/composer/3.2/Android.bp
new file mode 100644
index 0000000..0446fb4
--- /dev/null
+++ b/display/composer/3.2/Android.bp
@@ -0,0 +1,24 @@
+// This file is autogenerated by hidl-gen -Landroidbp.
+
+hidl_interface {
+    name: "vendor.qti.hardware.display.composer@3.2",
+    root: "vendor.qti.hardware.display",
+    system_ext_specific: true,
+    srcs: [
+        "IQtiComposer.hal",
+        "IQtiComposerClient.hal",
+    ],
+    interfaces: [
+        "android.hardware.graphics.common@1.0",
+        "android.hardware.graphics.common@1.1",
+        "android.hardware.graphics.common@1.2",
+        "android.hardware.graphics.composer@2.1",
+        "android.hardware.graphics.composer@2.2",
+        "android.hardware.graphics.composer@2.3",
+        "android.hardware.graphics.composer@2.4",
+        "vendor.qti.hardware.display.composer@3.0",
+        "vendor.qti.hardware.display.composer@3.1",
+        "android.hidl.base@1.0",
+    ],
+    gen_java: false,
+}
diff --git a/display/composer/3.2/IQtiComposer.hal b/display/composer/3.2/IQtiComposer.hal
new file mode 100644
index 0000000..f34f86c
--- /dev/null
+++ b/display/composer/3.2/IQtiComposer.hal
@@ -0,0 +1,24 @@
+/* Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ * SPDX-License-Identifier: BSD-3-Clause-Clear
+*/
+
+package vendor.qti.hardware.display.composer@3.2;
+
+import @3.1::IQtiComposer;
+import IQtiComposerClient;
+import android.hardware.graphics.composer@2.1::Error;
+
+interface IQtiComposer extends @3.1::IQtiComposer {
+      /**
+     * Creates a v3.2 client of the composer.
+     *
+     * @return error is NONE upon success. Otherwise,
+     *         NO_RESOURCES when the client could not be created.
+     * @return client is the newly created client.
+     */
+    @entry
+    @callflow(next="*")
+    createClient_3_2() generates (Error error, IQtiComposerClient client);
+
+};
+
diff --git a/display/composer/3.2/IQtiComposerClient.hal b/display/composer/3.2/IQtiComposerClient.hal
new file mode 100644
index 0000000..156cc7b
--- /dev/null
+++ b/display/composer/3.2/IQtiComposerClient.hal
@@ -0,0 +1,23 @@
+/*
+ * Copyright (c) 2022 Qualcomm Innovation Center, Inc. All rights reserved.
+ * SPDX-License-Identifier: BSD-3-Clause-Clear
+*/
+
+
+package vendor.qti.hardware.display.composer@3.2;
+
+import @3.1::IQtiComposerClient;
+interface IQtiComposerClient extends @3.1::IQtiComposerClient {
+
+    enum Command : @3.1::IQtiComposerClient.Command {
+        /**
+         * SET_SINGLE_BUFFER_MODE has this pseudo prototype
+         * setSingleBufferMode(bool isAutoRefresh);
+         */
+
+        SET_SINGLE_BUFFER_MODE_3_2 = 0x805 << IQtiComposerClient.Command:OPCODE_SHIFT,
+    };
+
+
+};
+
diff --git a/display/composer/3.2/hidl_gen_version b/display/composer/3.2/hidl_gen_version
new file mode 100644
index 0000000..e4ca12c
--- /dev/null
+++ b/display/composer/3.2/hidl_gen_version
@@ -0,0 +1 @@
+version=3.2
diff --git a/display/current.txt b/display/current.txt
index 4115e18..e9a5789 100644
--- a/display/current.txt
+++ b/display/current.txt
@@ -113,6 +113,11 @@
 fa035077927f2dff68d2b1ad6e6379822d29364999aa3fd70c5d2ffe93707d9b vendor.qti.hardware.display.demura@1.0::IDemuraFileFinder
 e609d77b00158060ca222ccd13e0ba8019a42336e3b6a6a32c6396f7b7ea2077 vendor.qti.hardware.display.composer@3.1::IQtiComposer
 ee6870d17e33bf8e2365165637b75559ceffda57770b1a35f3a9a8bbf3769266 vendor.qti.hardware.display.composer@3.1::IQtiComposerClient
+dcd4f8ce2125de8f3e4f7fb790bc10b39c0b1eeabc464e89acda557d9003c0ee vendor.qti.hardware.display.composer@3.2::IQtiComposer
+cf55579bd148bc2dc71274109cfed27bd378020e9fe2444500d6691a01bdf537 vendor.qti.hardware.display.composer@3.2::IQtiComposerClient
+
+
+
 550322847ebc31fd2c13a34aefa1f75df1c879cb423422831d5a5f35ba77aca4 vendor.qti.hardware.display.demura@2.0::IDemuraFileFinder
 
 #HAL released in Android T
diff --git a/fstman/Android.bp b/fstman/Android.bp
new file mode 100644
index 0000000..8a89f0f
--- /dev/null
+++ b/fstman/Android.bp
@@ -0,0 +1,4 @@
+hidl_package_root {
+    name: "vendor.qti.hardware.fstman",
+    use_current: true,
+}
diff --git a/perf/1.0/Android.bp b/perf/1.0/Android.bp
new file mode 100644
index 0000000..15cd335
--- /dev/null
+++ b/perf/1.0/Android.bp
@@ -0,0 +1,14 @@
+// This file is autogenerated by hidl-gen -Landroidbp.
+
+hidl_interface {
+    name: "vendor.qti.hardware.perf@1.0",
+    root: "vendor.qti.hardware.perf",
+    system_ext_specific: true,
+    srcs: [
+        "IPerf.hal",
+    ],
+    interfaces: [
+        "android.hidl.base@1.0",
+    ],
+    gen_java: true,
+}
diff --git a/perf/1.0/IPerf.hal b/perf/1.0/IPerf.hal
new file mode 100644
index 0000000..0e7b530
--- /dev/null
+++ b/perf/1.0/IPerf.hal
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2021 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package vendor.qti.hardware.perf@1.0;
+
+interface IPerf {
+    perfLockAcquire(int32_t pl_handle, uint32_t duration, vec<int32_t> boostsList, int32_t reserved) generates (int32_t ret);
+    perfLockRelease(int32_t pl_handle, int32_t reserved);
+    perfHint(uint32_t hint, string userDataStr, int32_t userData1, int32_t userData2, int32_t reserved) generates (int32_t ret);
+    perfProfile(int32_t pl_handle, int32_t profile, int32_t reserved) generates (int32_t ret);
+    perfLockCmd(int32_t cmd, int32_t reserved);
+};
diff --git a/perf/2.0/Android.bp b/perf/2.0/Android.bp
new file mode 100644
index 0000000..6c1bab3
--- /dev/null
+++ b/perf/2.0/Android.bp
@@ -0,0 +1,14 @@
+// This file is autogenerated by hidl-gen -Landroidbp.
+
+hidl_interface {
+    name: "vendor.qti.hardware.perf@2.0",
+    root: "vendor.qti.hardware.perf",
+    system_ext_specific: true,
+    srcs: [
+        "IPerf.hal",
+    ],
+    interfaces: [
+        "android.hidl.base@1.0",
+    ],
+    gen_java: true,
+}
diff --git a/perf/2.0/IPerf.hal b/perf/2.0/IPerf.hal
new file mode 100644
index 0000000..1faf0cd
--- /dev/null
+++ b/perf/2.0/IPerf.hal
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2021 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package vendor.qti.hardware.perf@2.0;
+
+interface IPerf {
+    perfLockAcquire(int32_t pl_handle, uint32_t duration, vec<int32_t> boostsList, vec<int32_t> reserved) generates (int32_t ret);
+    perfLockRelease(int32_t pl_handle, vec<int32_t> reserved);
+    perfHint(uint32_t hint, string userDataStr, int32_t userData1, int32_t userData2, vec<int32_t> reserved) generates (int32_t ret);
+    perfProfile(int32_t pl_handle, int32_t profile, int32_t reserved) generates (int32_t ret);
+    perfLockCmd(int32_t cmd, int32_t reserved);
+    perfGetProp(string propName, string defaultVal) generates (string ret);
+    perfSetProp(string propName, string value) generates (int32_t ret);
+    perfAsyncRequest(int32_t cmd, string userDataStr, vec<int32_t> params) generates (int32_t ret);
+    perfSyncRequest(int32_t cmd, string userDataStr, vec<int32_t> params) generates (string ret);
+};
diff --git a/perf/2.1/Android.bp b/perf/2.1/Android.bp
new file mode 100644
index 0000000..e3de373
--- /dev/null
+++ b/perf/2.1/Android.bp
@@ -0,0 +1,16 @@
+// This file is autogenerated by hidl-gen -Landroidbp.
+
+hidl_interface {
+    name: "vendor.qti.hardware.perf@2.1",
+    root: "vendor.qti.hardware.perf",
+    system_ext_specific: true,
+    srcs: [
+        "IPerf.hal",
+        "IPerfCallback.hal",
+    ],
+    interfaces: [
+        "android.hidl.base@1.0",
+        "vendor.qti.hardware.perf@2.0",
+    ],
+    gen_java: true,
+}
diff --git a/perf/2.1/IPerf.hal b/perf/2.1/IPerf.hal
new file mode 100644
index 0000000..7275334
--- /dev/null
+++ b/perf/2.1/IPerf.hal
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2021 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package vendor.qti.hardware.perf@2.1;
+
+import @2.0::IPerf;
+import IPerfCallback;
+
+interface IPerf extends @2.0::IPerf {
+    perfCallbackRegister(IPerfCallback callback, int32_t clientId) generates (int32_t ret);
+    perfCallbackDeregister(IPerfCallback callback, int32_t clientId) generates (int32_t ret);
+};
diff --git a/perf/2.1/IPerfCallback.hal b/perf/2.1/IPerfCallback.hal
new file mode 100644
index 0000000..e7bf260
--- /dev/null
+++ b/perf/2.1/IPerfCallback.hal
@@ -0,0 +1,21 @@
+/*
+ * Copyright (C) 2021 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package vendor.qti.hardware.perf@2.1;
+
+interface IPerfCallback {
+    oneway notifyCallback (uint32_t hint, string userDataStr, int32_t userData1, int32_t userData2, vec<int32_t> reserved);
+};
diff --git a/perf/2.2/Android.bp b/perf/2.2/Android.bp
new file mode 100644
index 0000000..8174e35
--- /dev/null
+++ b/perf/2.2/Android.bp
@@ -0,0 +1,16 @@
+// This file is autogenerated by hidl-gen -Landroidbp.
+
+hidl_interface {
+    name: "vendor.qti.hardware.perf@2.2",
+    root: "vendor.qti.hardware.perf",
+    system_ext_specific: true,
+    srcs: [
+        "IPerf.hal",
+    ],
+    interfaces: [
+        "android.hidl.base@1.0",
+        "vendor.qti.hardware.perf@2.0",
+        "vendor.qti.hardware.perf@2.1",
+    ],
+    gen_java: true,
+}
diff --git a/perf/2.2/IPerf.hal b/perf/2.2/IPerf.hal
new file mode 100644
index 0000000..bd648ff
--- /dev/null
+++ b/perf/2.2/IPerf.hal
@@ -0,0 +1,25 @@
+/*
+ * Copyright (C) 2021 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package vendor.qti.hardware.perf@2.2;
+
+import @2.1::IPerf;
+
+interface IPerf extends @2.1::IPerf {
+    perfLockAcqAndRelease(int32_t pl_handle, uint32_t duration, vec<int32_t> boostsList, vec<int32_t> reserved) generates (int32_t ret);
+    oneway perfEvent(uint32_t eventId, string userDataStr, vec<int32_t> reserved);
+    perfGetFeedback(uint32_t featureId, string userDataStr, vec<int32_t> reserved) generates (int32_t ret);
+};
diff --git a/perf/2.3/Android.bp b/perf/2.3/Android.bp
new file mode 100644
index 0000000..fe41cd8
--- /dev/null
+++ b/perf/2.3/Android.bp
@@ -0,0 +1,17 @@
+// This file is autogenerated by hidl-gen -Landroidbp.
+
+hidl_interface {
+    name: "vendor.qti.hardware.perf@2.3",
+    root: "vendor.qti.hardware.perf",
+    system_ext_specific: true,
+    srcs: [
+        "IPerf.hal",
+    ],
+    interfaces: [
+        "android.hidl.base@1.0",
+        "vendor.qti.hardware.perf@2.0",
+        "vendor.qti.hardware.perf@2.1",
+        "vendor.qti.hardware.perf@2.2",
+    ],
+    gen_java: true,
+}
diff --git a/perf/2.3/IPerf.hal b/perf/2.3/IPerf.hal
new file mode 100644
index 0000000..51f4191
--- /dev/null
+++ b/perf/2.3/IPerf.hal
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2022 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package vendor.qti.hardware.perf@2.3;
+
+import @2.2::IPerf;
+
+interface IPerf extends @2.2::IPerf {
+    perfHintAcqRel(int32_t pl_handle, uint32_t hint, string pkg_name, int32_t duration, int32_t hint_type, vec<int32_t> reserved) generates (int32_t ret);
+    perfHintRenew(int32_t pl_handle, uint32_t hint, string pkg_name, int32_t duration, int32_t hint_type, vec<int32_t> reserved) generates (int32_t ret);
+};
diff --git a/perf/Android.bp b/perf/Android.bp
new file mode 100644
index 0000000..335ba0f
--- /dev/null
+++ b/perf/Android.bp
@@ -0,0 +1,4 @@
+hidl_package_root {
+    name: "vendor.qti.hardware.perf",
+    use_current: true,
+}
diff --git a/perf/current.txt b/perf/current.txt
new file mode 100644
index 0000000..f924c22
--- /dev/null
+++ b/perf/current.txt
@@ -0,0 +1,6 @@
+3b62e5f205de632f6c1d6b46d01a2945b5a855ec4a98247515ce8d14b51a4fa3 vendor.qti.hardware.perf@1.0::IPerf
+517008020b188864935535fa5c9ab30c686d01a4e7559659658d61b78fcd7cd1 vendor.qti.hardware.perf@2.0::IPerf
+429bbf6c78faecc882e6d39ea05329be9519b3ae547448ec3cc5c2393b918740 vendor.qti.hardware.perf@2.1::IPerf
+d5308ed1c730c17c0ae57de676255eb68f48846b5e976fccc1b046755e015a2e vendor.qti.hardware.perf@2.1::IPerfCallback
+dd76694de5ef346703b450dc96e6c96e274caacb52fba60ad52cb69352467040 vendor.qti.hardware.perf@2.2::IPerf
+ca3830177c6813da7219ffa8fd4bf2ffc161f9d10bcbb08b334a93838974f852 vendor.qti.hardware.perf@2.3::IPerf
diff --git a/servicetracker/Android.bp b/servicetracker/Android.bp
new file mode 100644
index 0000000..0519361
--- /dev/null
+++ b/servicetracker/Android.bp
@@ -0,0 +1,4 @@
+hidl_package_root {
+    name: "vendor.qti.hardware.servicetracker",
+    use_current: true,
+}
diff --git a/systemhelper/Android.bp b/systemhelper/Android.bp
new file mode 100644
index 0000000..19c539c
--- /dev/null
+++ b/systemhelper/Android.bp
@@ -0,0 +1,4 @@
+hidl_package_root {
+    name: "vendor.qti.hardware.systemhelper",
+    use_current: true,
+}
diff --git a/systemhelper/current.txt b/systemhelper/current.txt
new file mode 100644
index 0000000..ab632c9
--- /dev/null
+++ b/systemhelper/current.txt
@@ -0,0 +1,4 @@
+0edcd9296043bf6c11d9fa63573c16da2ab2c89459f9f48b7c4125b8c67b311c vendor.qti.hardware.systemhelper@1.0::types
+40cd1de76b9d3ca23f4c8197b1da75c818fdf891ecc56ed04220f6ca4645b1b8 vendor.qti.hardware.systemhelper@1.0::ISystemEvent
+a75908e4d4f357ac281f47e16312e05d0bcfb1a11ca42ce20306cf2170cec0af vendor.qti.hardware.systemhelper@1.0::ISystemEventCallback
+7b0def6f56ef8b7a02923ea26def3101002594cfdc8209baf66743ac408171c0 vendor.qti.hardware.systemhelper@1.0::ISystemResource
diff --git a/umd/1.0/Android.bp b/umd/1.0/Android.bp
new file mode 100644
index 0000000..0347769
--- /dev/null
+++ b/umd/1.0/Android.bp
@@ -0,0 +1,17 @@
+// This file is autogenerated by hidl-gen -Landroidbp.
+
+hidl_interface {
+    name: "vendor.qti.hardware.umd@1.0",
+    root: "vendor.qti.hardware.umd",
+    product_specific: true,
+    srcs: [
+        "types.hal",
+        "IUMDAdaptor.hal",
+        "IUMDAdaptorCallback.hal",
+    ],
+    interfaces: [
+        "android.hidl.base@1.0",
+    ],
+    gen_java: true,
+}
+
diff --git a/umd/1.0/IUMDAdaptor.hal b/umd/1.0/IUMDAdaptor.hal
new file mode 100644
index 0000000..d452af7
--- /dev/null
+++ b/umd/1.0/IUMDAdaptor.hal
@@ -0,0 +1,17 @@
+/*
+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
+ * SPDX-License-Identifier: BSD-3-Clause-Clear
+ */
+
+package vendor.qti.hardware.umd@1.0;
+
+import IUMDAdaptorCallback;
+
+interface IUMDAdaptor {
+  initUVC() generates (int32_t result);
+  deInitUVC();
+  initUAC(IUMDAdaptorCallback callback) generates (int32_t result);
+  deInitUAC();
+  submitAudioBuffer(vec<uint8_t> data) generates (int32_t result);
+  setAudioBufferSize(uint64_t size);
+};
\ No newline at end of file
diff --git a/umd/1.0/IUMDAdaptorCallback.hal b/umd/1.0/IUMDAdaptorCallback.hal
new file mode 100644
index 0000000..e6d53f7
--- /dev/null
+++ b/umd/1.0/IUMDAdaptorCallback.hal
@@ -0,0 +1,11 @@
+/*
+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
+ * SPDX-License-Identifier: BSD-3-Clause-Clear
+ */
+
+package vendor.qti.hardware.umd@1.0;
+
+interface IUMDAdaptorCallback {
+  onAudioBufferReceive(vec<uint8_t> data) generates (int32_t result);
+  onAudioUevent(AudioStatus status);
+};
\ No newline at end of file
diff --git a/umd/1.0/types.hal b/umd/1.0/types.hal
new file mode 100644
index 0000000..8407e89
--- /dev/null
+++ b/umd/1.0/types.hal
@@ -0,0 +1,14 @@
+/*
+ * Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
+ * SPDX-License-Identifier: BSD-3-Clause-Clear
+ */
+
+package vendor.qti.hardware.umd@1.0;
+
+enum AudioStatus : int32_t {
+  AUDIO_STATE_INVALID,
+  AUDIO_STATE_PLAYBACK,
+  AUDIO_STATE_CAPTURE,
+  AUDIO_STATE_PLAYBACK_CAPTURE,
+  AUDIO_STATE_PAUSED
+};
\ No newline at end of file
diff --git a/umd/Android.bp b/umd/Android.bp
new file mode 100644
index 0000000..026474d
--- /dev/null
+++ b/umd/Android.bp
@@ -0,0 +1,4 @@
+hidl_package_root {
+    name: "vendor.qti.hardware.umd",
+    use_current: true,
+}
diff --git a/umd/current.txt b/umd/current.txt
new file mode 100644
index 0000000..57a8e88
--- /dev/null
+++ b/umd/current.txt
@@ -0,0 +1,7 @@
+#Copyright (c) 2023 Qualcomm Innovation Center, Inc. All rights reserved.
+#SPDX-License-Identifier: BSD-3-Clause-Clear
+
+#HAL released in Android Q
+0ea54fffbc009eb09ad8eb56832f97192fcc49551672b7d4e1c60f5baf5f496b vendor.qti.hardware.umd@1.0::types
+28265d6a58d414bc244d0b0e93b88660b2f9bf12da48361a2f54d54120fb2e96 vendor.qti.hardware.umd@1.0::IUMDAdaptor
+ad5906c3bcf8b4ced9f51e804ba345f2c0831217ac45188f11057507e7dbd692 vendor.qti.hardware.umd@1.0::IUMDAdaptorCallback
diff --git a/vendor_hal_makefile_generator.sh b/vendor_hal_makefile_generator.sh
new file mode 100755
index 0000000..8a01731
--- /dev/null
+++ b/vendor_hal_makefile_generator.sh
@@ -0,0 +1,161 @@
+#!/bin/bash
+# Copyright (c) 2018, The Linux Foundation. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#     * Redistributions of source code must retain the above copyright
+#       notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+#       copyright notice, this list of conditions and the following
+#       disclaimer in the documentation and/or other materials provided
+#       with the distribution.
+#     * Neither the name of The Linux Foundation nor the names of its
+#       contributors may be used to endorse or promote products derived
+#       from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
+# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
+# ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
+# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
+# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE US
+
+# This file is used to generate blueprint/makefiles for the vendor hals
+
+# Sanitize host tools
+LS=`which ls`
+LS=${LS:-ls}
+MV=`which mv`
+MV=${MV:-mv}
+CAT=`which cat`
+CAT=${CAT:-cat}
+CUT=`which cut`
+CUT=${CUT:-cut}
+REV=`which rev`
+REV=${REV:-rev}
+SED=`which sed`
+SED=${SED:-sed}
+DIFF=`which diff`
+DIFF=${DIFF:-diff}
+ECHO=`which echo`
+ECHO=${ECHO:-echo}
+FIND=`which find`
+FIND=${FIND:-find}
+GREP=`which grep`
+GREP=${GREP:-grep}
+SORT=`which sort`
+SORT=${SORT:-sort}
+TOUCH=`which touch`
+TOUCH=${TOUCH:-touch}
+
+function generate_make_files() {
+    local dir_path="$ANDROID_BUILD_TOP/$1"
+    pushd $dir_path > /dev/null
+
+    # Due to same package name in different folders we need to detect
+    # opensource case so that it can be handled.
+    local flag_opensource=false
+    if ${ECHO} "$dir_path" | ${GREP} "opensource" > /dev/null;then
+        flag_opensource=true
+    fi
+
+    # Search for all HAL files in given dir.
+    local halFilePaths=`${ECHO} $(${FIND} -iname "*.hal" | ${SORT})`
+
+    #Store package name in below array to create a unique set so that we trigger
+    #hidl-gen only once  for a given package.
+    package_collection=()
+
+    #Iterate over identified .hal Paths
+    local prev_path=""
+    for file in $halFilePaths; do
+        local hal_path=`${ECHO} "$file" | ${REV} | ${CUT} -d"/" -f2- | ${REV}`
+        if [ -e "$hal_path/Android.bp" ] && [ ! -e "$hal_path/.hidl-autogen" ]; then
+            if [ ! "$hal_path" = "$prev_path" ]; then
+                ${ECHO} "Skipping hidl-gen on $1/$hal_path as Android.bp is not compile-time generated"
+                prev_path="$hal_path"
+            fi
+            continue;
+        fi
+        prev_path="$hal_path"
+
+        # Find out package name from HAL file
+        local hal_package=`${ECHO} $(${CAT} $file | ${GREP} -E -m 1 "^package ") | ${CUT} -d' ' -f2`
+
+        # Get rid of extra delimter
+        hal_package=${hal_package%?}
+
+        #Check if we already executed hidl-gen for a given package
+        if ${ECHO} "${package_collection[@]}" | ${GREP} -w $hal_package > /dev/null; then
+            continue;
+        else
+            package_collection+=($hal_package)
+            local delimeter=`${ECHO} "$file" | ${CUT} -d'/' -f2`
+            local root=`${ECHO} "$hal_package" | ${SED} "s/$delimeter/#/g" | ${CUT} -d'#' -f1`
+            #Identify Package Root
+            root=${root%?}
+            #Create root arguments for hidl-command
+            local root_arguments="-r $root:$1 -r  $2"
+        fi
+
+        local hal_path2=$1;
+        #Handling for opensource HAL to solve package name conflict
+        if [ "$flag_opensource" = true ]; then
+            root="$root.$delimeter"
+            hal_path2="$hal_path2/$delimeter"
+        fi
+
+        local root_arguments="-r $root:$hal_path2 -r  $2"
+
+        update_check=0
+        if [ -e "$hal_path/Android.bp" ]; then
+            ${MV} $hal_path/Android.bp $hal_path/.hidl-autogen
+            update_check=1
+        fi
+        ${TOUCH} $hal_path/.hidl-autogen
+
+        ${ECHO} -n "Running hidl-gen on $hal_package: "
+        hidl-gen -Landroidbp $root_arguments $hal_package;
+        rc=$?; if [[ $rc != 0 ]]; then return $rc; fi
+
+        if [ "$update_check" -eq 1 ]; then
+            ${DIFF} -q $hal_path/Android.bp $hal_path/.hidl-autogen > /dev/null
+            if [ $? -eq 0 ]; then
+                ${ECHO} "no changes"
+                ${MV} $hal_path/.hidl-autogen $hal_path/Android.bp
+            else
+                ${ECHO} "updated"
+            fi
+        else
+            ${ECHO} "created"
+        fi
+        ${TOUCH} $hal_path/.hidl-autogen
+    done
+    popd > /dev/null
+}
+
+function start_script_for_interfaces {
+    #Find interfaces in workspace
+    local interfaces=$(${LS} -d ${ANDROID_BUILD_TOP}/vendor/qcom/*/interfaces)
+
+    ${ECHO} "HIDL interfaces:  Scanning for changes..."
+    for interface in $interfaces; do
+        #generate interfaces
+        local relative_interface=${interface#${ANDROID_BUILD_TOP}/}
+        generate_make_files $relative_interface "android.hidl:system/libhidl/transport"
+        if [ $? -ne 0 ] ; then
+           ${ECHO} "HIDL interfaces: Update Failed"
+           return 1;
+        fi
+    done
+    ${ECHO} "HIDL interfaces:  Update complete."
+}
+
+#Start script for interfaces
+start_script_for_interfaces
+
diff --git a/wifi/Android.bp b/wifi/Android.bp
new file mode 100644
index 0000000..3bd94af
--- /dev/null
+++ b/wifi/Android.bp
@@ -0,0 +1,4 @@
+hidl_package_root {
+    name: "vendor.qti.hardware.wifi",
+    use_current: true,
+}