summaryrefslogtreecommitdiff
path: root/audio
diff options
context:
space:
mode:
Diffstat (limited to 'audio')
-rw-r--r--audio/common/all-versions/default/service/Android.bp37
-rw-r--r--audio/common/all-versions/default/service/android.hardware.audio.service_64.rc9
-rw-r--r--audio/common/all-versions/default/service/service.cpp15
3 files changed, 61 insertions, 0 deletions
diff --git a/audio/common/all-versions/default/service/Android.bp b/audio/common/all-versions/default/service/Android.bp
index 1bd6abeb47..863c41b41f 100644
--- a/audio/common/all-versions/default/service/Android.bp
+++ b/audio/common/all-versions/default/service/Android.bp
@@ -40,7 +40,39 @@ cc_binary {
init_rc: ["android.hardware.audio.service.rc"],
relative_install_path: "hw",
vendor: true,
+ srcs: ["service.cpp"],
+
+ cflags: [
+ "-Wall",
+ "-Wextra",
+ "-Werror",
+ ],
+
+ shared_libs: [
+ "libcutils",
+ "libbinder",
+ "libhwbinder",
+ "libhidlbase",
+ "liblog",
+ "libutils",
+ "libhardware",
+ ],
+ arch : {
+ arm : {
+ cflags: [
+ "-DARCH_ARM_32",
+ ]
+ }
+ },
+}
+cc_binary {
+ name: "android.hardware.audio.service_64",
+
+ init_rc: ["android.hardware.audio.service_64.rc"],
+ relative_install_path: "hw",
+ vendor: true,
+ compile_multilib: "64",
srcs: ["service.cpp"],
cflags: [
@@ -52,6 +84,7 @@ cc_binary {
shared_libs: [
"libcutils",
"libbinder",
+ "libhwbinder",
"libhidlbase",
"liblog",
"libutils",
@@ -68,3 +101,7 @@ phony {
name: "android.hardware.audio@2.0-service",
required: ["android.hardware.audio.service"],
}
+phony {
+ name: "android.hardware.audio@2.0-service_64",
+ required: ["android.hardware.audio.service_64"],
+}
diff --git a/audio/common/all-versions/default/service/android.hardware.audio.service_64.rc b/audio/common/all-versions/default/service/android.hardware.audio.service_64.rc
new file mode 100644
index 0000000000..5db2fafe31
--- /dev/null
+++ b/audio/common/all-versions/default/service/android.hardware.audio.service_64.rc
@@ -0,0 +1,9 @@
+service vendor.audio-hal /vendor/bin/hw/android.hardware.audio.service_64
+ class hal
+ user audioserver
+ # media gid needed for /dev/fm (radio) and for /data/misc/media (tee)
+ group audio camera drmrpc inet media mediadrm net_bt net_bt_admin net_bw_acct wakelock context_hub
+ capabilities BLOCK_SUSPEND
+ ioprio rt 4
+ task_profiles ProcessCapacityHigh HighPerformance
+ onrestart restart audioserver
diff --git a/audio/common/all-versions/default/service/service.cpp b/audio/common/all-versions/default/service/service.cpp
index 89585b0620..2b1c1b703b 100644
--- a/audio/common/all-versions/default/service/service.cpp
+++ b/audio/common/all-versions/default/service/service.cpp
@@ -31,6 +31,18 @@ using android::OK;
using InterfacesList = std::vector<std::string>;
+#ifdef ARCH_ARM_32
+//default h/w binder memsize is 1 MB
+#define DEFAULT_HW_BINDER_MEM_SIZE_KB 1024
+
+size_t getHWBinderMmapSize(){
+ int32_t value = DEFAULT_HW_BINDER_MEM_SIZE_KB;
+ value = property_get_int32("persist.vendor.audio.hw.binder.size_kbyte", value);
+ ALOGD("Init hw binder with mem size = %d ", value);
+ return 1024 * value;
+}
+#endif
+
/** Try to register the provided factories in the provided order.
* If any registers successfully, do not register any other and return true.
* If all fail, return false.
@@ -47,6 +59,9 @@ static bool registerPassthroughServiceImplementations(Iter first, Iter last) {
int main(int /* argc */, char* /* argv */ []) {
signal(SIGPIPE, SIG_IGN);
+#ifdef ARCH_ARM_32
+ android::hardware::ProcessState::initWithMmapSize(getHWBinderMmapSize());
+#endif
::android::ProcessState::initWithDriver("/dev/vndbinder");
// start a threadpool for vndbinder interactions