am aee3d39a: am 47cae27d: am d9fa203c: am 1ef9227a: mako: allow device to sleep in off-mode charging

# Via Android Git Automerger (3) and Iliyan Malchev (1)
* commit 'aee3d39ad74ad7bd642671b26c33f68b1288659f':
  mako: allow device to sleep in off-mode charging
diff --git a/audio_policy.conf b/audio_policy.conf
index 0b94ad8..650e6ec 100644
--- a/audio_policy.conf
+++ b/audio_policy.conf
@@ -47,7 +47,7 @@
     inputs {
       primary {
         sampling_rates 8000|11025|12000|16000|22050|24000|32000|44100|48000
-        channel_masks AUDIO_CHANNEL_IN_MONO|AUDIO_CHANNEL_IN_STEREO
+        channel_masks AUDIO_CHANNEL_IN_MONO|AUDIO_CHANNEL_IN_STEREO|AUDIO_CHANNEL_IN_FRONT_BACK
         formats AUDIO_FORMAT_PCM_16_BIT
         devices AUDIO_DEVICE_IN_BUILTIN_MIC|AUDIO_DEVICE_IN_WIRED_HEADSET|AUDIO_DEVICE_IN_BLUETOOTH_SCO_HEADSET|AUDIO_DEVICE_IN_VOICE_CALL|AUDIO_DEVICE_IN_BACK_MIC
       }
diff --git a/device.mk b/device.mk
index 683bce3..7e9c3b7 100644
--- a/device.mk
+++ b/device.mk
@@ -258,3 +258,4 @@
 	system/extras/bugmailer/send_bug:system/bin/send_bug
 
 $(call inherit-product, frameworks/native/build/phone-xhdpi-2048-dalvik-heap.mk)
+$(call inherit-product, hardware/qcom/msm8960/msm8960.mk)
diff --git a/factory-images/generate-factory-images-package.sh b/factory-images/generate-factory-images-package.sh
index 6b38116..7d9188a 100755
--- a/factory-images/generate-factory-images-package.sh
+++ b/factory-images/generate-factory-images-package.sh
@@ -17,14 +17,17 @@
 # start jb-mr1-dev
 # 477685 = JOO88
 # 521994 = JOP32B
+# 526897 = JOP39B
+# 527221 = JOP40
+# 527662 = JOP40C
 # end jb-mr1-dev
 
 source ../../../common/clear-factory-images-variables.sh
-BUILD=521994
+BUILD=527662
 DEVICE=mako
 PRODUCT=occam
-VERSION=jop32b
-#SRCPREFIX=signed-
-BOOTLOADER=makoz10k
-RADIO=m9615a-cefwmazm-2.0.1700.32
+VERSION=jop40c
+SRCPREFIX=signed-
+BOOTLOADER=makoz10l
+RADIO=m9615a-cefwmazm-2.0.1700.33
 source ../../../common/generate-factory-images-common.sh
diff --git a/fstab.mako b/fstab.mako
index d1c68ec..1c10bc3 100644
--- a/fstab.mako
+++ b/fstab.mako
@@ -4,7 +4,7 @@
 # specify MF_CHECK, and must come before any filesystems that do specify MF_CHECK
 
 /dev/block/platform/msm_sdcc.1/by-name/system       /system         ext4    ro,barrier=1                                                    wait
-/dev/block/platform/msm_sdcc.1/by-name/cache        /cache          ext4    noatime,nosuid,nodev,barrier=1,data=ordered                     wait,check
-/dev/block/platform/msm_sdcc.1/by-name/userdata     /data           ext4    noatime,nosuid,nodev,barrier=1,data=ordered,noauto_da_alloc     wait,check,encryptable=/dev/block/platform/msm_sdcc.1/by-name/metadata
+/dev/block/platform/msm_sdcc.1/by-name/cache        /cache          ext4    noatime,nosuid,nodev,barrier=1,data=ordered,discard             wait,check
+/dev/block/platform/msm_sdcc.1/by-name/userdata     /data           ext4    noatime,nosuid,nodev,barrier=1,data=ordered,noauto_da_alloc,discard     wait,check,encryptable=/dev/block/platform/msm_sdcc.1/by-name/metadata
 /dev/block/platform/msm_sdcc.1/by-name/persist      /persist        ext4    nosuid,nodev,barrier=1,data=ordered,nodelalloc                  wait
 /dev/block/platform/msm_sdcc.1/by-name/modem        /firmware       vfat    ro,uid=1000,gid=1000,dmask=227,fmask=337                        wait
diff --git a/init.mako.bt.sh b/init.mako.bt.sh
index 4fdd065..d3fc5f8 100644
--- a/init.mako.bt.sh
+++ b/init.mako.bt.sh
@@ -64,9 +64,9 @@
 
 case $? in
   0) logi "Bluetooth QSoC firmware download succeeded, $PWR_CLASS $BDADDR $TRANSPORT";;
