diff options
Diffstat (limited to 'audio/common')
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 |