diff options
author | Vishal Mahaveer | 2014-02-04 16:21:24 -0600 |
---|---|---|
committer | Vishal Mahaveer | 2014-02-04 16:21:24 -0600 |
commit | 6645f3bf9ecb6bcd67ea245856ab7771c77f0a45 (patch) | |
tree | dff2a3d9753946e122eb5c124d7de6e147bfa51b | |
parent | 66486f2f3224935fab6dddeac1521a294804ccf4 (diff) | |
parent | fcbbe5362b9622888add119f56afd7371b3ad6cb (diff) | |
download | device-ti-jacinto6evm-6645f3bf9ecb6bcd67ea245856ab7771c77f0a45.tar.gz device-ti-jacinto6evm-6645f3bf9ecb6bcd67ea245856ab7771c77f0a45.tar.xz device-ti-jacinto6evm-6645f3bf9ecb6bcd67ea245856ab7771c77f0a45.zip |
Merge remote-tracking branch 'omap-mirror/d-jb-mr2.0-release' into d-kitkat-mr1-release
Conflicts:
init.jacinto6evmboard.rc
Change-Id: I4c59baf047a1cf2a681aea4b8ce246d95fdb6f13
Signed-off-by: Vishal Mahaveer <vishalm@ti.com>
-rw-r--r-- | audio/multizone/Android.mk | 1 | ||||
-rw-r--r-- | audio/multizone/AudioHw.cpp | 115 | ||||
-rw-r--r-- | audio/multizone/AudioHw.h | 2 | ||||
-rw-r--r-- | audio/multizone/audio_policy.conf | 4 | ||||
-rw-r--r-- | audio/multizone/dra7evm_paths.xml | 19 | ||||
-rw-r--r-- | device.mk | 7 | ||||
-rw-r--r-- | init.jacinto6evmboard.rc | 9 | ||||
-rw-r--r-- | ueventd.jacinto6evmboard.rc | 5 |
8 files changed, 104 insertions, 58 deletions
diff --git a/audio/multizone/Android.mk b/audio/multizone/Android.mk index 46ec26a..061e20f 100644 --- a/audio/multizone/Android.mk +++ b/audio/multizone/Android.mk | |||
@@ -48,6 +48,7 @@ LOCAL_C_INCLUDES += \ | |||
48 | LOCAL_SHARED_LIBRARIES := \ | 48 | LOCAL_SHARED_LIBRARIES := \ |
49 | liblog \ | 49 | liblog \ |
50 | libtiaudioutils \ | 50 | libtiaudioutils \ |
51 | libcutils \ | ||
51 | libutils | 52 | libutils |
52 | 53 | ||
53 | LOCAL_SHARED_LIBRARIES += libstlport | 54 | LOCAL_SHARED_LIBRARIES += libstlport |
diff --git a/audio/multizone/AudioHw.cpp b/audio/multizone/AudioHw.cpp index f25bb43..38d06ed 100644 --- a/audio/multizone/AudioHw.cpp +++ b/audio/multizone/AudioHw.cpp | |||
@@ -24,7 +24,7 @@ | |||
24 | #endif | 24 | #endif |
25 | 25 | ||
26 | #include <cutils/log.h> | 26 | #include <cutils/log.h> |
27 | 27 | #include <cutils/properties.h> | |
28 | #include <media/AudioParameter.h> | 28 | #include <media/AudioParameter.h> |
29 | 29 | ||
30 | #include <AudioHw.h> | 30 | #include <AudioHw.h> |
@@ -393,10 +393,9 @@ size_t AudioStreamIn::getBufferSize() const | |||
393 | { | 393 | { |
394 | size_t size; | 394 | size_t size; |
395 | 395 | ||
396 | /* Take resampling ratio into account and align to the nearest | 396 | /* Take resampling ratio into account */ |
397 | * 16 frames as required by the AudioFlinger */ | ||
398 | size = (mParams.frameCount * mParams.sampleRate) / mReader->getParams().sampleRate; | 397 | size = (mParams.frameCount * mParams.sampleRate) / mReader->getParams().sampleRate; |
399 | size = ((size + 15) & ~15) * mParams.frameSize(); | 398 | size = size * mParams.frameSize(); |
400 | 399 | ||
401 | ALOGVV("AudioStreamIn: getBufferSize() %u bytes", size); | 400 | ALOGVV("AudioStreamIn: getBufferSize() %u bytes", size); |
402 | 401 | ||
@@ -427,8 +426,6 @@ int AudioStreamIn::setFormat(audio_format_t format) | |||
427 | /* must be called with mLock */ | 426 | /* must be called with mLock */ |
428 | int AudioStreamIn::resume() | 427 | int AudioStreamIn::resume() |
429 | { | 428 | { |
430 | mHwDev->mMixer.setPath(mDevices, true); | ||
431 | |||
432 | int ret = mReader->registerStream(mStream); | 429 | int ret = mReader->registerStream(mStream); |
433 | if (ret) { | 430 | if (ret) { |
434 | ALOGE("AudioStreamIn: failed to register Dest %d", ret); | 431 | ALOGE("AudioStreamIn: failed to register Dest %d", ret); |
@@ -449,7 +446,6 @@ void AudioStreamIn::idle() | |||
449 | { | 446 | { |
450 | mStream->stop(); | 447 | mStream->stop(); |
451 | mReader->unregisterStream(mStream); | 448 | mReader->unregisterStream(mStream); |
452 | mHwDev->mMixer.setPath(mDevices, false); | ||
453 | } | 449 | } |
454 | 450 | ||
455 | int AudioStreamIn::standby() | 451 | int AudioStreamIn::standby() |
@@ -604,7 +600,27 @@ const char *AudioHwDevice::kBTMode = "Bluetooth Mode"; | |||
604 | AudioHwDevice::AudioHwDevice(uint32_t card) | 600 | AudioHwDevice::AudioHwDevice(uint32_t card) |
605 | : mCardId(card), mMixer(mCardId), mMicMute(false), mMode(AUDIO_MODE_NORMAL) | 601 | : mCardId(card), mMixer(mCardId), mMicMute(false), mMode(AUDIO_MODE_NORMAL) |
606 | { | 602 | { |
607 | ALOGI("AudioHwDevice: create hw device for card hw:%u", card); | 603 | /* |
604 | * "multizone_audio.use_jamr" property is used to indicate if JAMR3 | ||
605 | * board is available in the system: | ||
606 | * - Present | ||
607 | * o Cabin : port 1, slots 0 & 1 | ||
608 | * o Mic : port 1, slot 2 | ||
609 | * o Back Mic: port 1, slot 3 | ||
610 | * - Not present | ||
611 | * o Cabin : port 0, slots 0 & 1 | ||
612 | * o Mic : port 0, slots 0 & 1 | ||
613 | */ | ||
614 | char value[PROPERTY_VALUE_MAX]; | ||
615 | if ((property_get("persist.audio.use_jamr", value, NULL) == 0) || | ||
616 | !strcmp(value, "1") || !strcasecmp(value, "true")) { | ||
617 | mMediaPortId = kJAMR3PortId; | ||
618 | } else { | ||
619 | mMediaPortId = kCPUPortId; | ||
620 | } | ||
621 | |||
622 | ALOGI("AudioHwDevice: create hw device for card hw:%u Jacinto6 EVM %s", | ||
623 | card, usesJAMR3() ? "+ JAMR3" : ""); | ||
608 | 624 | ||
609 | /* Mixer for dra7evm and input/output ports for JAMR3 PCM device */ | 625 | /* Mixer for dra7evm and input/output ports for JAMR3 PCM device */ |
610 | for (uint32_t i = 0; i < kNumPorts; i++) { | 626 | for (uint32_t i = 0; i < kNumPorts; i++) { |
@@ -647,12 +663,22 @@ AudioHwDevice::AudioHwDevice(uint32_t card) | |||
647 | slots[0] = 0; | 663 | slots[0] = 0; |
648 | slots[1] = 0; | 664 | slots[1] = 0; |
649 | 665 | ||
666 | /* Microphone slots are different in JAMR3 and CPU board */ | ||
667 | SlotMap micSlots; | ||
668 | if (usesJAMR3()) { | ||
669 | micSlots[0] = 2; | ||
670 | micSlots[1] = 2; | ||
671 | } else { | ||
672 | micSlots[0] = 0; | ||
673 | micSlots[1] = 0; | ||
674 | } | ||
675 | |||
650 | /* Voice call uplink */ | 676 | /* Voice call uplink */ |
651 | mULPipe = new tiaudioutils::MonoPipe(paramsBT, | 677 | mULPipe = new tiaudioutils::MonoPipe(paramsBT, |
652 | (kVoiceCallPipeMs * paramsBT.sampleRate) / 1000); | 678 | (kVoiceCallPipeMs * paramsBT.sampleRate) / 1000); |
653 | mULPipeWriter = new PipeWriter(mULPipe); | 679 | mULPipeWriter = new PipeWriter(mULPipe); |
654 | mULPipeReader = new PipeReader(mULPipe); | 680 | mULPipeReader = new PipeReader(mULPipe); |
655 | mVoiceULInStream = new InStream(paramsBT, slots, mULPipeWriter); | 681 | mVoiceULInStream = new InStream(paramsBT, micSlots, mULPipeWriter); |
656 | mVoiceULOutStream = new OutStream(paramsBT, slots, mULPipeReader); | 682 | mVoiceULOutStream = new OutStream(paramsBT, slots, mULPipeReader); |
657 | 683 | ||
658 | /* Voice call downlink */ | 684 | /* Voice call downlink */ |
@@ -709,6 +735,7 @@ uint32_t AudioHwDevice::getSupportedDevices() const | |||
709 | devices = AUDIO_DEVICE_IN_BUILTIN_MIC | | 735 | devices = AUDIO_DEVICE_IN_BUILTIN_MIC | |
710 | AUDIO_DEVICE_IN_BACK_MIC | | 736 | AUDIO_DEVICE_IN_BACK_MIC | |
711 | AUDIO_DEVICE_IN_VOICE_CALL | | 737 | AUDIO_DEVICE_IN_VOICE_CALL | |
738 | AUDIO_DEVICE_IN_ANLG_DOCK_HEADSET | | ||
712 | AUDIO_DEVICE_OUT_SPEAKER | | 739 | AUDIO_DEVICE_OUT_SPEAKER | |
713 | AUDIO_DEVICE_OUT_WIRED_HEADPHONE | | 740 | AUDIO_DEVICE_OUT_WIRED_HEADPHONE | |
714 | AUDIO_DEVICE_OUT_WIRED_HEADSET | | 741 | AUDIO_DEVICE_OUT_WIRED_HEADSET | |
@@ -845,7 +872,7 @@ int AudioHwDevice::enableVoiceCall() | |||
845 | outStream->setVoiceCall(true); | 872 | outStream->setVoiceCall(true); |
846 | 873 | ||
847 | /* Uplink input stream: Mic -> Pipe */ | 874 | /* Uplink input stream: Mic -> Pipe */ |
848 | int ret = mReaders[kCPUPortId]->registerStream(mVoiceULInStream); | 875 | int ret = mReaders[mMediaPortId]->registerStream(mVoiceULInStream); |
849 | if (ret) { | 876 | if (ret) { |
850 | ALOGE("AudioHwDevice: failed to register uplink in stream %d", ret); | 877 | ALOGE("AudioHwDevice: failed to register uplink in stream %d", ret); |
851 | return ret; | 878 | return ret; |
@@ -893,8 +920,8 @@ void AudioHwDevice::disableVoiceCall() | |||
893 | if (mWriters[kBTPortId]->isStreamRegistered(mVoiceULOutStream)) | 920 | if (mWriters[kBTPortId]->isStreamRegistered(mVoiceULOutStream)) |
894 | mWriters[kBTPortId]->unregisterStream(mVoiceULOutStream); | 921 | mWriters[kBTPortId]->unregisterStream(mVoiceULOutStream); |
895 | 922 | ||
896 | if (mReaders[kCPUPortId]->isStreamRegistered(mVoiceULInStream)) | 923 | if (mReaders[mMediaPortId]->isStreamRegistered(mVoiceULInStream)) |
897 | mReaders[kCPUPortId]->unregisterStream(mVoiceULInStream); | 924 | mReaders[mMediaPortId]->unregisterStream(mVoiceULInStream); |
898 | } | 925 | } |
899 | 926 | ||
900 | int AudioHwDevice::enterVoiceCall() | 927 | int AudioHwDevice::enterVoiceCall() |
@@ -987,6 +1014,9 @@ void AudioHwDevice::leaveVoiceCall() | |||
987 | if (mVoiceULOutStream->isStarted()) | 1014 | if (mVoiceULOutStream->isStarted()) |
988 | mVoiceULOutStream->stop(); | 1015 | mVoiceULOutStream->stop(); |
989 | 1016 | ||
1017 | mULPipe->flush(); | ||
1018 | mDLPipe->flush(); | ||
1019 | |||
990 | disableVoiceCall(); | 1020 | disableVoiceCall(); |
991 | 1021 | ||
992 | /* Reset the cabin volume for media */ | 1022 | /* Reset the cabin volume for media */ |
@@ -1032,14 +1062,13 @@ size_t AudioHwDevice::getInputBufferSize(const struct audio_config *config) cons | |||
1032 | AutoMutex lock(mLock); | 1062 | AutoMutex lock(mLock); |
1033 | size_t size; | 1063 | size_t size; |
1034 | 1064 | ||
1035 | /* Take resampling ratio into account and align to the nearest | 1065 | /* Take resampling ratio into account */ |
1036 | * 16 frames as required by the AudioFlinger */ | ||
1037 | /* Use port 0 for the calculation, since values for both ports are the same */ | 1066 | /* Use port 0 for the calculation, since values for both ports are the same */ |
1038 | uint32_t frames = mReaders[kCPUPortId]->getParams().frameCount; | 1067 | uint32_t frames = mReaders[kCPUPortId]->getParams().frameCount; |
1039 | uint32_t rate = mReaders[kCPUPortId]->getParams().sampleRate; | 1068 | uint32_t rate = mReaders[kCPUPortId]->getParams().sampleRate; |
1040 | 1069 | ||
1041 | size = (frames * config->sample_rate) / rate; | 1070 | size = (frames * config->sample_rate) / rate; |
1042 | size = ((size + 15) & ~15) * mReaders[kCPUPortId]->getParams().frameSize(); | 1071 | size = size * mReaders[kCPUPortId]->getParams().frameSize(); |
1043 | 1072 | ||
1044 | ALOGV("AudioHwDevice: getInputBufferSize() %d bytes", size); | 1073 | ALOGV("AudioHwDevice: getInputBufferSize() %d bytes", size); |
1045 | 1074 | ||
@@ -1063,45 +1092,55 @@ AudioStreamIn* AudioHwDevice::openInputStream(audio_io_handle_t handle, | |||
1063 | audio_devices_t devices, | 1092 | audio_devices_t devices, |
1064 | struct audio_config *config) | 1093 | struct audio_config *config) |
1065 | { | 1094 | { |
1066 | uint32_t port = 0; | 1095 | uint32_t port = mMediaPortId; |
1096 | uint32_t srcSlot0, srcSlot1; | ||
1067 | uint32_t channels = popcount(config->channel_mask); | 1097 | uint32_t channels = popcount(config->channel_mask); |
1068 | 1098 | ||
1069 | ALOGV("AudioHwDevice: openInputStream()"); | 1099 | ALOGV("AudioHwDevice: openInputStream()"); |
1070 | 1100 | ||
1071 | uint32_t srcMask, dstMask; | ||
1072 | switch (devices) { | 1101 | switch (devices) { |
1073 | case AUDIO_DEVICE_IN_BUILTIN_MIC: | 1102 | case AUDIO_DEVICE_IN_BUILTIN_MIC: |
1074 | case AUDIO_DEVICE_IN_VOICE_CALL: | 1103 | case AUDIO_DEVICE_IN_VOICE_CALL: |
1075 | if (channels == 1) { | 1104 | if (usesJAMR3()) { |
1076 | /* Mic is in slots 0&1 (mask = 0x03) on port 0, but AF wants | 1105 | srcSlot0 = 2; |
1077 | * only mono so take only one channel here */ | 1106 | srcSlot1 = 2; |
1078 | srcMask = 0x01; | 1107 | } else { |
1079 | dstMask = 0x01; | 1108 | srcSlot0 = 0; |
1080 | } | 1109 | srcSlot1 = 1; |
1081 | else { | ||
1082 | srcMask = 0x03; | ||
1083 | dstMask = 0x03; | ||
1084 | } | 1110 | } |
1085 | port = 0; | ||
1086 | break; | 1111 | break; |
1087 | case AUDIO_DEVICE_IN_BACK_MIC: | 1112 | case AUDIO_DEVICE_IN_BACK_MIC: |
1088 | if (channels == 1) { | 1113 | if (usesJAMR3()) { |
1089 | srcMask = 0x08; | 1114 | srcSlot0 = 3; |
1090 | dstMask = 0x01; | 1115 | srcSlot1 = 3; |
1116 | } else { | ||
1117 | srcSlot0 = 0; | ||
1118 | srcSlot1 = 1; | ||
1091 | } | 1119 | } |
1092 | else { | 1120 | break; |
1093 | ALOGE("AudioHwDevice: device 0x%08x only supports 1 channel", | 1121 | case AUDIO_DEVICE_IN_ANLG_DOCK_HEADSET: |
1094 | devices); | 1122 | if (!usesJAMR3()) { |
1123 | ALOGE("AudioHwDevice: device 0x%08x requires JAMR3", devices); | ||
1095 | return NULL; | 1124 | return NULL; |
1096 | } | 1125 | } |
1097 | port = 1; | 1126 | srcSlot0 = 0; |
1127 | srcSlot1 = 1; | ||
1098 | break; | 1128 | break; |
1099 | default: | 1129 | default: |
1100 | ALOGE("AudioHwDevice: device 0x%08x is not supported", devices); | 1130 | ALOGE("AudioHwDevice: device 0x%08x is not supported", devices); |
1101 | return NULL; | 1131 | return NULL; |
1102 | } | 1132 | } |
1103 | 1133 | ||
1104 | SlotMap slotMap(srcMask, dstMask); | 1134 | SlotMap slotMap; |
1135 | if (channels >= 1) | ||
1136 | slotMap[0] = srcSlot0; | ||
1137 | if (channels == 2) | ||
1138 | slotMap[1] = srcSlot1; | ||
1139 | if (channels > 2) { | ||
1140 | ALOGE("AudioHwDevice: %u channels are not supported", channels); | ||
1141 | return NULL; | ||
1142 | } | ||
1143 | |||
1105 | if (!slotMap.isValid()) { | 1144 | if (!slotMap.isValid()) { |
1106 | ALOGE("AudioHwDevice: failed to create slot map"); | 1145 | ALOGE("AudioHwDevice: failed to create slot map"); |
1107 | return NULL; | 1146 | return NULL; |
@@ -1155,16 +1194,16 @@ AudioStreamOut* AudioHwDevice::openOutputStream(audio_io_handle_t handle, | |||
1155 | uint32_t destMask; | 1194 | uint32_t destMask; |
1156 | switch (devices) { | 1195 | switch (devices) { |
1157 | case AUDIO_DEVICE_OUT_SPEAKER: | 1196 | case AUDIO_DEVICE_OUT_SPEAKER: |
1158 | port = 0; | 1197 | port = mMediaPortId; |
1159 | destMask = 0x03; | 1198 | destMask = 0x03; |
1160 | break; | 1199 | break; |
1161 | case AUDIO_DEVICE_OUT_WIRED_HEADPHONE: | 1200 | case AUDIO_DEVICE_OUT_WIRED_HEADPHONE: |
1162 | case AUDIO_DEVICE_OUT_WIRED_HEADSET: | 1201 | case AUDIO_DEVICE_OUT_WIRED_HEADSET: |
1163 | port = 1; | 1202 | port = kJAMR3PortId; |
1164 | destMask = 0x0c; | 1203 | destMask = 0x0c; |
1165 | break; | 1204 | break; |
1166 | case AUDIO_DEVICE_OUT_WIRED_HEADPHONE2: | 1205 | case AUDIO_DEVICE_OUT_WIRED_HEADPHONE2: |
1167 | port = 1; | 1206 | port = kJAMR3PortId; |
1168 | destMask = 0x30; | 1207 | destMask = 0x30; |
1169 | break; | 1208 | break; |
1170 | default: | 1209 | default: |
diff --git a/audio/multizone/AudioHw.h b/audio/multizone/AudioHw.h index 375b208..0d475da 100644 --- a/audio/multizone/AudioHw.h +++ b/audio/multizone/AudioHw.h | |||
@@ -214,6 +214,7 @@ class AudioHwDevice { | |||
214 | typedef vector<PcmReader*> ReaderVect; | 214 | typedef vector<PcmReader*> ReaderVect; |
215 | typedef vector<PcmWriter*> WriterVect; | 215 | typedef vector<PcmWriter*> WriterVect; |
216 | 216 | ||
217 | bool usesJAMR3() const { return mMediaPortId == kJAMR3PortId; } | ||
217 | const char *getModeName(audio_mode_t mode) const; | 218 | const char *getModeName(audio_mode_t mode) const; |
218 | int enterVoiceCall(); | 219 | int enterVoiceCall(); |
219 | void leaveVoiceCall(); | 220 | void leaveVoiceCall(); |
@@ -230,6 +231,7 @@ class AudioHwDevice { | |||
230 | StreamOutSet mOutStreams; | 231 | StreamOutSet mOutStreams; |
231 | bool mMicMute; | 232 | bool mMicMute; |
232 | audio_mode_t mMode; | 233 | audio_mode_t mMode; |
234 | uint32_t mMediaPortId; | ||
233 | wp<AudioStreamOut> mPrimaryStreamOut; | 235 | wp<AudioStreamOut> mPrimaryStreamOut; |
234 | tiaudioutils::MonoPipe *mULPipe; | 236 | tiaudioutils::MonoPipe *mULPipe; |
235 | tiaudioutils::MonoPipe *mDLPipe; | 237 | tiaudioutils::MonoPipe *mDLPipe; |
diff --git a/audio/multizone/audio_policy.conf b/audio/multizone/audio_policy.conf index 2f4eb19..473409c 100644 --- a/audio/multizone/audio_policy.conf +++ b/audio/multizone/audio_policy.conf | |||
@@ -5,7 +5,7 @@ | |||
5 | global_configuration { | 5 | global_configuration { |
6 | attached_output_devices AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_WIRED_HEADPHONE|AUDIO_DEVICE_OUT_WIRED_HEADPHONE2 | 6 | attached_output_devices AUDIO_DEVICE_OUT_SPEAKER|AUDIO_DEVICE_OUT_WIRED_HEADPHONE|AUDIO_DEVICE_OUT_WIRED_HEADPHONE2 |
7 | default_output_device AUDIO_DEVICE_OUT_SPEAKER | 7 | default_output_device AUDIO_DEVICE_OUT_SPEAKER |
8 | attached_input_devices AUDIO_DEVICE_IN_BUILTIN_MIC | 8 | attached_input_devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_ANLG_DOCK_HEADSET |
9 | } | 9 | } |
10 | 10 | ||
11 | # Zone affinity section: lists the output devices allowed per listening zone. Devices are | 11 | # Zone affinity section: lists the output devices allowed per listening zone. Devices are |
@@ -57,7 +57,7 @@ audio_hw_modules { | |||
57 | sampling_rates 8000|11025|16000|22050|32000|44100|48000 | 57 | sampling_rates 8000|11025|16000|22050|32000|44100|48000 |
58 | channel_masks AUDIO_CHANNEL_IN_MONO|AUDIO_CHANNEL_IN_STEREO | 58 | channel_masks AUDIO_CHANNEL_IN_MONO|AUDIO_CHANNEL_IN_STEREO |
59 | formats AUDIO_FORMAT_PCM_16_BIT | 59 | formats AUDIO_FORMAT_PCM_16_BIT |
60 | devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_BACK_MIC|AUDIO_DEVICE_IN_VOICE_CALL | 60 | devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_BACK_MIC|AUDIO_DEVICE_IN_VOICE_CALL|AUDIO_DEVICE_IN_ANLG_DOCK_HEADSET |
61 | } | 61 | } |
62 | } | 62 | } |
63 | } | 63 | } |
diff --git a/audio/multizone/dra7evm_paths.xml b/audio/multizone/dra7evm_paths.xml index 7b5f057..06419be 100644 --- a/audio/multizone/dra7evm_paths.xml +++ b/audio/multizone/dra7evm_paths.xml | |||
@@ -41,7 +41,7 @@ | |||
41 | <!-- JAMR3 board, codec-B input: Mic --> | 41 | <!-- JAMR3 board, codec-B input: Mic --> |
42 | <ctl name="J3B Left PGA Mixer Line1L Switch" value="1" /> | 42 | <ctl name="J3B Left PGA Mixer Line1L Switch" value="1" /> |
43 | <ctl name="J3B Right PGA Mixer Line1R Switch" value="1" /> | 43 | <ctl name="J3B Right PGA Mixer Line1R Switch" value="1" /> |
44 | <ctl name="J3B PGA Capture Switch" value="0" /> | 44 | <ctl name="J3B PGA Capture Switch" value="1" /> |
45 | <ctl name="J3B PGA Capture Volume" value="0" /> | 45 | <ctl name="J3B PGA Capture Volume" value="0" /> |
46 | <ctl name="J3B Left Line1L Mux" value="differential" /> | 46 | <ctl name="J3B Left Line1L Mux" value="differential" /> |
47 | <ctl name="J3B Right Line1L Mux" value="differential" /> | 47 | <ctl name="J3B Right Line1L Mux" value="differential" /> |
@@ -75,21 +75,4 @@ | |||
75 | <ctl name="J3C Line Playback Switch" value="1" /> | 75 | <ctl name="J3C Line Playback Switch" value="1" /> |
76 | <ctl name="J3C PCM Playback Volume" value="127" /> | 76 | <ctl name="J3C PCM Playback Volume" value="127" /> |
77 | 77 | ||
78 | <!-- Device specific routes --> | ||
79 | |||
80 | <!-- JAMR3 codec A input: Line-In --> | ||
81 | <path name="AUDIO_DEVICE_IN_ANLG_DOCK_HEADSET"> | ||
82 | <ctl name="J3A PGA Capture Switch" value="1" /> | ||
83 | </path> | ||
84 | |||
85 | <!-- On-board input: Stereo mic --> | ||
86 | <path name="AUDIO_DEVICE_IN_BUILTIN_MIC"> | ||
87 | <ctl name="PGA Capture Switch" value="1" /> | ||
88 | </path> | ||
89 | |||
90 | <!-- JAMR3 codec B input: Mono mic right --> | ||
91 | <path name="AUDIO_DEVICE_IN_BACK_MIC"> | ||
92 | <ctl name="J3B PGA Capture Switch" id="1" value="1" /> | ||
93 | </path> | ||
94 | |||
95 | </mixer> | 78 | </mixer> |
@@ -116,6 +116,13 @@ PRODUCT_PACKAGES += \ | |||
116 | mtpfuse \ | 116 | mtpfuse \ |
117 | fusermount | 117 | fusermount |
118 | 118 | ||
119 | # Radio | ||
120 | PRODUCT_PACKAGES += \ | ||
121 | HelloRadio \ | ||
122 | lad_dra7xx \ | ||
123 | libtiipc \ | ||
124 | libtiipcutils | ||
125 | |||
119 | # Can utilities | 126 | # Can utilities |
120 | PRODUCT_PACKAGES += \ | 127 | PRODUCT_PACKAGES += \ |
121 | libcan \ | 128 | libcan \ |
diff --git a/init.jacinto6evmboard.rc b/init.jacinto6evmboard.rc index b88698f..94373c3 100644 --- a/init.jacinto6evmboard.rc +++ b/init.jacinto6evmboard.rc | |||
@@ -34,6 +34,8 @@ on post-fs-data | |||
34 | setprop vold.post_fs_data_done 1 | 34 | setprop vold.post_fs_data_done 1 |
35 | mkdir /data/misc/dhcp 0770 dhcp dhcp | 35 | mkdir /data/misc/dhcp 0770 dhcp dhcp |
36 | chown dhcp dhcp /data/misc/dhcp | 36 | chown dhcp dhcp /data/misc/dhcp |
37 | mkdir /data/lad 0770 system system | ||
38 | mkdir /data/lad/LAD 0770 system system | ||
37 | 39 | ||
38 | #for Bluetooth HID | 40 | #for Bluetooth HID |
39 | chmod 0666 /dev/uhid | 41 | chmod 0666 /dev/uhid |
@@ -177,3 +179,10 @@ service fuse_usb0 /system/bin/sdcard -u 1023 -g 1023 -d /mnt/media_rw/usb0 /stor | |||
177 | service fuse_usb1 /system/bin/sdcard -u 1023 -g 1023 -d /mnt/media_rw/usb1 /storage/usb1 | 179 | service fuse_usb1 /system/bin/sdcard -u 1023 -g 1023 -d /mnt/media_rw/usb1 /storage/usb1 |
178 | class late_start | 180 | class late_start |
179 | disabled | 181 | disabled |
182 | |||
183 | service lad_dra7xx /system/bin/logwrapper /system/bin/lad_dra7xx | ||
184 | class main | ||
185 | user system | ||
186 | group system | ||
187 | disabled | ||
188 | oneshot | ||
diff --git a/ueventd.jacinto6evmboard.rc b/ueventd.jacinto6evmboard.rc index 6685487..e5dc751 100644 --- a/ueventd.jacinto6evmboard.rc +++ b/ueventd.jacinto6evmboard.rc | |||
@@ -21,6 +21,11 @@ | |||
21 | # for Bluetooth | 21 | # for Bluetooth |
22 | /dev/hci_tty 0666 bluetooth bluetooth | 22 | /dev/hci_tty 0666 bluetooth bluetooth |
23 | 23 | ||
24 | # Radio | ||
25 | /dev/i2c-0 0660 system system | ||
26 | /dev/i2c-1 0660 system system | ||
27 | /dev/i2c-3 0660 system system | ||
28 | |||
24 | #for GCX | 29 | #for GCX |
25 | /dev/gcioctl 0666 system system | 30 | /dev/gcioctl 0666 system system |
26 | 31 | ||