-  *) failed "Bluetooth QSoC firmware download failed" $exit_code_hci_qcomm_init;
+  *) failed "Bluetooth QSoC firmware download failed" $?;
      setprop bluetooth.status off;
-     exit $exit_code_hci_qcomm_init;;
+     exit $?;;
 esac
 
 setprop bluetooth.status on
diff --git a/init.mako.rc b/init.mako.rc
index 93b0b40..0fd72b7 100644
--- a/init.mako.rc
+++ b/init.mako.rc
@@ -24,6 +24,10 @@
     mkdir /mnt/shell/emulated 0700 shell shell
     mkdir /storage/emulated 0555 root root
 
+    # Set permissions for persist partition
+    mkdir /persist 0771 system system
+    mkdir /firmware 0771 system system
+
     export EXTERNAL_STORAGE /storage/emulated/legacy
     export EMULATED_STORAGE_SOURCE /mnt/shell/emulated
     export EMULATED_STORAGE_TARGET /storage/emulated
@@ -34,12 +38,6 @@
     symlink /storage/emulated/legacy /storage/sdcard0
     symlink /mnt/shell/emulated/0 /storage/emulated/legacy
 
-on init
-    # Set permissions for persist partition
-    mkdir /persist 0771 system system
-    mkdir /firmware 0771 system system
-
-on init
     # Setup custom emergency number list based on
     # the MCC. This is needed by RIL.
     setprop persist.radio.custom_ecc "1"
diff --git a/init.mako.usb.rc b/init.mako.usb.rc
index f571645..3d70c90 100644
--- a/init.mako.usb.rc
+++ b/init.mako.usb.rc
@@ -106,7 +106,7 @@
     write /sys/class/android_usb/android0/bDeviceClass 239
     write /sys/class/android_usb/android0/bDeviceSubClass 2
     write /sys/class/android_usb/android0/bDeviceProtocol 1
-    write /sys/class/android_usb/android0/f_acm/acm_transports tty
+    write /sys/class/android_usb/android0/f_acm/acm_transports hsic
     write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
     write /sys/class/android_usb/android0/functions acm,diag,mtp,adb
     write /sys/class/android_usb/android0/enable 1
@@ -121,7 +121,7 @@
     write /sys/class/android_usb/android0/bDeviceClass 239
     write /sys/class/android_usb/android0/bDeviceSubClass 2
     write /sys/class/android_usb/android0/bDeviceProtocol 1
-    write /sys/class/android_usb/android0/f_acm/acm_transports tty
+    write /sys/class/android_usb/android0/f_acm/acm_transports hsic
     write /sys/class/android_usb/android0/f_diag/clients diag,diag_mdm
     write /sys/class/android_usb/android0/functions acm,diag,mtp,adb
     write /sys/class/android_usb/android0/enable 1
