DO NOT MERGE: Revert "shamu: add location API"
am: 9be41289a6  -s ours

Change-Id: Idc3ea06b4caaebd2543b0569ab4608b5df278d79
diff --git a/audio_platform_info.xml b/audio_platform_info.xml
index 3e02839..c2ad270 100644
--- a/audio_platform_info.xml
+++ b/audio_platform_info.xml
@@ -7,6 +7,9 @@
         <device name="SND_DEVICE_OUT_VOICE_HANDSET_TMUS"    acdb_id="67"/>
         <device name="SND_DEVICE_IN_HEADSET_MIC_AEC"        acdb_id="47"/>
         <device name="SND_DEVICE_IN_VOICE_DMIC_TMUS"        acdb_id="89"/>
+        <device name="SND_DEVICE_IN_UNPROCESSED_HEADSET_MIC" acdb_id="70"/>
+        <device name="SND_DEVICE_IN_UNPROCESSED_MIC"         acdb_id="68"/>
+        <device name="SND_DEVICE_IN_UNPROCESSED_STEREO_MIC" acdb_id="69"/>
     </acdb_ids>
 
     <pcm_ids>
diff --git a/camera/QCamera2/stack/mm-camera-interface/inc/mm_camera.h b/camera/QCamera2/stack/mm-camera-interface/inc/mm_camera.h
index a343c33..187ad4d 100644
--- a/camera/QCamera2/stack/mm-camera-interface/inc/mm_camera.h
+++ b/camera/QCamera2/stack/mm-camera-interface/inc/mm_camera.h
@@ -48,6 +48,8 @@
 #define MM_CAMERA_DEV_OPEN_TRIES 20
 #define MM_CAMERA_DEV_OPEN_RETRY_SLEEP 20
 
+#define WAIT_TIMEOUT_IN_SEC 5
+
 #ifndef TRUE
 #define TRUE 1
 #endif