diff --git a/media_codecs.xml b/media_codecs.xml
index 82dc5a7..46d6e1b 100644
--- a/media_codecs.xml
+++ b/media_codecs.xml
@@ -38,6 +38,7 @@
     </Encoders>
     <Decoders>
         <MediaCodec name="OMX.google.vorbis.decoder" type="audio/vorbis" />
+        <MediaCodec name="OMX.google.gsm.decoder" type="audio/gsm" />
         <MediaCodec name="OMX.google.mp3.decoder" type="audio/mpeg" />
         <MediaCodec name="OMX.google.amrnb.decoder" type="audio/3gpp" />
         <MediaCodec name="OMX.google.amrwb.decoder" type="audio/amr-wb" />
diff --git a/snd_soc_msm_2x_Fusion3 b/snd_soc_msm_2x_Fusion3
index 42a1c87..0f13713 100644
--- a/snd_soc_msm_2x_Fusion3
+++ b/snd_soc_msm_2x_Fusion3
@@ -2659,6 +2659,35 @@
 EndSection
 
 SectionDevice
+	Name "DMIC Broadside Voice Rec"
+	Comment "Dual MIC Broadside Tx device Voice recognition"
+
+	EnableSequence
+		'SLIM TX7 MUX':0:DEC7
+		'DEC7 MUX':0:DMIC1
+		'SLIM TX8 MUX':0:DEC8
+		'DEC8 MUX':0:DMIC2
+		'MICBIAS1 CAPLESS Switch':1:1
+		'SLIM_0_TX Channels':0:Two
+		'IIR1 INP1 Volume':1:50
+		'IIR1 INP1 MUX':0:DEC7
+	EndSequence
+
+	DisableSequence
+		'SLIM TX7 MUX':0:ZERO
+		'DEC7 MUX':0:ZERO
+		'SLIM TX8 MUX':0:ZERO
+		'DEC8 MUX':0:ZERO
+		'MICBIAS1 CAPLESS Switch':1:0
+		'IIR1 INP1 Volume':1:0
+		'IIR1 INP1 MUX':0:ZERO
+	EndSequence
+
+	ACDBID	62:2
+
+EndSection
+
+SectionDevice
 	Name "DMIC Endfire"
 	Comment "Dual MIC Endfire Tx device"
 
@@ -2739,6 +2768,45 @@
 EndSection
 
 SectionDevice
+	Name "DMIC Endfire Voice Rec"
+	Comment "Dual MIC Endfire Tx device voice recognition"
+
+	EnableSequence
+		'SLIM TX7 MUX':0:DEC7
+		'DEC7 MUX':0:ADC1
+		'SLIM TX8 MUX':0:DEC9
+		'DEC9 MUX':0:ADC3
+		'DEC7 Volume':1:66
+		'ADC1 Volume':1:100
+		'DEC9 Volume':1:66
+		'ADC3 Volume':1:100
+		'SLIM_0_TX Channels':0:Two
+		'MICBIAS1 CAPLESS Switch':1:0
+		'RX1 MIX2 INP1':0:IIR1
+		'RX2 MIX2 INP1':0:IIR1
+		'IIR1 INP1 Volume':1:51
+		'IIR1 INP1 MUX':0:DEC7
+	EndSequence
+
+	DisableSequence
+		'DEC7 Volume':1:60
+		'DEC9 Volume':1:60
+		'SLIM TX7 MUX':0:ZERO
+		'DEC7 MUX':0:ZERO
+		'SLIM TX8 MUX':0:ZERO
+		'DEC9 MUX':0:ZERO
+		'MICBIAS1 CAPLESS Switch':1:1
+		'RX1 MIX2 INP1':0:ZERO
+		'RX2 MIX2 INP1':0:ZERO
+		'IIR1 INP1 Volume':1:0
+		'IIR1 INP1 MUX':0:ZERO
+	EndSequence
+
+	ACDBID	62:2
+
+EndSection
+
+SectionDevice
 	Name "Speaker DMIC Broadside"
 	Comment "Dual MIC Broadside Tx device"