diff --git a/camera/QCamera2/stack/mm-camera-interface/src/mm_camera.c b/camera/QCamera2/stack/mm-camera-interface/src/mm_camera.c
index 93eb5d1..218a554 100644
--- a/camera/QCamera2/stack/mm-camera-interface/src/mm_camera.c
+++ b/camera/QCamera2/stack/mm-camera-interface/src/mm_camera.c
@@ -1576,11 +1576,26 @@
                                    uint32_t evt_mask,
                                    int32_t *status)
 {
+    int32_t rc = 0;
+    struct timespec ts;
+
     pthread_mutex_lock(&my_obj->evt_lock);
     while (!(my_obj->evt_rcvd.server_event_type & evt_mask)) {
-        pthread_cond_wait(&my_obj->evt_cond, &my_obj->evt_lock);
+        clock_gettime(CLOCK_REALTIME, &ts);
+        ts.tv_sec += WAIT_TIMEOUT_IN_SEC;
+        rc = pthread_cond_timedwait(&my_obj->evt_cond, &my_obj->evt_lock, &ts);
+        if (rc) {
+            ALOGE("%s: pthread_cond_timedwait of evt_mask 0x%x fails %d",
+                    __func__, evt_mask, rc);
+            break;
+        }
     }
-    *status = my_obj->evt_rcvd.status;
+    if (!rc) {
+        *status = my_obj->evt_rcvd.status;
+    } else {
+        *status = MSM_CAMERA_STATUS_FAIL;
+    }
+
     /* reset local storage for recieved event for next event */
     memset(&my_obj->evt_rcvd, 0, sizeof(mm_camera_event_t));
     pthread_mutex_unlock(&my_obj->evt_lock);
diff --git a/device.mk b/device.mk
index 9c2ed01..c8993ab 100644
--- a/device.mk
+++ b/device.mk
@@ -307,8 +307,10 @@
 
 # Modem debugger
 ifneq (,$(filter userdebug eng, $(TARGET_BUILD_VARIANT)))
+ifeq (,$(filter aosp_shamu, $(TARGET_PRODUCT)))
 PRODUCT_PACKAGES += \
-    QXDMLogger
+    QXDMLoggerV2
+endif # aosp_shamu
 
 # Disable modem ramdumps
 PRODUCT_PROPERTY_OVERRIDES += \
@@ -403,6 +405,16 @@
 PRODUCT_PROPERTY_OVERRIDES += \
     audio_hal.period_size=192
 
+# Set correct voice call audio property values
+PRODUCT_PROPERTY_OVERRIDES += \
+    ro.config.vc_call_vol_steps=6 \
+    persist.audio.dualmic.config=endfire \
+    ro.qc.sdk.audio.fluencetype=fluence \
+    persist.audio.fluence.voicecall=true \
+    persist.audio.fluence.voicecomm=false \
+    persist.audio.fluence.voicerec=false \
+    persist.audio.fluence.speaker=false
+
 # OEM Unlock reporting
 ADDITIONAL_DEFAULT_PROPERTIES += \
     ro.oem_unlock_supported=1
diff --git a/fstab.shamu b/fstab.shamu
index 368b422..bba200b 100644
--- a/fstab.shamu
+++ b/fstab.shamu
@@ -4,8 +4,8 @@
 #
 #<src>                                                <mnt_point>  <type>  <mnt_flags and options>                     <fs_mgr_flags>
 /dev/block/platform/msm_sdcc.1/by-name/system         /system      ext4    ro,barrier=1                                wait,verify=/dev/block/platform/msm_sdcc.1/by-name/metadata
-/dev/block/platform/msm_sdcc.1/by-name/userdata    /data        ext4    rw,nosuid,nodev,noatime,discard,nodiratime,noauto_da_alloc,nobarrier    wait,check,formattable,forceencrypt=/dev/block/platform/msm_sdcc.1/by-name/metadata
-/dev/block/platform/msm_sdcc.1/by-name/cache       /cache       ext4    rw,noatime,nosuid,nodev,discard,barrier=1,data=ordered   wait,check,formattable
+/dev/block/platform/msm_sdcc.1/by-name/userdata    /data        ext4    rw,nosuid,nodev,noatime,nodiratime,noauto_da_alloc,nobarrier    wait,check,formattable,forceencrypt=/dev/block/platform/msm_sdcc.1/by-name/metadata
+/dev/block/platform/msm_sdcc.1/by-name/cache       /cache       ext4    rw,noatime,nosuid,nodev,barrier=1,data=ordered   wait,check,formattable
 /dev/block/platform/msm_sdcc.1/by-name/modem       /firmware    ext4    ro,barrier=1,context=u:object_r:firmware_file:s0    wait
 /dev/block/platform/msm_sdcc.1/by-name/persist     /persist     ext4    rw,nosuid,nodev,barrier=1                      wait,check,notrim
 /dev/block/platform/msm_sdcc.1/by-name/boot         /boot           emmc    defaults                                                        defaults
diff --git a/mixer_paths.xml b/mixer_paths.xml
index dbed7c1..7c5d02e 100644
--- a/mixer_paths.xml
+++ b/mixer_paths.xml
@@ -156,8 +156,36 @@
 	<ctl name="AFE_PCM_RX Audio Mixer MultiMedia5" value="0" />
 	<!-- usb headset end -->
 	<ctl name="BOOST ENABLE Spkr Left Prot" value="0" />
-	<ctl name="BOOST_STUB Right Mixer right" value="0" />
-	<ctl name="BOOST_STUB Left Mixer left" value="0" />
+	<ctl name="BOOST_STUB Right Mixer right MM_DL1" value="0" />
+	<ctl name="BOOST_STUB Right Mixer right MM_DL2" value="0" />
+	<ctl name="BOOST_STUB Right Mixer right MM_DL3" value="0" />
+	<ctl name="BOOST_STUB Right Mixer right MM_DL4" value="0" />
+	<ctl name="BOOST_STUB Right Mixer right MM_DL5" value="0" />
+	<ctl name="BOOST_STUB Right Mixer right MM_DL6" value="0" />
+	<ctl name="BOOST_STUB Right Mixer right MM_DL7" value="0" />
+	<ctl name="BOOST_STUB Right Mixer right MM_DL8" value="0" />
+	<ctl name="BOOST_STUB Right Mixer right VOIP_DL" value="0" />
+	<ctl name="BOOST_STUB Right Mixer right CS-VOICE_DL1" value="0" />
+	<ctl name="BOOST_STUB Right Mixer right VOICE2_DL" value="0" />
+	<ctl name="BOOST_STUB Right Mixer right VoLTE_DL" value="0" />
+	<ctl name="BOOST_STUB Right Mixer right VOLTE_STUB_DL" value="0" />
+	<ctl name="BOOST_STUB Right Mixer right VOICE_STUB_DL" value="0" />
+	<ctl name="BOOST_STUB Right Mixer right VOICE2_STUB_DL" value="0" />
+	<ctl name="BOOST_STUB Left Mixer left MM_DL1" value="0" />
+	<ctl name="BOOST_STUB Left Mixer left MM_DL2" value="0" />
+	<ctl name="BOOST_STUB Left Mixer left MM_DL3" value="0" />
+	<ctl name="BOOST_STUB Left Mixer left MM_DL4" value="0" />
+	<ctl name="BOOST_STUB Left Mixer left MM_DL5" value="0" />
+	<ctl name="BOOST_STUB Left Mixer left MM_DL6" value="0" />
+	<ctl name="BOOST_STUB Left Mixer left MM_DL7" value="0" />
+	<ctl name="BOOST_STUB Left Mixer left MM_DL8" value="0" />
+	<ctl name="BOOST_STUB Left Mixer left VOIP_DL" value="0" />
+	<ctl name="BOOST_STUB Left Mixer left CS-VOICE_DL1" value="0" />
+	<ctl name="BOOST_STUB Left Mixer left VOICE2_DL" value="0" />
+	<ctl name="BOOST_STUB Left Mixer left VoLTE_DL" value="0" />
+	<ctl name="BOOST_STUB Left Mixer left VOLTE_STUB_DL" value="0" />
+	<ctl name="BOOST_STUB Left Mixer left VOICE_STUB_DL" value="0" />
+	<ctl name="BOOST_STUB Left Mixer left VOICE2_STUB_DL" value="0" />
 	<ctl name="BOOST earpiece mode" value="Off" />
 	<ctl name="QUAT_MI2S_RX Channels" value="One" />
 	<ctl name="BOOST Left Ch Select" value="1" />
@@ -314,6 +342,8 @@
 
 	<path name="deep-buffer-playback speaker">
 		<ctl name="QUAT_MI2S_RX Audio Mixer MultiMedia1" value="1" />
+		<ctl name="BOOST_STUB Right Mixer right MM_DL1" value="1" />
+		<ctl name="BOOST_STUB Left Mixer left MM_DL1" value="1" />
 	</path>
 
 	<path name="deep-buffer-playback handset">
@@ -361,6 +391,8 @@
 
 	<path name="low-latency-playback speaker">
 		<ctl name="QUAT_MI2S_RX Audio Mixer MultiMedia5" value="1" />
+		<ctl name="BOOST_STUB Right Mixer right MM_DL5" value="1" />
+		<ctl name="BOOST_STUB Left Mixer left MM_DL5" value="1" />
 	</path>
 
 	<path name="low-latency-playback handset">
@@ -396,6 +428,8 @@
 
 	<path name="compress-offload-playback speaker">
 		<ctl name="QUAT_MI2S_RX Audio Mixer MultiMedia4" value="1" />
+		<ctl name="BOOST_STUB Right Mixer right MM_DL4" value="1" />
+		<ctl name="BOOST_STUB Left Mixer left MM_DL4" value="1" />
 	</path>
 
 	<path name="compress-offload-playback handset">
@@ -476,6 +510,8 @@
 		<ctl name="QUAT_MI2S_RX_Voice Mixer Voice Stub" value="1" />
 		<ctl name="Voice Stub Tx Mixer STUB_TX_HL" value="1" />
 		<ctl name="Voice Stub Tx Mixer STUB_1_TX_HL" value="1" />
+		<ctl name="BOOST_STUB Right Mixer right VOICE_STUB_DL" value="1" />
+		<ctl name="BOOST_STUB Left Mixer left VOICE_STUB_DL" value="1" />
 	</path>
 
 	<path name="voice-call speaker">
@@ -574,6 +610,8 @@
 		<ctl name="QUAT_MI2S_RX_Voice Mixer VoLTE Stub" value="1" />
 		<ctl name="VoLTE Stub Tx Mixer STUB_TX_HL" value="1" />
 		<ctl name="VoLTE Stub Tx Mixer STUB_1_TX_HL" value="1" />
+		<ctl name="BOOST_STUB Right Mixer right VOLTE_STUB_DL" value="1" />
+		<ctl name="BOOST_STUB Left Mixer left VOLTE_STUB_DL" value="1" />
 	</path>
 
 	<path name="volte-call speaker">
@@ -736,9 +774,7 @@
 		<!-- Select Right channel on Right IC bypass mode -->
 		<ctl name="BOOST Right Ch Select" value="2" />
 		<!-- Enable Mixers to power up Left and Right IC's -->
-		<ctl name="BOOST_STUB Right Mixer right" value="1" />
-		<ctl name="BOOST_STUB Left Mixer left" value="1" />
-                <path name="speaker-gain-default" />
+		<path name="speaker-gain-default" />
 	</path>
 
 	<path name="speaker-reverse">
@@ -749,9 +785,6 @@
 		<ctl name="BOOST Left Ch Select" value="2" />
 		<!-- Select Right channel on Right IC bypass mode -->
 		<ctl name="BOOST Right Ch Select" value="1" />
-		<!-- Enable Mixers to power up Left and Right IC's -->
-		<ctl name="BOOST_STUB Right Mixer right" value="1" />
-		<ctl name="BOOST_STUB Left Mixer left" value="1" />
 	</path>
 
 	<path name="speaker-safe">
@@ -759,8 +792,7 @@
 		<!-- Select mono channel on Right IC -->
 		<ctl name="BOOST Right Ch Select" value="3" />
 		<!-- Enable Mixers to power up Right IC only -->
-		<ctl name="BOOST_STUB Right Mixer right" value="1" />
-                <path name="speaker-safe-gain-default" />
+		<path name="speaker-safe-gain-default" />
 	</path>
 
 	<path name="speaker-mic">
@@ -780,9 +812,6 @@
 	<path name="handset">
 		<!-- Enable earpiece mode this toggles gpio -->
 		<ctl name="BOOST earpiece mode" value="On" />
-		<!-- Enable Mixer to power up Left IC -->
-		<ctl name="BOOST_STUB Left Mixer left" value="1" />
-		<ctl name="BOOST_STUB Right Mixer right" value="0" />
 		<!-- select (l + r)/2 -->
 		<ctl name="BOOST Left Ch Select" value="3" />
 		<!-- bypass dsp -->
@@ -857,9 +886,6 @@
 	<path name="voice-speaker">
 		<!-- Disable earpiece mode -->
 		<ctl name="BOOST earpiece mode" value="Off" />
-		<!-- Enable Mixer to power up Left IC -->
-		<ctl name="BOOST_STUB Left Mixer left" value="1" />
-		<ctl name="BOOST_STUB Right Mixer right" value="0" />
 		<!-- select (l + r)/2 -->
 		<ctl name="BOOST Left Ch Select" value="3" />
 	</path>
@@ -889,34 +915,38 @@
 		<ctl name="BOOST earpiece mode" value="Off" />
 		<ctl name="BOOST Left Ch Select" value="3" />
 		<ctl name="BOOST Right Ch Select" value="3" />
-		<ctl name="BOOST_STUB Right Mixer right" value="1" />
-		<ctl name="BOOST_STUB Left Mixer left" value="1" />
-                <path name="spkr-gain-in-headphone-combo" />
+		<path name="spkr-gain-in-headphone-combo" />
 	</path>
 
 	<path name="speaker-safe-and-headphones">
 		<path name="speaker-safe" />
 		<path name="headphones" />
-                <path name="spkr-safe-gain-in-headphone-combo" />
+		<path name="spkr-safe-gain-in-headphone-combo" />
 	</path>
 
 	<path name="speaker-and-line">
 		<path name="speaker-and-headphones" />
-                <path name="spkr-gain-in-line-combo" />
+		<path name="spkr-gain-in-line-combo" />
 	</path>
 
 	<path name="speaker-safe-and-line">
 		<path name="speaker-safe-and-headphones" />
-                <path name="spkr-safe-gain-in-line-combo" />
+		<path name="spkr-safe-gain-in-line-combo" />
 	</path>
 
 	<path name="voice-rec-mic">
 		<path name="handset-mic" />
 	</path>
 
-    <path name="unprocessed-mic">
-        <path name="unprocessed-handset-mic" />
-    </path>
+<path name="unprocessed-mic">
+    <path name="adc3" />
+    <ctl name="ADC1 Volume" value="0" />
+    <ctl name="ADC2 Volume" value="0" />
+    <ctl name="ADC3 Volume" value="3" />
+    <ctl name="ADC4 Volume" value="0" />
+    <ctl name="ADC5 Volume" value="0" />
+    <ctl name="ADC6 Volume" value="0" />
+</path>
 
 	<path name="camcorder-mic">
 		<path name="adc3" />
@@ -1055,4 +1085,13 @@
     <path name="voice-tx">
     </path>
 
+<path name="unprocessed-headset-mic">
+        <path name="headset-mic" />
+</path>
+
+<path name="unprocessed-stereo-mic">
+    <path name="speaker-dmic-endfire" />
+    <ctl name="ADC3 Volume" value="3" />
+    <ctl name="ADC4 Volume" value="3" />
+</path>
 </mixer>
diff --git a/overlay/frameworks/base/core/res/res/values/config.xml b/overlay/frameworks/base/core/res/res/values/config.xml
index 23c87e4..69822af 100644
--- a/overlay/frameworks/base/core/res/res/values/config.xml
+++ b/overlay/frameworks/base/core/res/res/values/config.xml
@@ -286,6 +286,10 @@
     <!-- Flag specifying whether WFC over IMS is availasble on device -->
     <bool name="config_device_wfc_ims_available">true</bool>
 
+    <!-- Flag specifying that this device will NOT use the "allow_hold_in_ims_call" carrier config
+         option. -->
+    <bool name="config_device_respects_hold_carrier_config">false</bool>
+
     <!-- Configure mobile tcp buffer sizes in the form:
          rat-name:rmem_min,rmem_def,rmem_max,wmem_min,wmem_def,wmem_max
          If no value is found for the rat-name in use, the system default will be applied.
@@ -339,4 +343,7 @@
     <string-array name="config_cell_retries_per_error_code">
         <item>36,3</item> <!-- REGULAR_DEACTIVATION, 3 retries -->
     </string-array>
+
+    <!-- True if Unprocessed audio source supports the required frequency range and level -->
+    <bool name="config_supportAudioSourceUnprocessed">true</bool>
 </resources>
diff --git a/proprietary-blobs.txt b/proprietary-blobs.txt
index cc12c6c..7f8a6ce 100644
--- a/proprietary-blobs.txt
+++ b/proprietary-blobs.txt
@@ -46,7 +46,6 @@
 /system/bin/qseecomd
 /system/bin/radish
 /system/bin/ramdump
-/system/bin/rundiag
 /system/bin/sensors.qcom
 /system/bin/tcmd_mini
 /system/bin/test_diag
diff --git a/self-extractors/extract-lists.txt b/self-extractors/extract-lists.txt
index fa8aeab..cbbef82 100644
--- a/self-extractors/extract-lists.txt
+++ b/self-extractors/extract-lists.txt
@@ -137,7 +137,6 @@
             system/bin/qmuxd \
             system/bin/qseecomd \
             system/bin/radish \
-            system/bin/rundiag \
             system/bin/sensors.qcom \
             system/bin/test_diag \
             system/bin/thermal-engine \
diff --git a/self-extractors/qcom/staging/device-partial.mk b/self-extractors/qcom/staging/device-partial.mk
index f0ed4ef..183571e 100644
--- a/self-extractors/qcom/staging/device-partial.mk
+++ b/self-extractors/qcom/staging/device-partial.mk
@@ -44,7 +44,6 @@
     vendor/qcom/shamu/proprietary/qmuxd:system/bin/qmuxd:qcom \
     vendor/qcom/shamu/proprietary/qseecomd:system/bin/qseecomd:qcom \
     vendor/qcom/shamu/proprietary/radish:system/bin/radish:qcom \
-    vendor/qcom/shamu/proprietary/rundiag:system/bin/rundiag:qcom \
     vendor/qcom/shamu/proprietary/sensors.qcom:system/bin/sensors.qcom:qcom \
     vendor/qcom/shamu/proprietary/test_diag:system/bin/test_diag:qcom \
     vendor/qcom/shamu/proprietary/thermal-engine:system/bin/thermal-engine:qcom \
diff --git a/sepolicy/file_contexts b/sepolicy/file_contexts
index 8ff6cac..baccdb1 100644
--- a/sepolicy/file_contexts
+++ b/sepolicy/file_contexts
@@ -156,7 +156,10 @@
 # mmi_touch related /sys files
 /sys/devices/f9966000\.i2c/i2c-1/1-004a(/.*)?            u:object_r:sysfs_mmi_touch:s0
 
-/sys/devices/f9925000\.i2c/i2c-0/0-001c/power_supply/battery/capacity u:object_r:sysfs_batteryinfo:s0
+/sys/devices/f9925000\.i2c/i2c-0/0-001c/power_supply/battery/capacity    u:object_r:sysfs_batteryinfo:s0
+/sys/devices/f9925000\.i2c/i2c-0/0-001c/power_supply/battery/cycle_count u:object_r:sysfs_batteryinfo:s0
+/sys/devices/f9925000\.i2c/i2c-0/0-001c/power_supply/battery/temp        u:object_r:sysfs_batteryinfo:s0
+/sys/devices/f9964000\.i2c/i2c-8/8-0048/temp1_input                      u:object_r:sysfs_batteryinfo:s0
 
 # Context for mpdecision
 /sys/module/msm_thermal/core_control/cpus_offlined              u:object_r:sysfs_mpdecision:s0
diff --git a/vendor_owner_info.txt b/vendor_owner_info.txt
index fb24f44..40ed5bb 100644
--- a/vendor_owner_info.txt
+++ b/vendor_owner_info.txt
@@ -30,7 +30,6 @@
 system/bin/qseecomd:qcom
 system/bin/radish:qcom
 system/bin/ramdump:moto
-system/bin/rundiag:qcom
 system/bin/sensors.qcom:qcom
 system/bin/tcmd_mini:moto
 system/bin/test_diag:qcom
diff --git a/voice_processing/voice_processing_descriptors.c b/voice_processing/voice_processing_descriptors.c
index 03773b1..6830353 100644
--- a/voice_processing/voice_processing_descriptors.c
+++ b/voice_processing/voice_processing_descriptors.c
@@ -27,7 +27,7 @@
         { 0x7b491460, 0x8d4d, 0x11e0, 0xbd61, { 0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b } }, // type
         { 0x3770d8a0, 0x4a7c, 0x11e4, 0xac15, { 0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b } }, // uuid
         EFFECT_CONTROL_API_VERSION,
-        (EFFECT_FLAG_TYPE_PRE_PROC|EFFECT_FLAG_DEVICE_IND),
+        (EFFECT_FLAG_TYPE_PRE_PROC|EFFECT_FLAG_DEVICE_IND|EFFECT_FLAG_HW_ACC_TUNNEL),
         0,
         0,
         "Acoustic Echo Canceler",
@@ -39,7 +39,7 @@
         { 0x58b4b260, 0x8e06, 0x11e0, 0xaa8e, { 0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b } }, // type
         { 0x5a96f440, 0x4a7c, 0x11e4, 0x8477, { 0x00, 0x02, 0xa5, 0xd5, 0xc5, 0x1b } }, // uuid
         EFFECT_CONTROL_API_VERSION,
-        (EFFECT_FLAG_TYPE_PRE_PROC|EFFECT_FLAG_DEVICE_IND),
+        (EFFECT_FLAG_TYPE_PRE_PROC|EFFECT_FLAG_DEVICE_IND|EFFECT_FLAG_HW_ACC_TUNNEL),
         0,
         0,
         "Noise Suppression",